Введение
После установки дистрибутива Ubuntu Server 22.04, необходимо выполнить несколько шагов для настройки безопасности системы и ради упрощённого использования.
Этап 1 – Авторизация с учётной записи Root
Мы установим чистый сервер в облачном сервере и из учётной записи будет только “root”. При создании сервера на выбор подключения два варианта:
- По SSH-ключу;
- По логину и паролю.
У пользователя “root” больше привилегий по сравнению с обычными пользователями. При использовании некоторых команд от имени root, могут привести к неисправностям. Обычно изменение в файле конфигурации, перезапуск служб, открытие портов и другие. По этой причине необходимо создать нового пользователя и выполнять команды с использованием sudo. Риск определенно снизится. Привилегии и ограничения на пользователя выдаются со стороны root, при помощи команды usermod.
При подключении к серверу по SSH-ключу используйте инструкцию по данной теме. Во время создания сервера с использованием логина и пароля будет сгенерирован пароль для пользователя root, этот метод подключения считается менее безопасным.
Подключение к серверу происходит следующим образом:
После этого требуется указать либо пароль, либо в каталоге .ssh должен быть соответствующий файл с ключом. Соглашаемся с подлинностью сервера. Подключение по ключу SSH, возможно потребует парольную фразу и необходимо ввести.
В следующем этапе создадим системного пользователя для использования с определёнными привилегиями и ограничениями по использованию.
Этап 2 – Добавление нового системного пользователя
При первой авторизации как root, следует добавить в систему нового пользователя с использованием команды:
Заменить test_user вы можете на своё усмотрение. Ключ -m создаёт в домашнем каталоге папку для пользователя test_user и делает пользователя владельцем.
Следует задать пароль для пользователя:
Вводим новый пароль и подтверждаем, необходимо использовать сложный пароль и записать в заметках. Пароль потребуется при использовании команды sudo.
Этап 3 – Предоставление привилегий администрирования
Создав пользователя необходимо добавить в группу sudo. Используем команду:
Ключ “a” указывает на добавление, ключ “G” указывает группу, затем следует название группы и добавляемый пользователь.
При создании пользователя, никаких прав доступа и привилегий нет. В обычные моменты следует перезапустить сервер, внести изменения в конфигурационный файл определённого или нескольких служб.
Этап 4 – Первоначальная настройка базового брандмауэра
Ufw – утилита брандмауэра, каждый установленный пакет добавляется в правило ufw. Наше подключение по SSH также проходит через соответствующее правило ufw. Проверка статуса приложений выполняется следующим образом:
В выходе получаем данные об открытых портах и о приложениях которые добавлены в ufw.
Следующая команда позволяет вывести список приложений, которые работают в настоящее время непрерывно с ufw
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Чтобы удостовериться, при подключении не возникнут проблемы, разрешим подключение по OpenSSH, выполнив следующую команду:
Включим брандмауэр и соглашаемся:
Проверим статус приложения и SSH-соединения всё ещё актуален:
Status: active
To Action From
__ ________ _________
OpenSSH ALLOW Anywhere
Теперь ufw блокирует все внешние подключения кроме OpenSSH.
Этап 5 – Разрешение на подключение удалённо к пользователю
Открываем командную строку и вводим команду:
Необходимо ввести пароль при создании учётной записи. Выполним команду используя sudo (см. рисунок 1), например:
После создания пользователя, командный интерпретатор стандартно используется shell. При необходимости изменения на bash, можно выполнить команду:
Следует заново авторизоваться от имени пользователя test_user и проверить командный интерпретатор:
#Выход -bash
При подключении по SSH-ключу к root
В каталоге root пользователя хранится каталог .ssh, в каталоге файл authorized_keys отвечающий за ключи SSH, следует скопировать и вставить файл в каталоге пользователя /home/test_server/.ssh/.
Удобнее воспользоваться rsync с целью изменения путь каталога, владельца файла сохранив разрешения:
Выполним подключение:
Подключение будет успешным, остаётся только работать в системе для своей пользы!
Выводы
- Ufw – помощник для безопасных подключений к серверу;
- SSH-ключ не допускает подключение к серверу без уникального ключа;
- Пользователь с правами sudo, уменьшает риск проявления ошибок в работе сервера, по сравнению команды выполняемые от имени root.