How To: Защищаем SSH с помощью fail2ban
Перевод: How To: Use fail2ban to Protect SSH
Fail2ban
У меня есть несколько серверов, в том числе и в домашнем офисе, которые доступны по SSH. Несмотря на то, что я уже настроил их использовать нестандартный порт для SSH, довольно часто в логах я замечаю неудавшиеся попытки залогиниться под стандартными пользователями. Я решил улучшить защиту и активировал fail2ban.
Что такое fail2ban?
fail2ban это софт для Linux и Unix систем, который мониторит стандартные логи операционной системы и её сервисов, находит неудачные попытки доступа с удалённых серверов и, если их было достаточно много, блокирует доступ к IP адресам этих серверов посредством IPtables.
Идея в том, что если какой-то IP адрес неудачно подключался больше 3 раз за 10 минут – то скорее всего это попытка взлома, и лучше такой адрес на какое-то время заблокировать. Это минимизирует риски, потому что доступ с подозрительных IP адресов блокируется на уровне firewall, так что дальнейшие попытки перебора пользователей и паролей больше не проводятся.
ИНТЕРЕСНО: fail2ban может защищать множество сервисов, не только SSH – в комплекте есть растущая библиотека лог файлов и правил их мониторинга.
Установка fail2ban в Ubuntu
Даже на моей системе Raspberry Pi было очень просто установить fail2ban:
ВАЖНО: перепроверьте, что у вас установлен iptables.
После установки сервис уже готов к запуску с помощью команд systemctl или service.
Настройка fail2ban
Перед запуском сервиса, пожалуй стоит его настроить.
Основные настройки для меня:
- Порт SSH – по умолчанию fail2ban будет блокировать стандартный SSH порт 22, но если у нас SSH сервер испоьзует другой порт, то это следует отразить в настройках fail2ban
- Настройки почты – fail2ban сможет слать вам емейлы по поводу банов и окончания банов
Так что редактируем /etc/fail2ban/jail.conf файл из-под пользователя root. Я сделал следующее:
Настройки электронной почты в fail2ban
Указываем нестандартный порт 202 для сервиса SSH
Как Использовать fail2ban
Запускаем сервис:
и смотрим в лог файл /var/log/fail2ban.log:
Как Читать Логи fail2ban
Как видно из примера лога выше, сервис fail2ban запустил “клетку” (“jail”) для контроля сервиса SSH. Я запустил fail2ban в 22:32 вчера вечером, и уже в 2:46am заблокировал первый подозрительный IP адрес 218.93.239.44.
Можно также проверить iptables, там уже могли оказаться заблокированные IP адреса:
Как-то так! Надеюсь, вы узнали для себя что-то новое!
Полезные ссылки
Fail2ban
У меня есть несколько серверов, в том числе и в домашнем офисе, которые доступны по SSH. Несмотря на то, что я уже настроил их использовать нестандартный порт для SSH, довольно часто в логах я замечаю неудавшиеся попытки залогиниться под стандартными пользователями. Я решил улучшить защиту и активировал fail2ban.
Что такое fail2ban?
fail2ban это софт для Linux и Unix систем, который мониторит стандартные логи операционной системы и её сервисов, находит неудачные попытки доступа с удалённых серверов и, если их было достаточно много, блокирует доступ к IP адресам этих серверов посредством IPtables.
Идея в том, что если какой-то IP адрес неудачно подключался больше 3 раз за 10 минут – то скорее всего это попытка взлома, и лучше такой адрес на какое-то время заблокировать. Это минимизирует риски, потому что доступ с подозрительных IP адресов блокируется на уровне firewall, так что дальнейшие попытки перебора пользователей и паролей больше не проводятся.
ИНТЕРЕСНО: fail2ban может защищать множество сервисов, не только SSH – в комплекте есть растущая библиотека лог файлов и правил их мониторинга.
Установка fail2ban в Ubuntu
Даже на моей системе Raspberry Pi было очень просто установить fail2ban:
ВАЖНО: перепроверьте, что у вас установлен iptables.
После установки сервис уже готов к запуску с помощью команд systemctl или service.
Настройка fail2ban
Перед запуском сервиса, пожалуй стоит его настроить.
Основные настройки для меня:
- Порт SSH – по умолчанию fail2ban будет блокировать стандартный SSH порт 22, но если у нас SSH сервер испоьзует другой порт, то это следует отразить в настройках fail2ban
- Настройки почты – fail2ban сможет слать вам емейлы по поводу банов и окончания банов
Так что редактируем /etc/fail2ban/jail.conf файл из-под пользователя root. Я сделал следующее:
Настройки электронной почты в fail2ban
Указываем нестандартный порт 202 для сервиса SSH
Как Использовать fail2ban
Запускаем сервис:
и смотрим в лог файл /var/log/fail2ban.log:
Как Читать Логи fail2ban
Как видно из примера лога выше, сервис fail2ban запустил “клетку” (“jail”) для контроля сервиса SSH. Я запустил fail2ban в 22:32 вчера вечером, и уже в 2:46am заблокировал первый подозрительный IP адрес 218.93.239.44.
Можно также проверить iptables, там уже могли оказаться заблокированные IP адреса:
Как-то так! Надеюсь, вы узнали для себя что-то новое!