Fail2ban — защита от брутфорса ( подбора пароля) в Ubuntu или Debian.: различия между версиями
imported>Vix Нет описания правки |
imported>Vix Нет описания правки |
||
(не показано 16 промежуточных версий этого же участника) | |||
Строка 34: | Строка 34: | ||
Не забываем перезапускать fail2ban после изменения конфигурации командой: | Не забываем перезапускать fail2ban после изменения конфигурации командой: | ||
$ /etc/init.d/fail2ban restart | $ /etc/init.d/fail2ban restart | ||
* [http://www.linuxjournal.su/?p=1998 взято тут...] | |||
==Если Вы используете правила iptables для fail2ban, в логах будут ошибки:== | |||
2011-11-03 15:36:18,402 fail2ban.jail : INFO Jail 'ssh-ddos' started | |||
2011-11-03 15:36:18,410 fail2ban.jail : INFO Jail 'ssh' started | |||
2011-11-03 15:51:41,522 fail2ban.actions.action: ERROR iptables -D INPUT -p tcp -m multiport --dports ssh -j fail2ban-ssh-ddos | |||
iptables -F fail2ban-ssh-ddos | |||
iptables -X fail2ban-ssh-ddos returned 100 | |||
2011-11-03 15:51:41,523 fail2ban.jail : INFO Jail 'ssh-ddos' stopped | |||
2011-11-03 15:51:42,450 fail2ban.actions.action: ERROR iptables -D INPUT -p tcp -m multiport --dports ssh -j fail2ban-ssh | |||
iptables -F fail2ban-ssh | |||
iptables -X fail2ban-ssh returned 100 | |||
Фиксим эти ошибки. | |||
Открываем /usr/bin/fail2ban-client. Находим: | |||
beautifier.setInputCmd(c) | |||
и выше добавляем строку: | |||
time.sleep(0.1) | |||
Должно выглядеть примерно так: | |||
def __processCmd(self, cmd, showRet = True): | |||
beautifier = Beautifier() | |||
for c in cmd: | |||
time.sleep(0.1) | |||
beautifier.setInputCmd(c) | |||
После рестарт fail2ban: | |||
/etc/init.d/fail2ban restart | |||
Смотрим логи теперь, в котором уже есть заблокированные IP : | |||
2011-11-01 03:49:47,223 fail2ban.actions: WARNING [vsftpd] Ban 64.59.72.176 | |||
2011-11-01 06:40:54,290 fail2ban.actions: WARNING [ssh] Ban 58.62.173.159 | |||
2011-11-02 02:17:28,560 fail2ban.actions: WARNING [ssh] Ban 87.204.34.123 | |||
2011-11-02 06:02:45,437 fail2ban.actions: WARNING [ssh] Ban 180.139.138.178 | |||
2011-11-02 11:10:45,424 fail2ban.actions: WARNING [ssh] Ban 196.22.160.48 | |||
2011-11-02 20:20:45,118 fail2ban.actions: WARNING [ssh] Ban 184.164.158.82 | |||
2011-11-03 08:35:48,926 fail2ban.actions: WARNING [ssh] Ban 174.46.89.102 | |||
* [http://vbsupport.org/forum/showthread.php?t=42078&page=2 взято тут] | |||
==Как удалить из fail2ban заблокированный ip== | |||
Вывести список заблокированных ip адресов можно с помощью команды: | |||
# iptables -L -n | |||
Удалить, например, из таблицы fail2ban-roundcube ip можно с помощью команды: | |||
# iptables -D fail2ban-roundcube -s xxx.xxx.xxx.xxx -j DROP | |||
или | |||
# iptables -D fail2ban-ssh -s 91.205.177.62 -j REJECT | |||
* где xxx.xxx.xxx.xxx - ip адрес который надо разблокировать. | |||
''' | |||
Дополнительно:''' | |||
<hr> | |||
* [http://osticket.biz/?p=1876 fail2ban & postfix] | |||
* [https://rusadmin.biz/zashhita-i-bezopasnost/spam-boty-postfix-i-fail2ban/ Спам-боты, postfix и fail2ban] | |||
* [https://toster.ru/q/654760 Как подружить postfix и fail2ban?] |
Текущая версия от 14:45, 2 ноября 2019
ail2ban — это инструмент, который отслеживает в log-файлах попытки обратится к сервисам, таким, как SSH, FTP, SMTP, HTTP и другим, и если находит постоянно повторяющиеся неудачные попытки авторизации с одного и того же IP-адреса или хоста, fail2ban блокирует дальнейшие попытки с этого IP-адреса/хоста, с помощью правила iptables(ipfw) или host.deny.
$ apt-get install fail2ban
По умолчанию мы уже получаем намного более защищенный ssh. После 3х попыток неправильного ввода пароля с одного ip адреса — он отправляется в бан. Тут же есть уже готовые примеры для ssh, exim, postfix, cyrus-imap, apache, lighttpd, named. Рассмотрим более детально некоторые параметры. Основная часть настроек fail2ban хранится в конфигурационном файле
/etc/fail2ban/jail.conf $ nano /etc/fail2ban/jail.conf
# destemail - email-адрес, на который будут отсылаться уведомления о блокировании хостов. destemail = root@localhost # mta через что отправлять письма о банах, пишем тут тот MTA, который стоит у вас на сервере Exim/sendmail/etc; mta = sendmail
# рассмотрим одну секцию [ssh] # включаем сервис enabled = true port = ssh filter = sshd # какой лог парсить, на тот случай, если вы изменяли дефолтный путь logpath = /var/log/auth.log # количество попыток, после которых банят. maxretry = 4
Не забываем перезапускать fail2ban после изменения конфигурации командой:
$ /etc/init.d/fail2ban restart
Если Вы используете правила iptables для fail2ban, в логах будут ошибки:
2011-11-03 15:36:18,402 fail2ban.jail : INFO Jail 'ssh-ddos' started 2011-11-03 15:36:18,410 fail2ban.jail : INFO Jail 'ssh' started 2011-11-03 15:51:41,522 fail2ban.actions.action: ERROR iptables -D INPUT -p tcp -m multiport --dports ssh -j fail2ban-ssh-ddos iptables -F fail2ban-ssh-ddos iptables -X fail2ban-ssh-ddos returned 100 2011-11-03 15:51:41,523 fail2ban.jail : INFO Jail 'ssh-ddos' stopped 2011-11-03 15:51:42,450 fail2ban.actions.action: ERROR iptables -D INPUT -p tcp -m multiport --dports ssh -j fail2ban-ssh iptables -F fail2ban-ssh iptables -X fail2ban-ssh returned 100
Фиксим эти ошибки. Открываем /usr/bin/fail2ban-client. Находим:
beautifier.setInputCmd(c)
и выше добавляем строку:
time.sleep(0.1)
Должно выглядеть примерно так:
def __processCmd(self, cmd, showRet = True): beautifier = Beautifier() for c in cmd: time.sleep(0.1) beautifier.setInputCmd(c)
После рестарт fail2ban:
/etc/init.d/fail2ban restart
Смотрим логи теперь, в котором уже есть заблокированные IP :
2011-11-01 03:49:47,223 fail2ban.actions: WARNING [vsftpd] Ban 64.59.72.176 2011-11-01 06:40:54,290 fail2ban.actions: WARNING [ssh] Ban 58.62.173.159 2011-11-02 02:17:28,560 fail2ban.actions: WARNING [ssh] Ban 87.204.34.123 2011-11-02 06:02:45,437 fail2ban.actions: WARNING [ssh] Ban 180.139.138.178 2011-11-02 11:10:45,424 fail2ban.actions: WARNING [ssh] Ban 196.22.160.48 2011-11-02 20:20:45,118 fail2ban.actions: WARNING [ssh] Ban 184.164.158.82 2011-11-03 08:35:48,926 fail2ban.actions: WARNING [ssh] Ban 174.46.89.102
Как удалить из fail2ban заблокированный ip
Вывести список заблокированных ip адресов можно с помощью команды:
# iptables -L -n
Удалить, например, из таблицы fail2ban-roundcube ip можно с помощью команды:
# iptables -D fail2ban-roundcube -s xxx.xxx.xxx.xxx -j DROP
или
# iptables -D fail2ban-ssh -s 91.205.177.62 -j REJECT
- где xxx.xxx.xxx.xxx - ip адрес который надо разблокировать.
Дополнительно: