Для обеспечения безопасности серверов вывешенных наружу я часто использую утилиту 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
Отправить ответ