Начальная настройка сервера Debian 9

Создав сервер Debian 9, необходимо выполнить его начальную настройку. Это повысит защиту и юзабилити нового сервера, а также обеспечит надёжную платформу для дальнейшей работы.

1: Логин root

Читайте также: SSH-подключение к серверу

Для подключения к серверу вам понадобится его внешний IP-адрес. Кроме того, нужно знать пароль или иметь закрытый ключ (в случае использования аутентификации на основе SSH-ключей) администратора – пользователя root.

Чтобы войти как пользователь root, используйте команду:

ssh root@your_server_ip

На данном этапе может появиться предупреждение о подлинности хоста; примите его и предоставьте учётные root. Если вы используете SSH-ключи, защищенные парольной фразой, вам нужно будет ввести эту фразу сейчас. При первом подключении к серверу вам также будет предложено изменить root-пароль.

Что такое root?

Пользователь root является администратором среды Linux и обладает максимальными правами. Именно из-за широких привилегий аккаунта root использовать его для рутинной работы крайне небезопасно – так можно случайно нанести системе непоправимый вред.

Потому для постоянной работы в окружении Linux используется специально созданный аккаунт с расширенными привилегиями – доступом к команде sudo, о которой можно прочитать далее в этом руководстве.

2: Создание нового пользователя

Войдя в систему как root пользователь, создайте новый аккаунт для постоянной работы с сервером.

Примечание: В некоторых средах пакет unscd может быть установлен по умолчанию для более быстрого обслуживания запросов серверов типа LDAP. В последней версии пакета, которая в данный момент доступна в репозитории Debian, есть баг, из-за которого некоторые команды (например adduser) выводят такой дополнительный вывод:

sent invalidate(passwd) request, exiting
sent invalidate(group) request, exiting

Эти сообщения можно просто игнорировать, но если вы хотите убрать их, можете удалить пакет unscd (если он вам не нужен).

apt remove unscd

Чтобы создать нового пользователя, введите:

adduser 8host

Примечание: Замените условное имя 8host именем своего пользователя.

После запуска команды вам будет предложено предоставить информацию о пользователе.

Установите надёжный пароль и при желании укажите дополнительную информацию. Чтобы принять информацию по умолчанию, просто нажмите Enter.

3: Доступ к sudo

Итак, теперь у вас есть новый пользователь с обычными правами. Однако для управления сервером таких привилегий недостаточно.

Чтобы иметь возможность выполнять задачи администратора в сессии нового пользователя, передайте ему права суперпользователя. Для этого нужно открыть ему доступ к использованию команды sudo.

В Debian 9 доступ к этой команде по умолчанию есть у всех пользователей, которые входят в группу sudo. Чтобы добавить нового пользователя в эту группу, запустите следующую команду в сессии пользователя root:

usermod -aG sudo 8host

Теперь новый пользователь имеет права суперпользователя.

4: Настройка брандмауэра

Серверы Debian могут использовать брандмауэр для блокирования соединений с отдельными сервисами. По умолчанию установлен iptables, но Debian не имеет никаких строгих рекомендаций касательно брандмауэра. В этом мануале мы используем UFW.

С помощью менеджера пакетов apt установите брандмауэр UFW. Сначала обновите локальный индекс.

apt update
apt install ufw

Различные приложения могут при установке зарегистрировать свой профиль в UFW. Такие профили позволяют UFW управлять этими приложениями по имени. OpenSSH (сервис, который позволяет подключаться к серверу) имеет свой профиль, зарегистрированный в UFW.

Чтобы просмотреть его, введите:

ufw app list
Available applications:
. . .
OpenSSH
. . .

Теперь нужно разрешить SSH-соединения, чтобы иметь возможность подключиться к серверу в следующий раз. Для этого введите:

ufw allow OpenSSH

После этого можно включить брандмауэр:

ufw enable

Чтобы продолжить, нажмите у и Enter. Чтобы убедиться в том, что соединения SSH не блокируются брандмауэром, введите:

ufw status
Status: active
To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Если вы установили и настроили дополнительные сервисы, вам необходимо откорректировать настройки брандмауэра, чтобы он не блокировал трафик этих сервисов.

Читайте также: Основы UFW: общие правила и команды фаервола

5: Проверка доступа к новому пользователю

Теперь, когда у вас есть обычный пользователь для ежедневной работы, нужно убедиться, что вы можем использовать SSH непосредственно в учетной записи.

