Начальная настройка сервера Ubuntu 20.04
SSH, Ubuntu | Комментировать запись
Впервые запустив свой свежий сервер Ubuntu 20.04, вы должны выполнить несколько важный действий по его начальной настройке, чтобы обеспечить себе надежную основу для работы. В этом мануале мы расскажем, что нужно сделать, чтобы повысить безопасность и юзабилити вашего сервера.
1: Root-логин
Чтобы войти на сервер, вы должны знать свой внешний IP-адрес. Также для аутентификации вам понадобится пароль или закрытый ключ пользователя root (если вы настроили аутентификацию по SSH ключам).
Читайте также: SSH-подключение к серверу
Если вы еще не подключились к своему серверу, сделайте это сейчас: авторизуйтесь как пользователь root, указав в команде внешний адрес вашего сервера.
ssh root@your_server_ip
Вам нужно принять предупреждение о подлинности, если такое появилось на экране. Если вы используете парольную аутентификацию, укажите пароль вашего пользователя root, чтобы войти в систему. Если вы используете SSH-ключи, которые защищены парольной фразой, система запросит ее сейчас (и в дальнейшем будет запрашивать ее при первом использовании ключа в текущей сессии).
При первом входе на новый сервер система может также предложить вам сменить свой root-пароль.
Что такое root?
Пользователь root является администратором в среде Linux, а это значит, что он обладает очень широкими привилегиями. Именно поэтому пользователя root не рекомендуется использовать на регулярной основе. В широкий диапазон полномочий учетной записи root включены и такие, которые способны оказать разрушительное действие на вашу систему (даже если вы используете их ненамеренно).
Поэтому для постоянной работу рекомендуется создать нового пользователя с расширенными, но ограниченными привилегиями. Давайте сначала создадим нового пользователя. Позже мы покажем, как получить повышенные привилегии и применять их только в те моменты, когда они вам нужны.
2: Создание нового пользователя
Войдя в систему как пользователь root, вы можете добавить новую учетную запись пользователя. В будущем вы сможете входить в систему с помощью этого нового пользователя вместо root.
Итак, чтобы создать нового пользователя, введите эту команду (замените 8host на имя, которое нужно вам):
adduser 8host
Команда задаст вам несколько вопросов, сначала она предложит ввести пароль для этой учетной записи.
Введите надежный пароль и при желании заполните поля с дополнительной информацией. Это не обязательно, и вы можете просто нажать Enter, если хотите оставить поле пустым.
3: Доступ к sudo
Чтобы при работе на сервере вам не приходилось все время менять пользователей, если вам понадобятся привилегии администратора, вы должны передать своему новому пользователю расширенные привилегии. Передача прав администратора подразумевает доступ пользователя к команде sudo – она используется перед каждой командой, которую нужно выполнить с правами администратора.
Чтобы передать эти привилегии нашему новому пользователю, нужно добавить его в группу sudo. По умолчанию в Ubuntu 20.04 пользователям, входящим в группу sudo, разрешено использовать такую команду.
Чтобы добавить нового пользователя в группу sudo, от имени пользователя root выполните эту команду (замените условное имя 8host именем вашего пользователя):
usermod -aG sudo 8host
Теперь в сессии этого пользователя вы сможете вводить команду sudo для выполнения действий с привилегиями суперпользователя.
4: Настройка брандмауэра
Сервер Ubuntu 20.04 использует брандмауэр UFW, чтобы ограничить трафик и поддерживать подключения только к определенным сервисам. С помощью этого приложения можно очень легко настроить базовый брандмауэр.
При установке приложения регистрируют в UFW свои профили. Это позволяет UFW управлять этими приложениями по имени. К примеру, такой профиль есть у OpenSSH (сервис, позволяющий нам подключаться к серверу).
Вы можете просмотреть список профилей:
ufw app list
Available applications:
OpenSSH
Чтобы мы могли войти на сервер в следующий раз, нам нужно убедиться, что брандмауэр поддерживает SSH-соединения. Для этого введите:
ufw allow OpenSSH
После этого можно включить брандмауэр:
ufw enable
Введите y и нажмите Enter, чтобы продолжить. Чтобы убедиться, что SSH-соединения поддерживаются, введите:
ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
В настоящее время брандмауэр блокирует все соединения, кроме SSH. Если вы хотите установить и настроить дополнительные сервисы, вам необходимо разрешить входящий трафик для них в брандмауэре.
Читайте также: Основы UFW: общие правила и команды фаервола
5: Проверка доступа к новому пользователю
Теперь, когда у вас есть обычный пользователь для повседневной работы на сервере, вы должны убедиться, что можете подключиться к этой учетной записи по SSH.
Примечание: Пока вы не убедитесь, что можете войти в систему и использовать команду sudo в сессии вашего пользователя, рекомендуем оставаться в системе как пользователь root. Если у вас возникнут проблемы, вы сможете устранить неполадки и внести необходимые изменения с правами администратора.
Настройка SSH-доступа для вашего нового пользователя зависит от того, что использует ваша учетная запись root для аутентификации – пароль или SSH-ключи.
Парольная аутентификация
Если вы вошли в свою учетную запись root с помощью пароля, значит, SSH поддерживает парольную аутентификацию. Вы можете подключиться по SSH к новому пользователю, открыв новую сессию терминала и используя команду ssh с именем этого пользователя:
ssh 8host@your_server_ip
Введите пароль этого пользователя, и вы попадете в систему. Помните: если вам нужно запустить команду с правами администратора, нужно добавить sudo:
sudo command_to_run
При первом запуске команды sudo в каждой сессии (и периодически при запуске других команд) вам будет предложено ввести пароль вашего пользователя.
Чтобы повысить безопасность сервера, мы рекомендуем настроить SSH-ключи вместо парольной аутентификации. Следуйте инструкциям в мануале Установка SSH-ключей в Ubuntu 20.04.
Аутентификация на основе SSH-ключей
Если вы подключились к root через SSH-ключи, скорее всего, парольная аутентификация отключена. Вам нужно добавить копию открытого ключа в файл ~/.ssh/authorized_keys вашего нового пользователя, чтобы он имел доступ к системе.
Поскольку открытый ключ уже находится на сервере в аккаунте пользователя root, ~/.ssh/authorized_keys, вы можете скопировать эту структуру в учетную запись нового пользователя в текущем сеансе.
Проще всего сделать это с помощью команды rsync. Она скопирует каталог .ssh вашего пользователя root, сохранит привилегии, но изменит его владельца. Вместо 8host укажите имя вашего пользователя.
Примечание: Команда rsync обрабатывает пути, заканчивающиеся косой чертой, иначе, чем те, у которых нет косой черты в конце. При использовании rsync убедитесь, что в исходном каталоге (~/.ssh) вы случайно не поставили косую черту (путь не должен выглядеть так: ~/.ssh/).
Если вы случайно добавите косую черту в команду, rsync скопирует содержимое каталога ~/.ssh пользователя root в домашний каталог пользователя sudo вместо того, чтобы скопировать всю структуру каталога ~/.ssh. Файлы будут находиться в неправильном месте, и SSH не сможет их найти и использовать.
rsync --archive --chown=8host:8host ~/.ssh /home/8host
Теперь откройте новое окно терминала на локальной машине и введите команду ssh:
ssh 8host@your_server_ip
Вы должны без пароля войти в новую учетную запись пользователя. Помните, чтобы запустить команду с правами администратора, нужно ввести перед ней sudo:
sudo command_to_run
При первом запуске sudo в каждой сессии (и периодически при запуске других команд) вам будет предложено ввести пароль текущего пользователя.
Заключение
Вы выполнили начальную настройку сервера, он готов к установке нового программного обеспечения и к разработке проектов. Теперь, когда основные компоненты серверной среды настроены, можно оптимизировать работу системы: настроить справку, текстовый редактор по умолчанию и т. п.
Tags: SSH, Ubuntu, Ubuntu 20.04