Дополнительные настройки безопасности на сервере Ubuntu
Для того чтобы сервер на Ubuntu мог полноценно выполнять все возложенные на него функции, необходимо выполнить установку определенного набора программного обеспечения. Однако, не стоит забывать, что безопасность – это основа надежной и безотказной работы сервера, и для ее обеспечения необходимо выполнить все исчерпывающие действия для обеспечения его защиты. И желательно это сделать до размещения на сервере нужных приложений и служб.
Давайте разберемся, каким образом обеспечить такую защиту.
Дополнительные настройки брандмауэра
Некоторые действия, такие как установка и стандартная настройка файрвола UFW, мы уже выполнили в предыдущем уроке. Теперь нам необходимо выполнить дополнительные настройки UFW. Для стабильной работы сервера нужно не забывать периодически обновлять установленные на нем службы и приложения. Эта процедура выполняется с помощью такой команды:
$ sudo apt update && sudo apt upgrade -y
Чтобы обеспечить доступ к нашему серверу через обычный браузер, файрвол должен разрешать подключение по протоколам http
и https
. Выполняем эти действия по очереди, набирая в окне терминала такие команды:
$ sudo ufw allow http
sudo ufw allow https
Подтверждением выполнения действия будет такое сообщение в окне терминала:
`Rules updated`
`Rules updated v6`
Дополнительной мерой безопасности нашего сервера будет переназначение порта подключения к серверу. По умолчанию протокол SSH использует порт 22, однако, мы можем назначить любой другой порт, доступный для этого протокола. Для этого используется следующая команда:
$ sudo ufw allow port_number
-p
и выбранный номер порта после ip адреса:
$ sudo ssh romeo@ip_server -p port_number
Важно! После переназначения порта брандмауэра UFW, может потребоваться настройка маршрутизатора: необходимо выполнить переадресацию портов, чтобы была возможность подключаться к нашему серверу с внешних адресов. Если в процессе работы сервера возникают проблемы, может потребоваться временно отключать и включать файрвол UFW заново. Для этого используются такие команды:
$ sudo ufw disable
$ sudo ufw enable
Конфигурация файла sshd_config
Для доступа к дополнительным параметрам и более глубокой настройки безопасности SSH необходимо открыть для редактирования файл sshd_config
. Он имеет структуру текстового файла, поэтому удобно использовать встроенный текстовый редактор Nano для этих целей. В окне терминала набираем команду:
$ sudo nano /etc/ssh/sshd_config
Жмем ENTER, и содержимое файла откроется для редактирования в новом окне текстового редактора.
Для повышения уровня безопасности сервера SSH, мы рекомендуем выполнить 5 действий:
- Отключение входа на сервер через учетную запись
root
.
К этой учетной записи могут иметь доступ несколько пользователей, в том числе те, которые знают пароль пользователя root
. Это расширяет круг пользователей, которые могут получить доступ к серверу SSH, и создает дополнительную угрозу безопасности. Можно запретить доступ к серверу через учетную запись root
. Для этого необходимо найти строку PermitRootLogin
, и параметр yes
изменить на no
.
- Создание списка пользователей, имеющих доступ к серверу.
Можно запретить доступ к серверу SSH для всех, кроме определенного круга пользователей. Для этого необходимо добавить в файл такую строку: AllowUsers username1 username2
, в которой username1 и username2 – имена реальных пользователей, которым будет открыт доступ к серверу SSH. В строке можно указать любое необходимое количество пользователей, разделяя их имена пробелом. Для всех остальных пользователей доступ будет ограничен.
- Ограничение количества попыток неправильного ввода пароля.
Можно установить количество ошибок при вводе пароля. Это значительно уменьшит вероятность взлома пароля, следовательно, повысит уровень безопасности сервера. Необходимо найти строку MaxAuthTries
и установить в ней любой числовой параметр от 3
до 7
, который и будет числом попыток неправильного ввода пароля. Когда число ошибочных вводов будет превышено, система заблокирует IP-адрес, с которого вводился неправильный пароль.
- Изменение времени простоя для выхода пользователя из системы.
По умолчанию, в файле конфигурации SSH установлен тайм-аут простоя, равный 60 минутам, по истечении которого произойдет автоматический выход пользователя из SSH-сервера. Можно уменьшить время простоя, к примеру, до 10 минут, после которых будет выполняться автоматический лог-аут для сеанса активного пользователя. Находим строку ClientAliveInterval
и меняем стандартное значение 60
на 10
. Чем меньше время простоя – тем меньше вероятность того, что кто-то сможет воспользоваться доступом к серверу во время отсутствия реального пользователя рядом с компьютером.
- Переключение на протокол 2.
При стандартных настройках, для связи по SSH используется протокол 1. Существует другая, более новая и безопасная версия, называемая протокол 2. Использование этой версии протокола для связи усложняет взлом и перехват информации, следовательно, повышает уровень защиты нашего сервера. Чтобы переключиться на 2-ой протокол, находим строку protocol
и меняем цифру 1
рядом с ней на цифру 2
.
Теперь для входа в систему мы будем указывать параметр -2
для ssh
. Команда в терминале будет выглядеть следующим образом:
$ sudo ssh -2 romeo@ip_server
Так же, вместо romeo вы указываете имя своего пользователя, а вместо ip_server вводите внешний ip адрес вашего сервера.
- Теперь необходимо закрыть файл конфигурации и сохранить все внесенные изменения.
Для этого необходимо нажать сочетание клавиш CTRL+X, после чего система автоматически предложит сохранить изменения. Подтверждаем это, нажав клавишу Y. Важно! Чтобы изменения вступили в силу, необходимо выполнить перезагрузку сервера SSH. В окне терминала набираем:
$ sudo service sshd restart
Выводы
Чтобы обеспечить полноценную защиту сервера, нужно предпринять все возможные для этого меры. Мы выполнили дополнительную настройку брандмауэра, открыв доступ по протоколам http, htpps и переназначили порт подключения для протокола SSH.
Также мы изменили файл конфигурации sshd_config, в котором:
- отключили доступ для учетной записи root;
- создали список пользователей с доступом к серверу;
- ограничили число ошибочных вводов пароля;
- уменьшили время бездействия для автоматического выхода из системы;
- заменили протокол связи по SSH на новую и безопасную версию 2.
Теперь наш сервер защищен от несанкционированного доступа к информации и от целенаправленных попыток взлома.

Возможно будет интересно
Базовая настройка сервера на Ubuntu
Наш план состоит из 4-х действий, после чего сервер будет готов к установке любого необходимого софт-обеспечения и надежной работы в целом.