Page 1 of 2

fail2ban - Настройка

Posted: Tue Sep 17, 2013 9:38 am
by nabbe
Fail2Ban – инструмент позволяющий защитить сервер от брутфорса таких сервисов как SSH, FTP, Apache и т.д. ОН производит анализ логов программ и в случае превышения лимита на неудачные логины банит IP адрес злоумышленника при помощи правил iptables, при «бане» администратору высылается оповещение.

Установка:

Code: Select all

yum install fail2ban

дальше откройте файл /etc/fail2ban/jail.conf
измените параметры:

Code: Select all

bantime  = 21600
это время в секундах на сколько блокировать хулигана, меньше чем 6 часов ставить смысла нет, лучше больше, но главное не переборщить, иначе если вы ошибетесь с паролем 3 раза вас так же заблокирует. Если у вас белый ip адрес можете прописать в параметр

Code: Select all

ignoreip = 1.14.33.13
и вас не будет блокировать. Не рекомендуется оставлять параметр ignoreip со значением по умолчанию 127.0.0.1/8, это создаёт очевидную угрозу в многопользовательских системах — если злоумышленник получил доступ хотя–бы к одному shell–аккаунту, то он имеет возможность беспрепятственно запустить bruteforce–программу для атаки на root или других пользователей прямо с этого–же сервера.

Новая опция findtime — определяет длительность интервала в секундах, за которое событие должно повториться определённое количество раз, после чего санкции вступят в силу. Если специально не определить этот параметр, то будет установлено значение по умолчанию равное 600 (10 минут). Проблема в том, что ботнеты, участвующие в «медленном брутфорсе», умеют обманывать стандартное значение. Иначе говоря, при maxretry равным 6, атакующий может проверить 5 паролей, затем выждать 10 минут, проверить ещё 5 паролей, повторять это снова и снова, и его IP забанен не будет. В целом, это не угроза, но всё же лучше банить таких ботов.


Вы можете так же изменить количество доступных попыток неудачных попыток авторизации, за это отвечает параметр

Code: Select all

maxretry = 3
По умолчанию, проверяет только неудачные авторизации через ssh, но вы можете посмотреть конфиг дальше и увидеть, что эта программа может защитить и от других видов атак, для начала защиты ssh будет достаточно, но если захотите включить другие защиты в их секции поставьте параметр enabled в значение true.

Code: Select all

enabled = true

Запуск fail2ban:

Code: Select all

service fail2ban start

добавляем в автозагрузку:

Code: Select all

chkconfig fail2ban on

Если вы указали в конфигах в параметрах dest правильный email, то через некоторое время на него вы начнёте получать сообщения о заблокированных товарищах. Проверить все блокировки можно введя в консоли команду

Code: Select all

iptables -L

Re: fail2ban - Настройка

Posted: Tue Sep 17, 2013 7:54 pm
by Aleksey
nabbe, Спасибо! Полезно!

Re: fail2ban - Настройка

Posted: Wed Sep 18, 2013 5:16 am
by demian
смысл в лишнем сервисе?

стандартное правило:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#блок попыток(после второй попытки в минуту на 16+часов)
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --rcheck --seconds 60000 --name BLOCK --rsource -j DROP
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m hashlimit --hashlimit-above 2/min --hashlimit-burst 2 --hashlimit-mode srcip --hashlimit-name BLOCK -m recent --set --name BLOCK --rsource -j DROP
iptables -A INPUT -p tcp -m tcp --dport 21 -m state --state NEW -m recent --rcheck --seconds 60000 --name BLOCK --rsource -j DROP
iptables -A INPUT -p tcp -m tcp --dport 21 -m state --state NEW -m hashlimit --hashlimit-above 2/min --hashlimit-burst 2 --hashlimit-mode srcip --hashlimit-name BLOCK -m recent --set --name BLOCK --rsource -j DROP

до кучи:

# tcp flood
iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 1/sec -j ACCEPT
iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j DROP
iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j ACCEPT
iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -j DROP
#icmp flood
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j DROP
# Стандартное правило блокировки
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited

Re: fail2ban - Настройка

Posted: Wed Sep 18, 2013 4:34 pm
by nabbe
для меня он оказался значительно проще, чем работать на прямую с iptables. Как вариант fail2ban довольно популярен и имеет место быть, для тех кто не очень хорошо разбирается в настройке фаервола =)

Re: fail2ban - Настройка

Posted: Thu Sep 19, 2013 5:01 am
by demian
nabbe wrote:для меня он оказался значительно проще, чем работать на прямую с iptables. Как вариант fail2ban довольно популярен и имеет место быть, для тех кто не очень хорошо разбирается в настройке фаервола =)
Именно по незнанию iptables массы и пользуют fail2ban

+ простая настройка
+ автоматическая блокировка множества портов
- постоянно использует память:служба ~15кб + 2 размера securyti log - при частых атаках может быть значительным
- работает с файлом лога(частые дисковые операции
- стандартно блокирует после 3 попытки
- минимальное время реакции на блокировку 1.5 минуты(слишком долго для блокировки брутфорса, на серверах с малым объемом оперативки также не подходит в качетве защиты от DDOS)

Вывод: минусы слихвой перебивают плюсы - решение не приемлемо для серверов с требующих повышенную безопасность и для продакшен серверов VDS

Re: fail2ban - Настройка

Posted: Thu Sep 19, 2013 12:17 pm
by nabbe
demian wrote:
nabbe wrote:для меня он оказался значительно проще, чем работать на прямую с iptables. Как вариант fail2ban довольно популярен и имеет место быть, для тех кто не очень хорошо разбирается в настройке фаервола =)
Именно по незнанию iptables массы и пользуют fail2ban

+ простая настройка
+ автоматическая блокировка множества портов
- постоянно использует память:служба ~15кб + 2 размера securyti log - при частых атаках может быть значительным
- работает с файлом лога(частые дисковые операции
- стандартно блокирует после 3 попытки
- минимальное время реакции на блокировку 1.5 минуты(слишком долго для блокировки брутфорса, на серверах с малым объемом оперативки также не подходит в качетве защиты от DDOS)

Вывод: минусы слихвой перебивают плюсы - решение не приемлемо для серверов с требующих повышенную безопасность и для продакшен серверов VDS

В наше время дешевых vds париться по поводу места?)
В боевом режиме съедает сейчас 56 мб озу
Так же ради интереса проверил еще раз на своем же айпи. Забанило после 3 попытки моментально, пришло письмо в следующую секунду.

Re: fail2ban - Настройка

Posted: Thu Sep 19, 2013 1:40 pm
by demian
nabbe wrote:
demian wrote:
nabbe wrote:для меня он оказался значительно проще, чем работать на прямую с iptables. Как вариант fail2ban довольно популярен и имеет место быть, для тех кто не очень хорошо разбирается в настройке фаервола =)
Именно по незнанию iptables массы и пользуют fail2ban

+ простая настройка
+ автоматическая блокировка множества портов
- постоянно использует память:служба ~15кб + 2 размера securyti log - при частых атаках может быть значительным
- работает с файлом лога(частые дисковые операции
- стандартно блокирует после 3 попытки
- минимальное время реакции на блокировку 1.5 минуты(слишком долго для блокировки брутфорса, на серверах с малым объемом оперативки также не подходит в качетве защиты от DDOS)

Вывод: минусы слихвой перебивают плюсы - решение не приемлемо для серверов с требующих повышенную безопасность и для продакшен серверов VDS

В наше время дешевых vds париться по поводу места?)
В боевом режиме съедает сейчас 56 мб озу
Так же ради интереса проверил еще раз на своем же айпи. Забанило после 3 попытки моментально, пришло письмо в следующую секунду.
4×2666 МГц
дешевый vds по вашему это сколько?
имхо для меня дешОвый VDS - это 4×2666 МГц + 4 гига озу + 100 гиг HD + unlim 100MB/c + виртуализация KVM = 300р/мес
56mb озу потребляет nginx обрабатывая ~600 одновременных подключений

Re: fail2ban - Настройка

Posted: Tue Nov 26, 2013 2:59 pm
by Scumtron
demian wrote:смысл в лишнем сервисе?
Мы попросим, что бы специально для вас, добавили кнопочку "Отключить"

Re: fail2ban - Настройка

Posted: Sat Feb 22, 2014 6:29 pm
by alexpda
Будьте добры помогите настроить правила для
Proftpd
Httpd
Nginx
Centos 6.5 -64
И вообще что нужно и можно контролировать для безопасности и "спокойной жизни" посоветуйте начинающему.
Как не бодался shh сразу заработал и четко блокирует после 3 попытки, но не шлет мэйл
С идентичной строкой отправки правило для Proftp почту шлет но реагирует вовсе не на ошибки авторизации , а при
service fail2ban restart отправляет 2 письма:
Hi,
The jail ProFTPD has been stopped.
Regards,
Fail2Ban
А перед этим The jail ProFTPD has been started.
А остальные в упор не видят ошибок и не отрабатывают.
То ли логи служб нужно как то настраивать...
Поделитесь корректными настройками, плизз

Re: fail2ban - Настройка

Posted: Sat Feb 22, 2014 9:10 pm
by nabbe
alexpda wrote:Будьте добры помогите настроить правила для
Proftpd
Httpd
Nginx
Centos 6.5 -64
И вообще что нужно и можно контролировать для безопасности и "спокойной жизни" посоветуйте начинающему.
Как не бодался shh сразу заработал и четко блокирует после 3 попытки, но не шлет мэйл
С идентичной строкой отправки правило для Proftp почту шлет но реагирует вовсе не на ошибки авторизации , а при
service fail2ban restart отправляет 2 письма:
Hi,
The jail ProFTPD has been stopped.
Regards,
Fail2Ban
А перед этим The jail ProFTPD has been started.
А остальные в упор не видят ошибок и не отрабатывают.
То ли логи служб нужно как то настраивать...
Поделитесь корректными настройками, плизз
покажи /etc/fail2ban/jail.conf и почтовый сервер настроен?