16.11.2022

Первоначальная настройка Ubuntu Server 22.04

Введение

После установки дистрибутива Ubuntu Server 22.04, необходимо выполнить несколько шагов для настройки безопасности системы и ради упрощённого использования.

Этап 1 – Авторизация с учётной записи Root

Мы установим чистый сервер в облачном сервере и из учётной записи будет только “root”. При создании сервера на выбор подключения два варианта:

  1. По SSH-ключу;
  2. По логину и паролю.

У пользователя “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

Рисунок 1 - Установка текстового редактора 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

Подключение будет успешным, остаётся только работать в системе для своей пользы!

Выводы