На мой взгляд, sshguard самое простое приложение, которое я видел в последнее время, для защиты от массового подбора паролей к различным сервисам.
SSHGuard интересен не только своей простотой, но и тем, что написан на C (в отличие от других похожих демонов, написанных на bash, python, perl), поэтому он работает на порядок быстрее, а так же у него отсутствуют проблемы с безопасностью, которые могут потенциально возникнуть при использовании других обработчиков лог-файлов.
Основные возможности
Обработка логов различных форматов:
- syslog
- syslog-ng
- metalog
- multilog
- raw log
Так же он может одновременно работать параллельно с несколькими лог файлами, учитывая ротацию логов и временные лог-файлы.
По умолчанию может защитить самые популярные сервисы (Приведу те, которые используются в работе виртуальных серверов наших клиентов наиболее часто)
- sshd
- Sendmail
- Exim
- dovecot
- vsftpd
- proftpd
- FreeBSD ftpd
Помимо обработки запросов к этим приложениям, sshguard для блокировки использует различные варианты, подходящие к разным операционным системам и дистрибутивам.
Как видно из списка, в основном это различные файрволы.
- PF (OpenBSD, FreeBSD, NetBSD, DragonFly BSD)
- netfilter/iptables (Linux)
- IPFIREWALL/ipfw (FreeBSD, Mac OS X)
- IPFILTER (FreeBSD, NetBSD, Solaris)
- tcpd's hosts.allow (TCP-wrappers, не требует работы файрвола)
Другие возможности:
- Поддержка ipv6
- Ведение белых списков
- Автоматические занесение в черный спиков
- Поддержка сообщений в логах об авторизации
- Возможность блокировки доступа как по адресам, так и по сервисам
Пример использования
После установки sshguard достаточно просто внести правила в файрвол вашего сервера и все.
В качестве примера рассмотрим защиту ssh-сервера, почтового сервера и ftp для Linux. В Linux по умолчанию используется файрвол iptables. Чтобы занести правила для защиты сервисов, следует выполнить команды:
Создаем цепочку правил для sshguard
iptables -N sshguard
Добавляем в цепочку правил отслеживание активности на портах 21, 22, 110, 143 (ftp, ssh, pop3, imap)
iptables -A INPUT -m multiport -p tcp --destination-ports 21,22,110,143 -j sshguard
Сохраняем правила
service iptables save
Более подробное описание установки и настройки есть в статье.