"Preventing Brute Force Attacks With Fail2ban On Fedora 9 (http://www.howtoforge.com/preventing-brute-force-attacks-wit...)" - блокирование атак по перебору паролей через SSH, FTP, SMTP и HTTP при помощи ПО Fail2ban (http://www.fail2ban.org/)URL: http://www.howtoforge.com/preventing-brute-force-attacks-wit...
Новость: http://www.opennet.me/opennews/art.shtml?num=17675
s/denyhosts/fail2ban/g
=)
баян %)
http://www.opennet.me/opennews/art.shtml?num=10681
Минус у этой штуки я вижу только один, зато какой!В куче мест жирный питон нахрен не впился.Ставить его ради 1 мелкого скриптика - перебор :(.Итого для мизерного скрипта надо вкорячить в систему чуть ли не хренадцать мегабайтов рантайма для его запуска.Это, извините, пи***ц и на фоне этого отсутствие нужды это компилировать не выглядит уже таким бесспорным достоинством.То есть в системах с ограниченными ресурсами (типа сетевых железяк например) оно заведомо не жилец а на серверах - засирать сервера (порой ненужными) зависимостями ради 1 мелкого скрипта - весьма на любителя.Вроде где-то видел менее навернутое для ssh, зато сугубо на шелскрипте :)
http://anp.ath.cx/sshit/маленько отредактировав скриптик можно блочить по любым сервисам ;) но это на perl-е, который есть практически везде в отличии от .py ;)
>маленько отредактировав скриптик можно блочить по любым сервисам ;) но это на
>perl-е, который есть практически везде в отличии от .py ;)Ну да, как же, везде. Вот ssh есть и правда почти везде. Даже в мелких роутерах и подобных девайсах с Linux на борту.А вот никакими перлами и питонами там и не пахло, ибо этих жиртрестов там элементарно некуда впихнуть.Итого получается неуниверсально и маленький скрипт тянет за собой вагон гуано по зависимостям.Не, конечно, разжиться пневмомолотом и научиться юзать оный ради вбивания 1 мебельного гвоздика - это да, модно нынче.
>маленько отредактировав скриптик можно блочить по любым сервисам ;) но это на
>perl-е, который есть практически везде в отличии от .py ;)Не тешь себя надеждой - там где есть перловка - питон есть и подавно :)
>Не тешь себя надеждой - там где есть перловка - питон есть
>и подавно :)Это не так.Вы пытаетесь выдать желаемое за действительное?Или в чем прикол?Видел несколько "лысых" конфигураций систем в минимальном инсталле (дебиан и еще что-то) - там по дефолту был перл а питона не было.Только количество таких конфигураций по-моему не стоит ломки копий "у кого длиннее".Просто для опровержения вашей заявы достаточно найти хоть 1 такую конфигу.А это легко.
P.S. лично мне одинаково несимпатично требование мелкой системной приблудой что перла, что питона.Ибо резко снижает полезность и универсальность данной приблуды.Еще бы дотнет блин потребовали, чего скромничать то?
>Ну да, как же, везде. Вот ssh есть и правда почти везде. Даже в мелких >роутерах и подобных девайсах с Linux на борту.И как в данном контексте ssh соотносится с perl`ом?
Интересно, тут научились не только не ходить по ссылкам, но еще и комментарии по диагонали читать?
Мои пять копеек1) Проверить выражение fail2ban можно с помощью его же встроенного проверяльщика
fail2ban-regex /путь/до/лог/файла /путь/до/конфига
например, fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/sasl.confВывод будет примерно такой:
--------------------------------------------------------------------Running tests
=============
Use regex file : /etc/fail2ban/filter.d/sasl.conf
Use log file : /var/log/mail.log
Results
=======
Failregex
|- Regular expressions:
| [1] (?i): warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [A-Za-z0-9+/]*={0,2})?$
| [2] .*\[<HOST>\] *.* checkpass failed$
| [3] .*\[<HOST>\] *.* authentication failure$
|
`- Number of matches:
[1] 0 match(es)
[2] 0 match(es)
[3] 9 match(es)Summary
=======
Addresses found:
[1]
[2]
[3]
174.122.222.50 (Tue May 29 07:53:15 2012)
174.122.222.50 (Tue May 29 07:53:17 2012)
174.122.222.50 (Tue May 29 07:53:19 2012)
174.122.222.50 (Tue May 29 07:53:20 2012)
174.122.222.50 (Tue May 29 07:53:22 2012)
174.122.222.50 (Tue May 29 07:53:23 2012)
174.122.222.50 (Tue May 29 07:53:25 2012)
174.122.222.50 (Tue May 29 07:53:27 2012)
63.228.150.105 (Wed May 30 02:38:52 2012)
-----------------------------------------------------------------2. С чем я столкнулся. Проверяйте права на лог файлы! Если fail2ban не сможет их прочитать, то и блокировать он не будет.
3. Чтобы получать уведомление на email о блокированных IP нужно в файле
/etc/fail2ban/jail.conf
Изменить параметр
action = %(action_)sна
action = %(action_mwl)s или action = %(action_mw)sОписание параметра есть в конфиг файле.
4. Мои regexв фильтр postfix.conf добавить правило для 550 ошибки (Пользователь не найден)
failregex = reject: RCPT from (.*)\[<HOST>\]: 550В фильтр sasl.conf добавить правило
failregex = .*\[<HOST>\] *.* authentication failure$В фильтр courierlogin.conf
failregex = .*\[<HOST>\] *.* checkpass failed$В фильтр cyrus-imap.conf
failregex = .*\[<HOST>\] *.* checkpass failed$Создаём фильтр apache для защиты от перебора страниц. Создаём новый файл с таким содержанием:
--------/etc/fail2ban/filter.d/apache-pma.conf----------------
[Definition]
failregex = [[]client <HOST>[]] File does not exist:
ignoreregex =--------------------------------------------------------------
В jail.conf прописываем новый фильтр:
--------/etc/fail2ban/jail.conf-------------------------------
[apache-pma]
enabled = true
port = http,https
filter = apache-pma
logpath = /var/log/apache2/error.log
maxretry = 3
--------------------------------------------------------------
5. После всех добавлений нужно перезапуситть fail2ban/etc/init.d/fail2ban restart