В этом руководстве я покажу, как защитить ваш 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 root@ip_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-сервера.


