Соответствующая тема закрыта, поэтому создаю новую... чтобы выразить восхищение недавним открытием. Случайно, решив от нечего делать просмотреть логи на моём VPS, обнаружил, что какие-то нехорошие люди/боты пытаются тыкаться в сашку, перебирая пароли и логины. Быстрый гуглёжь подсказал тулзу , которая проста в установке и настройке, но позволяет слать засранцев по известному адресу, автоматически дописывая правила в iptables.
Код:
2014-07-14 11:22:56,008 fail2ban.jail : INFO Creating new jail 'ssh'
2014-07-14 11:22:56,640 fail2ban.jail : INFO Jail 'ssh' uses pyinotify
2014-07-14 11:22:56,675 fail2ban.jail : INFO Initiated 'pyinotify' backend
2014-07-14 11:22:56,676 fail2ban.filter : INFO Added logfile = /var/log/auth.log
2014-07-14 11:22:56,677 fail2ban.filter : INFO Set maxRetry = 3
2014-07-14 11:22:56,678 fail2ban.filter : INFO Set findtime = 600
2014-07-14 11:22:56,678 fail2ban.actions: INFO Set banTime = 86400
2014-07-14 11:22:56,724 fail2ban.jail : INFO Jail 'ssh' started
2014-07-14 11:47:30,002 fail2ban.actions: WARNING [ssh] Ban 116.10.191.169
2014-07-14 11:47:33,036 fail2ban.actions: INFO [ssh] 116.10.191.169 already banned
2014-07-14 11:52:27,293 fail2ban.actions: WARNING [ssh] Ban 199.244.88.197
2014-07-14 12:24:07,950 fail2ban.actions: WARNING [ssh] Ban 116.10.191.164
2014-07-14 12:41:29,875 fail2ban.actions: WARNING [ssh] Ban 61.174.50.184
2014-07-14 12:52:41,481 fail2ban.actions: WARNING [ssh] Ban 118.212.168.194
2014-07-14 13:21:07,993 fail2ban.actions: WARNING [ssh] Ban 124.207.128.14
2014-07-14 13:33:35,685 fail2ban.actions: WARNING [ssh] Ban 122.224.11.43
2014-07-14 15:31:08,939 fail2ban.actions: WARNING [ssh] Ban 124.90.231.248
2014-07-14 16:14:16,518 fail2ban.actions: WARNING [ssh] Ban 5.230.227.240
2014-07-14 19:30:04,841 fail2ban.actions: WARNING [ssh] Ban 61.174.51.233
2014-07-14 19:37:02,233 fail2ban.actions: WARNING [ssh] Ban 62.212.66.29
2014-07-14 21:34:41,554 fail2ban.actions: WARNING [ssh] Ban 31.199.3.187
2014-07-14 22:24:47,322 fail2ban.actions: WARNING [ssh] Ban 61.174.51.197
2014-07-14 22:24:49,329 fail2ban.actions: INFO [ssh] 61.174.51.197 already banned
2014-07-14 23:55:57,263 fail2ban.actions: WARNING [ssh] Ban 186.155.250.210
2014-07-15 00:05:04,754 fail2ban.actions: WARNING [ssh] Ban 218.59.209.136
2014-07-15 03:01:27,047 fail2ban.actions: WARNING [ssh] Ban 61.174.51.215
2014-07-15 04:59:46,274 fail2ban.actions: WARNING [ssh] Ban 116.10.191.176
2014-07-15 05:20:38,393 fail2ban.actions: WARNING [ssh] Ban 61.174.51.209
2014-07-15 09:09:21,582 fail2ban.actions: WARNING [ssh] Ban 112.96.28.187
2014-07-15 09:25:56,491 fail2ban.actions: WARNING [ssh] Ban 116.10.191.229
2014-07-15 09:26:26,765 fail2ban.actions: WARNING [ssh] Ban 212.116.87.118
2014-07-15 09:41:15,631 fail2ban.actions: WARNING [ssh] Ban 93.174.93.114
2014-07-15 11:06:28,306 fail2ban.actions: WARNING [ssh] Ban 144.0.0.35
2014-07-15 11:06:29,313 fail2ban.actions: INFO [ssh] 144.0.0.35 already banned
Я тащусь!
Настроил просто: за три неудачных попытки авторизации в течение 10 минут, хост-нарушитель отправляется в бан на сутки. В логах стало гораздо спокойнее.
Да, ее в последнее время неплохо допилили и очень удобная вещь.
Подчеркну только, что iptables для этих целей не очень подходящая вещь, поскольку при количестве цепочек более 1000 заметно подлагивает, особенно, если цепочка сложная (проверяется много пакетов). Рекомендую ipset. И обрати внимание на "already banned", по ходу цепочка не работает.
IT-форумы говорят, что появление "already banned" - нормальное явление. Получается это оттого, что iptables обновляется чуть позже, чем реагирует fail2ban, и несколько пакетов от "плохого" хоста успевают проскочить на целевой порт. В логе это видно - задержка между баном и повялением "already banned" составляет 1-3 секунды.
Апдейт: погуглил на тему ipset. Пока не вижу причин дёргаться, и заменять/дополнять одно другим.
Судя по всему, у тебя скрипт бана достаточно долго отрабатывает, настолько, что злодей успевает две попытки сделать до бана.
Я обычно выхожу на бан с какого-то другого хоста и проверяю, забанился при заданных условиях или нет. Вот и весь дебаг :)
Обрати внимание, что можно случайно забанить новые подключения, что не катит совсем. Надо все пакеты сбрасывать, иначе злодей входит, потом его банит, но воспользоваться существующим подключением он может без проблем.
1-3 секунды - это тихий ужас, как долго, в некоторых случаях хватит, чтобы сломать твой хост :) Что касается ipset, то я не только почитал, но и попробовал. И особенно порадовался, когда этой зимой обвал сканов был с ботнета. Тут бы все легло, если бы на iptables было.
OlegON➤ это тебе не Windows. должно быстро отбиваться и на таком, если только все в свопе не лежит
Ничего там в свопе не лежит. Другое дело, что на той же железке крутится немалое количество "виртуалок" OpenVZ, и, полагаю, они могут оказывать друг на друга некоторое влияние.
говорит, что скорее всего у тебя в скрипте что-то тормозит... ожидания нулевые, при нулевой же загрузке... это не не 286 машина, чтобы три секунды думать...