В корень! | Arduino | Мини-ПК | Электрика | Меры | Цитатник | Мой календарь | Прочее ... | Time SRV | В т.ч. НДС 18%*
fail2ban анализирует логи, и если встречает последовательности, определяемые регулярными выражениям, применяет правила iptables.
Ставим:
sudo apt-get install fail2ban
Далее конфигурируем саму программу:
nano /etc/fail2ban/jail.conf
Указываем свой почтовый ящик для алертов:
destemail = root@yourdomain.tld
Если есть необходимость, то можно в включить логирование пакетов, попавших в бан. Для этого меняем строчку на:
banaction = iptables-multiport-log
По умолчанию, проверяется и банится только ssh.
Если необходимо добавить зашиту других сервисов, ставим в нужной секции: enabled = true
Например:
[proftpd] enabled = true port = ftp,ftp-data,ftps,ftps-data filter = proftpd logpath = /var/log/proftpd/proftpd.log maxretry = 6
Перезапускаем fail2ban:
/etc/init.d/fail2ban restart
У меня нормально fail2ban не завёлся, вылетала ошибка, кусочек лога:
fail2ban.actions.action: ERROR iptables -N fail2ban-ssh
Чтобы решить эту проблему открываем файлик /etc/fail2ban/action.d/iptables-multiport.conf и находим там строчку actionstart и приводим этот раздел к такому виду:
actionstart = sleep ${RANDOM:0:1}.${RANDOM: -1:1} iptables -N fail2ban-<name> iptables -A fail2ban-<name> -j RETURN iptables -I INPUT -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
Потом находим actionstop и приводим к виду:
actionstop = sleep ${RANDOM:0:1}.${RANDOM: -1:1} iptables -D INPUT -p <protocol> -m multiport --dports <port> -j fail2ban-<name> iptables -F fail2ban-<name> iptables -X fail2ban-<name>
После этого перезагружаем
/etc/init.d/fail2ban reload
и радуемся!
на ноде делаем следующее:
cp /etc/fail2ban/action.d/iptables-allports.conf /etc/fail2ban/action.d/iptables-allports-vps.conf
Копируем строки содержащие INPUT, и в скопированном INPUT меняем на FORWARD и меняем на vps также, в actionstart добавим проверку на существование записей в цепочках, чтобы начальные правила не дублировались.
nano /etc/fail2ban/action.d/iptables-allports-vps.conf
[Definition] actionstart = iptables -N fail2ban-vps iptables -n -L fail2ban-vps | grep RETURN || iptables -A fail2ban-vps -j RETURN iptables -n -L INPUT | grep fail2ban-vps || iptables -I INPUT -p <protocol> -j fail2ban-vps iptables -n -L FORWARD | grep fail2ban-vps || iptables -I FORWARD -p <protocol> -j fail2ban-vps actionstop = iptables -D INPUT -p <protocol> -j fail2ban-vps iptables -D FORWARD -p <protocol> -j fail2ban-vps iptables -F fail2ban-vps iptables -X fail2ban-vps actioncheck = iptables -n -L INPUT | grep -q fail2ban-vps iptables -n -L FORWARD | grep -q fail2ban-vps actionban = iptables -I fail2ban-vps 1 -s <ip> -j DROP actionunban = iptables -D fail2ban-vps -s <ip> -j DROP [Init] name = default protocol = tcp port = anyport
Редактируем jail.conf:
nano /etc/fail2ban/jail.conf
Конфиг должен выглядеть вот так:
bantime = 3600 maxretry = 10 banaction = iptables-allports-vps port = anyport [ssh-local] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log [1001-ssh] enabled = true filter = sshd logpath = /vz/private/1001/var/log/auth.log [1001-proftpd] enabled = true filter = proftpd logpath = /vz/private/1001/var/log/proftpd/proftpd.log [1002-ssh] enabled = true filter = sshd logpath = /vz/private/1002/var/log/auth.log [1002-proftpd] enabled = true filter = proftpd logpath = /vz/private/1002/var/log/proftpd/proftpd.log [1003-ssh] enabled = true filter = sshd logpath = /vz/private/1003/var/log/auth.log
Перезапускаем fail2ban:
/etc/init.d/fail2ban restart
Теперь, при попытке перебора паролей на SSH или FTP, кулхацкеру будет закрыт TCP на все VPS-ы и ноду. Можно еще и UDP добавить, но в моем случае, в этом не было необходимости.
Для проверки, реагиреут ли fail2ban на записи в логах можно воспользоваться утитлтой fail2ban-regex:
fail2ban-regex "line" "failregex"
fail2ban-regex /var/log/auth.log "Failed [-/\w]+ for .* from "
fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf
Проверить конфигурацию:
fail2ban-client -d
Настраиваем WEB-сервер
Apache2 + PHP5 + MySQL + phpMyAdmin
Пример для виртуальных хостов
Последовательное соединение проводников![]() Параллельное соединение проводников ![]() |
![]() ![]() |
2:5020/1209.12@FidoNet
Copyright © 2004 - 2025 MSK VAO-IX GROUP • ЗАО "Сумма технологий" - Сделано двумя руками!