🛡️ Как обезопасить и защитить сервер OpenSSH — Information Security Squad
🛡️ Как обезопасить и защитить сервер OpenSSH

Когда дело доходит до доступа к удаленным устройствам, таким как серверы, маршрутизаторы и коммутаторы, протокол SSH всегда настоятельно рекомендуется, учитывая его способность шифровать трафик и защищать вас от любого злоумышленника, кто может попытаться прослушать ваши соединения.

Как бы то ни было, настройки SSH по умолчанию не являются безошибочными, и необходимы дополнительные настройки, чтобы сделать протокол еще более безопасным.

В этом руководстве мы рассмотрим различные способы, которые вы можете использовать для защиты и усиления OpenSSH на вашем сервере.

1. Настройте аутентификацию по SSH по ключам

Ранее мы уже рассматривали этот момент:

На этом этапе у вас будет доступ  к удаленному серверу только с использованием аутентификации по ключу SSH.

2. Отключите запросы SSH пользователя без пароля

Другим рекомендуемым способом усиления безопасности вашего сервера является отключение SSH-входа пользователей без паролей.

Это звучит немного странно, но иногда системные администраторы могут создавать учетные записи пользователей и забывать назначать пароли, что является очень плохой практикой.

Чтобы отклонить запросы пользователей без пароля, снова перейдите в файл конфигурации в /etc/ssh/sshd_config и убедитесь, что у вас есть следующая директива:

PermitEmptyPasswords no

Затем перезапустите службу SSH, чтобы изменения вступили в силу.

$ sudo systemctl restart sshd

3. Отключите вход пользователя root по SSH

Разрешение удаленного входа в систему пользователю root — это всегда плохая идея, которая может поставить под угрозу безопасность вашей системы.

По этой причине всегда рекомендуется отключать удаленный вход по SSH в систему root и вместо этого придерживаться обычного пользователя без полномочий root.

Еще раз, зайдите в файл конфигурации и измените эту строку, как показано далее:

PermitRootLogin no

Затем перезапустите службу SSH, чтобы изменения вступили в силу.

$ sudo systemctl restart sshd
Отныне удаленный вход в систему пользователя root будет деактивирован.

4. Используйте протокол SSH 2

SSH поставляется в двух версиях: протокол SSH 1 и протокол 2.

Протокол SSH 2 был представлен в 2006 году и является более безопасным, чем протокол 1, благодаря строгим криптографическим проверкам и надежным алгоритмам.

По умолчанию SSH использует протокол 1.

Чтобы изменить его на более безопасный протокол 2, добавьте следующую строку в файл конфигурации:

Protocol 2
Как всегда, перезапустите SSH, чтобы изменения вступили в силу.

$ sudo systemctl restart sshd

В дальнейшем SSH будет использовать протокол 2 по умолчанию.

Чтобы проверить, поддерживается ли протокол SSH 2, выполните команду:

$ ssh -1 user@remote-IP

Вы получите сообщение об ошибке   “SSH protocol v.1 is no longer supported”.

Кроме того, вы можете просто указать тег -2, чтобы быть уверенным, что протокол 2 является используемым по умолчанию протоколом.

$ ssh -2 itsecforu@192.168.2.108

5. Установите значение времени простоя соединения SSH

Если вы оставляете свой компьютер без присмотра в течение продолжительного времени с бездействующим SSH-соединением, это может создать угрозу безопасности.

Кто-то сможет просто принять сеанс SSH и делать все, что пожелает.

Поэтому для решения этой проблемы целесообразно установить ограничение времени простоя, при превышении которого сеанс SSH будет закрыт.

Еще раз откройте ваш файл конфигурации SSH и найдите директиву «ClientAliveInterval».

Назначьте разумное значение, например, я установил ограничение в 180 секунд.

ClientAliveInterval 180
Это означает, что сессия SSH будет прервана, если не будет зарегистрировано никаких действий через 3 минуты, что эквивалентно 180 секундам.

Затем перезапустите демон SSH, чтобы изменения вступили в силу.
$ sudo systemctl restart sshd

6. Ограничьте доступ по SSH для определенных пользователей.

Для дополнительного уровня безопасности вы можете определить пользователей, которым требуется протокол SSH для входа в систему и выполнения удаленных задач в системе.

Это исключает других пользователей, которые могут попытаться получить доступ к вашей системе без вашего разрешения.

Как всегда, откройте файл конфигурации и добавьте директиву «AllowUsers», за которой добавьте имена пользователей, которым вы хотите предоставить доступ.

В приведенном ниже примере я разрешил пользователям «itsecforu» и «itisgood» иметь удаленный доступ к системе через SSH.

Любой другой пользователь, который пытается получить удаленный доступ, будет заблокирован.

AllowUsers itsecforu itisgood
После этого перезапустите SSH для сохранения изменений.

$ sudo systemctl restart sshd

7. Настройте ограничение попыток ввода пароля.

Еще один способ добавить уровень безопасности — ограничить количество попыток входа в систему SSH, чтобы после нескольких неудачных попыток соединение обрывалось.

Итак, еще раз зайдите в файл конфигурации и найдите директиву MaxAuthTries и определите значение для максимального количества попыток.

В этом примере предел был установлен в 3 попытки, как показано далее:

MaxAuthTries 3

И, наконец, перезапустите службу SSH, как в предыдущих случаях.

Заключение

Это был обзор некоторых мер, которые вы можете предпринять для защиты удаленных соединений SSH.

Важно добавить, что вы всегда должны назначать надежные пароли пользователям, имеющим удаленный доступ для предотвращения атак методом брута.


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *