|
fail2ban - надежная защита от подбора паролей для Joomla, WordPress, DataLife и других CMS |
Где-то в период с 15-20 августа многие движки, в том числе самые известные - Joomla, DLE, WordPress, E107 и другие начали массово взламывать методом подбора паролей.
Многие 40% сайтов на известных движках в сети были взломаны. Да-да 40% это очень большая цифра, подбирали с помощью многотомных словарей и могли взломать даже трудные пароли, типа #RWF#@8j.
В связи с этим возникла потребность в надежной защите своих сайтов. Есть отличный инструмент, который анализирует логи по регулярным выражениям и если количество обращений больше чем в настройках то устанавливает BAN на определенное время. На самом деле скрипт очень простой, но очень полезный и используется многими хостингами.
Давайте подробнее рассмотрим что же такое Fail2Ban и как с его помощью можно защитить сервер от перебора паролей.
Для начала установим его:
# wget http://www.divhost.ru/files/fail2ban-0.8.10.tar.gz # скачиваем fail2ban с нашего сервера.
# tar xvfj fail2ban- 0.8.10 .tar.bz2 #распаковываем
# cd fail2ban- 0.8.10 #переходим в директорию fail2ban- 0.8.10
# python setup.py install #осуществляем установку с помощью Питона
# cd config #переходим в папку настроек
# cp debian-initd/etc /init.d/fail2ban #важный момент, перемещаем управляющий файл
# cd /etc/init.d # переходим в директорию init.d
# chmod +x fail2ban # устанавливаем права
# update-rc.d fail2ban defaults # записываем в автозагрузку
# cp fail2ban.conf.iptables /etc/fail2ban.conf # устаналиваем файл конфигурации
Теперь рассмотрим как защитить наш сервер с помощью этой утилиты.
В настройках fail2ban уже идут конфиги и регулярные выражения для защиты основных сервисов сервера, а именно: ssh, proftpd,vsftpd, mysqld и другие.
Теперь разберемся как нам создать своё правило и отслеживать скрипты к примеру:
[DEFAULT]
bantime = 3600 # время бана в секундах
[ssh-iptables]
enabled = true # если true то директива ssh-iptables включена
filter = sshd # имя фильтра, должно соотвествовать filter.d
action = iptables[name=SSH, port=ssh, protocol=tcp] # name должно соотвествовать filter.d, port=ssh, protocol=tcp
sendmail-whois[name=SSH, dest=admin@company.org, sender=fail2ban@company.org] # dest - ваш email на который высылать письмо если фильтр сработает
logpath = /var/log/secure # файл логов где отслеживается появление записей, которое соответствует регулярному выражению в файле filter.d/ss
maxretry = 3 # количество повторов, после которых включать блокировку.
Просмотр IP которые забанены:
fail2ban-client status ssh-iptables
|
|