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