Когда вы впервые запускаете свежий сервер Ubuntu 22.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
Система задаст вам пару вопросов, в том числе предложит выбрать пароль.
Введите надежный пароль и по желанию предоставьте любую дополнительную информацию (ее вводить не обязательно, и вы можете просто нажать Ввод, чтобы пропустить поле).
3: Привилегии администратора
Итак, у вас есть новый пользователь со стандартными привилегиями. Но в повседневной работе иногда необходимы привилегии администратора.
Чтобы вам не приходилось постоянно прыгать между пользователями, вы можете настроить расширенные привилегии для вашего стандартного аккаунта. Тогда ваш обычный пользователь сможет запускать команды как администратор. Для этого перед командой нужно добавить sudo.
Чтобы получить возможность использовать sudo, вам нужно добавить нового пользователя в системную группу sudo. В Ubuntu 22.04 расширенные привилегии по умолчанию получают все пользователи, которые входят в эту группу.
Как root запустите следующую команду, чтобы добавить нового пользователя в группу sudo. Не забудьте указать правильное имя.
usermod -aG sudo 8host
Теперь ваш новый пользователь имеет доступ к команде sudo.
4: Настойка брандмауэра
Чтобы ограничить трафик и поддерживать подключения только к конкретным сервисам, система Ubuntu 22.04 использует брандмауэр UFW.
Приложения могут при установке регистрировать в UFW свои профили. Они позволяют UFW управлять этими приложениями по именам. К примеру, OpenSSH – приложение, через которое вы подключаетесь к своему серверу – тоже имеет свой профиль в UFW.
Чтобы увидеть список доступных профилей, введите:
ufw app list
Вы получите такой вывод:
Available applications:
OpenSSH
Чтобы вы могли войти на сервер в следующий раз, нужно убедиться, что брандмауэр поддерживает SSH-соединения. Для этого введите:
ufw allow OpenSSH
Теперь включите брандмауэр, набрав:
ufw enable
Нажмите у и Ввод, чтобы продолжить. Чтобы подтвердить, что соединения 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 22.04.
Аутентификация по SSH-ключам
Если вы подключились к root через SSH-ключи, скорее всего, парольная аутентификация отключена. В таком случае вам нужно добавить копию открытого ключа в файл ~/.ssh/authorized_keys вашего нового пользователя, чтобы у него был доступ к системе.
Поскольку открытый ключ уже находится на сервере в аккаунте пользователя root, вы можете скопировать его в учетную запись нового пользователя в текущем сеансе.
Проще всего это сделать с помощью команды rsync. Команда скопирует каталог .ssh пользователя root, сохранит привилегии, но изменит его владельца. Вместо 8host укажите имя вашего пользователя.
Примечание: Команда rsync обрабатывает пути, которые заканчиваются косой чертой, иначе, чем те, у которых нет косой черты в конце. При запуске rsync убедитесь, что в исходном каталоге (~/.ssh) вы случайно не поставили косую черту (путь не должен выглядеть так: ~/.ssh/).
Если вы случайно добавите слеш в команду, rsync скопирует содержимое каталога ~/.ssh пользователя root в домашний каталог пользователя sudo вместо того, чтобы скопировать всю структуру каталога ~/.ssh. Файлы будут находиться в неправильном месте, и SSH не сможет их найти.
rsync --archive --chown=8host:8host ~/.ssh /home/8host
Откройте новое окно терминала на локальном компьютере и введите:
ssh 8host@your_server_ip
Вы должны без пароля войти в учетную запись нового пользователя. Помните, чтобы запустить команду с правами администратора, нужно перед ней поставить sudo:
sudo command_to_run
При первом запуске sudo в каждой сессии (а также иногда при запуске других команд) система попросит вас ввести пароль текущего пользователя.
Заключение
Готово, начальная настройка сервера завершена, он готов к установке нового программного обеспечения и к разработке приложений. Основные компоненты серверной среды настроены, и теперь можно оптимизировать работу системы.
Читайте также: Основы работы с терминалом Linux