Примечание: Пока вы не убедитесь, что можете войти в систему и использовать sudo в сессии своего нового пользователя, мы рекомендуем оставаться в системе как пользователь root. Таким образом, если у вас возникнут проблемы, вы сможете устранить неполадки и внести необходимые изменения с правами root.

Процесс настройки SSH-доступа для вашего нового пользователя зависит от того, что использует ваша учетная запись root для аутентификации – пароль или SSH-ключи.

Парольная аутентификация

Если вы вошли в свою учетную запись root, указав пароль, значит, SSH поддерживает парольную аутентификацию. Вы можете подключиться по SSH к новому пользователю, открыв новую сессию терминала и используя SSH с именем нового пользователя:

ssh 8host@your_server_ip

Введите пароль пользователя, после этого вы войдете в систему. Помните, что если вам нужно запустить команду с правами администратора, вам нужно для этого добавить sudo:

sudo command_to_run

При первом запуске sudo  в каждом сеансе (и периодически при запуске разных команд) вам будет предложено ввести пароль текущего пользователя.

Чтобы повысить безопасность сервера, вместо парольной аутентификации мы настоятельно рекомендуем настроить SSH-ключи. Следуйте инструкциям в мануале Установка SSH-ключей в Debian 9.

Аутентификация на основе SSH-ключей

Если вы вошли в учетную запись root с помощью SSH-ключей, аутентификация по паролю отключена. Вам нужно будет добавить копию открытого ключа в файл ~/.ssh/authorized_keys нового пользователя для дальнейшего доступа к системе.

Поскольку ваш открытый ключ уже находится на сервере в файле пользователя root, ~/.ssh/authorized_keys, вы можете скопировать эту структуру файлов и каталогов в новую учетную запись пользователя в текущем сеансе с помощью команды cp. Чтобы установить привилегии, используйте команду chown . Обязательно укажите свои данные в приведенных ниже командах.

cp -r ~/.ssh /home/8host
chown -R 8host:8host /home/8host/.ssh

Откройте терминал и создайте новое соединение SSH:

ssh 8host@your_server_ip

Вы должны войти в новую учетную запись пользователя без пароля. Помните, чтобы запустить команду с правами администратора, нужно ввести sudo перед ней:

sudo command_to_run

При первом запуске sudo  в каждом сеансе (и периодически при запуске разных команд) вам будет предложено ввести пароль текущего пользователя.

6: Опциональные настройки

Теперь, когда основные компоненты серверной среды настроены, можно оптимизировать работу системы.

Установка справки

Debian предоставляет расширенную справку для большей части программного обеспечения. Справка доступна по команде man. Но эта команда не всегда установлена по умолчанию.

Чтобы получить доступ к справке, установите пакет man-db:

sudo apt install man-db

Теперь попробуйте запросить справочную информацию:

man command

Например:

man top

Многие пакеты в репозитории Debian содержат справочную информацию как часть установки.

Настройка редактора по умолчанию

Debian предлагает широкий выбор текстовых редакторов, некоторые из которых доступны в базовой установке. Команды с интегрированной поддержкой редакторов, например visudo и systemctl edit, передают текст команде editor, которая связана с текстовым редактором системы по умолчанию. Выбрав наиболее удобный редактор, вы можете упростить и ускорить свою работу с сервером.

Если предпочтительный текстовый редактор не установлен по умолчанию, введите:

sudo apt install your_preferred_editor

Затем можно уточнить, какой редактор используется по умолчанию и изменить его с помощью команды update-alternatives:

sudo update-alternatives --config editor

Команда выведет таблицу доступных реакторов и поможет выбрать нужный вам вариант:

There are 8 choices for the alternative editor (providing /usr/bin/editor).
Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/joe         70        auto mode
1            /bin/nano            40        manual mode
2            /usr/bin/jmacs       50        manual mode
3            /usr/bin/joe         70        manual mode
4            /usr/bin/jpico       50        manual mode
5            /usr/bin/jstar       50        manual mode
6            /usr/bin/rjoe        25        manual mode
7            /usr/bin/vim.basic   30        manual mode
8            /usr/bin/vim.tiny    15        manual mode
Press <enter> to keep the current choice[*], or type selection number:

Текущий редактор по умолчанию отмечен звездочкой. Чтобы изменить редактор, введите порядковый номер нового редактора и нажмите Enter. Например, чтобы выбрать nano:

Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /bin/nano to provide /usr/bin/editor (editor) in manual mode

Теперь система будет использовать nano по умолчанию.

Заключение

Вы выполнили начальную настройку сервера, и теперь он готов к установке нового программного обеспечения и к разработке проектов.

Tags: ,