Для обеспечения безопасности серверов вывешенных наружу я часто использую утилиту fail2ban для защиты ssh. Поскольку не всегда подключаюсь к серверам со статических IP — адресов (так можно было бы просто прописать разрешtния в Firewall.
Общий смысл — при достижении определенного количества неудачных попыток входа, IP — адрес, с которого были предприняты эти попытки — будет забанен на заданное количество секунд.
Устанавливаем утилиту Fail2Ban
В CentOS
sudo yum install fail2banВ Ubuntu
sudo apt install fail2banИ не забываем включить, для автозапуска
systemctl enable fail2ban Файлы конфигурации fail2ban находятся в каталоге /etc/fail2ban/
- fail2ban.conf – настройки сервиса по умолчанию.
- fail2ban.d/. – пользовательские настройки сервиса
- jail.conf – настройки по умолчанию, для защищаемых сервисов
- jail.d/. – пользовательские настройки для защищаемых сервисов
- filter.d/. – настройки шаблонов поиска в системных журналах
- action.d/. – настройки выполняемых действий
- paths*.conf – настройки путей по умолчанию, для различных операционных систем.
На этом этапе рекомендую сделать резервную копию конфигурации по умолчанию командой:
Для CentOS
mv /etc/fail2ban/jail.conf /etc/fail2ban/jail.oldДля Ubuntu
mv /etc/fail2ban/jail.d/defaults-debian.conf /etc/fail2ban/jail.d/defaults-debian.conf.oldИ создаем новый:
nano /etc/fail2ban/jail.d/sshd.conf
И дописываем параметры для ssh
[sshd]
enabled = true
bantime = 600
findtime = 650
maxretry = 5- enabled = true \ false — включен \ выключен
- bantime — количество секунд, на которое адрес будет забанен
- findtime — количество секунд, в течении которых будут считаться попытки авторизации (начиная с первой)
- maxretry — количество попыток, при превышении которого адрес отправится в бан
Т.е. с данной конфигурацией адрес будет забанен на 600 секунд, если он совершит 5 неудачных попыток входя в течении 650 секунд начиная с первой попытки.
Для применения настроек перезапускаем сервис:
systemctl restart fail2banДля просмотра статуса и заблокированных ip можно пользоваться командой
fail2ban-client status sshdЧтобы добавить адрес в список исключений воспользуйтесь командой
fail2ban-client set sshd addignoreip 123.123.123.123Чтобы разблокировать забаненый IP
fail2ban-client set sshd unbanip 123.123.123.123Для просмотра списка исключений:
fail2ban-client get sshd ignoreipЕсли хотите убрать адрес из списка исключений:
fail2ban-client set sshd delignoreip 123.123.123.123Список исключений после перезапуска сервиса или всего сервера сбросится. Для того, чтобы настройка действовала постоянно, нужно дописать это в файл конфигурации. Снова редактируем /etc/fail2ban/jail.d/sshd.conf
Для исключения одного адреса — добавляем:
ignoreip = 123.123.123.123Если нужно внести несколько адресов или подсети, можно вносить их через пробел:
ignoreip = 123.123.123.123 10.11.12.13/24 172.17.16.0/20Полезная информация:
fail2ban(8) — Linux man page (die.net)
Fail2Ban — Fail2ban