В этом гайде я покажу, как защитить ваш SSH-сервер.

Протокол SSH (также называемый Secure Shell) — это метод для безопасного удаленного входа с одного компьютера на другой. Он предоставляет несколько альтернативных вариантов для строгой аутентификации и защищает безопасность и целостность связи с помощью надежного шифрования. Это безопасная альтернатива незащищенным протоколам входа в систему (например, telnet, rlogin) и небезопасным методам передачи файлов (например, FTP).

Мой тестовый сервер был в сети только два часа. Когда я вошел в систему, я увидел это сообщение.

Last failed login: Fri May 22 12:51:07 CEST 2020 from 218.92.0.184 on ssh:notty
There were 718 failed login attempts since the last successful login.

Мне нужно защитить свой сервер, чтобы избежать атак.

Изменить SSH порт по умолчанию

Использование нестандартного порта для соединения SSH помогает избежать автоматических атак на ваш сервер.

Для изменения SSH порта вам необходимо отредактировать файл конфигурации sshd. В моем случае, я изменю порт по умолчанию 22 на нестандартный 54321.

# nano /etc/ssh/sshd_config

Раскомментируйте строку и измените номер порта, сохраните конфигурацию и перезапустите службу sshd.

# systemctl restart sshd

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

# netstat -ntulp | grep ssh

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

# ssh [email protected]_address  -p54321

Ограничить доступ к SSH с помощью iptables

Вы можете ограничить соединение SSH, чтобы разрешить только авторизованные IP-адреса. Чтобы разрешить SSH-соединения только с 10.10.10.10, выполните следующую команду:

# iptables -A INPUT -p tcp -m tcp --dport 54321 -s 10.10.10.10 -j ACCEPT

Чтобы отключить SSH-соединение от всех других хостов, выполните следующую команду:

# iptables -A INPUT -p tcp -m tcp --dport 54321 -m state --state NEW -j DROP

Сохраните ваши новые правила, используя следующую команду:

# iptables-save > /etc/sysconfig/iptables

Используйте SSH ключи вместо пароля

Использование паролей для аутентификации SSH небезопасно. Если один из ваших пользователей устанавливает слабый пароль, ваш сервер может быть взломан. Чтобы избежать этого, вы можете использовать ключ ssh для аутентификации без пароля.

Пожалуйста, ознакомьтесь с этим гайдом — Как настроить ключи SSH

Отключите вход по паролю

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

Вам нужно отредактировать файл конфигурации sshd.

# nano /etc/ssh/sshd_config

Найдите строку, содержащую PasswordAuthentication и измените ее на «no»

Внимание! Прежде чем перезапускать демон ssh, чтобы изменения вступили в силу, убедитесь, что вы создали и настроили ключ SSH для входа в систему.

Перезапустите службу sshd, чтобы применить конфигурацию.

# systemctl restart sshd

Я показал вам основные советы по безопасности для сервера SSH.

Tagged: