В iptables прописано ограничение по количеству обращений в минуту:-A INPUT -d server.ip -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m recent --set
-A INPUT -p tcp -m recent --update --seconds 30 --hitcount 10 -j REJECTну и меня самого при попытках частого подключения прекрасно срезает.
Но в логах вакханалия:Mar 1 13:28:15 zmmu popa3d(pam_unix)[20394]: authentication failure; logname= uid=0 euid=0 tty= ruser= rhost= user=root
Mar 1 13:28:18 zmmu popa3d[20394]: Authentication failed for root
Mar 1 13:28:18 zmmu popa3d(pam_unix)[20399]: authentication failure; logname= uid=0 euid=0 tty= ruser= rhost= user=root
Mar 1 13:28:20 zmmu popa3d[20399]: Authentication failed for root
Mar 1 13:28:21 zmmu popa3d(pam_unix)[20401]: authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=
Mar 1 13:28:23 zmmu popa3d[20401]: Authentication failed for UNKNOWN USER
Mar 1 13:28:24 zmmu popa3d(pam_unix)[20404]: authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=
Mar 1 13:28:26 zmmu popa3d[20404]: Authentication failed for UNKNOWN USER
Mar 1 13:28:15 zmmu xinetd[2078]: START: pop3 pid=20394 from=213.92.11.165
Mar 1 13:28:18 zmmu xinetd[2078]: START: pop3 pid=20399 from=213.92.11.165
Mar 1 13:28:21 zmmu xinetd[2078]: START: pop3 pid=20401 from=213.92.11.165
Mar 1 13:28:23 zmmu xinetd[2078]: START: pop3 pid=20404 from=213.92.11.165
Mar 1 13:28:26 zmmu xinetd[2078]: START: pop3 pid=20407 from=213.92.11.165
и так далее до бесконечностиНасколько я могу судить, это из-за первой приведенной мной строки? А как это технически делается?
>В iptables прописано ограничение по количеству обращений в минуту:
>
>-A INPUT -d server.ip -m state --state RELATED,ESTABLISHED -j ACCEPT
>-A INPUT -p tcp -m recent --set
>-A INPUT -p tcp -m recent --update --seconds 30 --hitcount 10 -j
>REJECT
>
>ну и меня самого при попытках частого подключения прекрасно срезает.
>Но в логах вакханалия:Вакханалия ? Где вы её увидели ?
Всё работает точно так, как вы наконфигурили. За тридцать секунд - разрешается десять соединений. По одному соединению в три секунды. Как раз соответствует куску приведенного вами лога.
>Насколько я могу судить, это из-за первой приведенной мной строки? А как
>это технически делается?Вы поясните, зачем вы делаете то, чего не понимаете (правила какие-то набиваете, и т д ) ?
Ну во-первых спасибо, что ответили. Во-вторых, это что модно теперь учить жить даже не дочитав тред?>Вакханалия ? Где вы её увидели ?
>
>Всё работает точно так, как вы наконфигурили. За тридцать секунд - разрешается
>десять соединений. По одному соединению в три секунды. Как раз соответствует
>куску приведенного вами лога.Я привел кусок лога. Считаю я довольно неплохо, и соединений там сильно больше чем 1 на 3 сек.
>>Насколько я могу судить, это из-за первой приведенной мной строки? А как
>>это технически делается?
>
>Вы поясните, зачем вы делаете то, чего не понимаете (правила какие-то набиваете,
>и т д ) ?Просто изумительно! Ваще можно и извиниться например.
>Я привел кусок лога. Считаю я довольно неплохо, и соединений там сильно
>больше чем 1 на 3 сек.А где ограничение, что их не должно быть больше, чем 1 на 3 сек? Это же два лога, зачем их соединять в один, чтоб больше запутать?
Должен заметить, всё оказалось интересней.Вот уж не знаю, что там творится в нутрях iptables/conntrack, но действительно, у меня в конфигурации
host01:/web# iptables -nvL
Chain INPUT (policy ACCEPT 177M packets, 57G bytes)
pkts bytes target prot opt in out source destination
203K 61M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
16 864 AUTHS tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
26 1260 AUTHS tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
первоначально перестало кидать пакеты новых соединений на цепочку AUTHS, видимо пропуская её на -m stateЧтение манов выявило наличие модуля conntrack, но не выявило наличия разницы в их функциях.
http://www.linux.org.ru/forum/admin/4437887;jsessionid=4FA52...
После некотого шаманства, пакеты всё-таки стали заворачиваться на AUTHSChain AUTHS (2 references)
pkts bytes target prot opt in out source destination
15 744 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 recent: UPDATE seconds: 60 name: auths side: source reject-with icmp-port-unreachable
7 348 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 recent: SET name: auths side: source
Правда я поменял последовательность правил - сначала проверяем, потом ставим. Иначе - выставили и следующее правило блокирует пакет, поскольку у меня нет проверки hitcount.Данная конфигурация жестока - если в течении минуты "пользователь" не прекращал "долбиться" - сооединение не будет пропущено.
Но мы ведь не варвары, поэтому сделаем так:
Chain AUTHS (2 references)
pkts bytes target prot opt in out source destination
17 840 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 recent: UPDATE seconds: 60 name: auths side: source reject-with icmp-port-unreachable
8 396 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 recent: SET name: auths side: source
iptables -A AUTHS -m recent --name auths --rcheck --seconds 60 -j REJECT
iptables -A AUTHS -m recent --name auths --set -j ACCEPT
По этому поводу масса литературы. Честно говоря я спросил не о том. Виноват - если криво задал вопрос.
Когда я сам пытаюсь сканировать снаружи мои порты или подбирать пароли - мой фильтр меня срезает. Это происходит ИМХО потому, что я каждый раз создаю новое соединение (такой софт). Этот же чел явно подбирает пароли внутри одного соединения - поэтому и подбирает сколько хочет. Возможно я не прав. Логи вроде говорят, что соединение с ним каждый раз заканчивается... Но почему тогда мои попытки фильтр срезает, а ЕГО нет?
Mar 1 13:28:15 zmmu xinetd[2078]: START: pop3 pid=20394 from=213.92.11.165
Mar 1 13:28:18 zmmu xinetd[2078]: START: pop3 pid=20399 from=213.92.11.165
Mar 1 13:28:21 zmmu xinetd[2078]: START: pop3 pid=20401 from=213.92.11.165
Mar 1 13:28:23 zmmu xinetd[2078]: START: pop3 pid=20404 from=213.92.11.165
Mar 1 13:28:26 zmmu xinetd[2078]: START: pop3 pid=20407 from=213.92.11.16515 +3 = 18
18 +3 = 21
21 +2 = 23
23 +3 = 26Это называется сильно чаще чем раз в три секунды ?
host01:~# telnet mail.mydomain.com 110
Trying 12.34.56.78...
Connected to mail.mydomain.com.
Escape character is '^]'.
+OK Hello there.
user user1
+OK Password required.
pass passw
-ERR Login failed.
user user2
+OK Password required.
pass pass2
-ERR Login failed.
user user3
+OK Password required.
pass pass4
-ERR Login failed.
user user5
+OK Password required.
pass pass5
-ERR Login failed.Да легко. Надо отключать такое нафиг, поскольку клиентскому софту не нужно...
>[оверквотинг удален]
>user user3
>+OK Password required.
>pass pass4
>-ERR Login failed.
>user user5
>+OK Password required.
>pass pass5
>-ERR Login failed.
>
>Да легко. Надо отключать такое нафиг, поскольку клиентскому софту не нужноСтоп! Можно на этом месте подробнее? Длинный столбец - это лог сессии в которой в течение одного соединения несколько раз запрашивают логин/пароль. Так?
А вот дальше я не понял смысл предложения. Можно объяснить?
В догонку
У меня аналогичный лог выглядит отнюдь не так.
Соединяюсь telnet или маньяком все равно.open mydomain.ru 110
+OK
user user
+OK
pass ghj
-ERR Authentication failed (bad password?)
Connection closed.И все - опаньки. Так только 10 раз.
А почему у вас не было Connection closed? (на всякий случай скажу, что далеко не всякая софтина выдает эту строку в лог - ну это так... мало ли вдруг не знали..)
так все - я лох педальный.
Действительно их строго 9 на 30 секунд. Я не заметил проброса в 30 секунд на каждый десятый раз.
Пожалуйста, ответьте на мой вопрос что значило: "Да легко. Надо отключать такое нафиг"
>так все - я лох педальный.
>Действительно их строго 9 на 30 секунд. Я не заметил проброса в
>30 секунд на каждый десятый раз.
>Пожалуйста, ответьте на мой вопрос что значило: "Да легко. Надо отключать такое
>нафиг""Да легко" - это в адрес конкретной реализации сервиса, позволяющей в рамках установленного ТСР соединения производить несколько попыток авторизации.
"Отключать" - делать так, чтобы неудачная попытка авторизации обрывала ТСР-сессию, заставляя пересоединяться, соответственно подпадая под действие файрволла. Поскольку, обычно нормальному клиентскому софту нафиг не надо делать несколько авторизаций в одном ТСР соединении :-) А если пользователь действительно ошибся - то ничего страшного, переподключится.
Кстати говоря, кроме fail2ban, есть еще например pam-shield ...
Всё это очень удачно можно прикрутить к обсуждаемому recent, заполняя его таблицы скриптами.
Спасибо!
>"Да легко" - это в адрес конкретной реализации сервиса, позволяющей в
>рамках установленного ТСР соединения производить несколько попыток авторизации.Так, а как вы это сделали я не понял? судя по логу - просто зашли с телнета...
>Спасибо!
>>"Да легко" - это в адрес конкретной реализации сервиса, позволяющей в
>>рамках установленного ТСР соединения производить несколько попыток авторизации.
>
>Так, а как вы это сделали я не понял? судя по логу
>- просто зашли с телнета...ну да, обычный телнет.
>>Спасибо!
>>>"Да легко" - это в адрес конкретной реализации сервиса, позволяющей в
>>>рамках установленного ТСР соединения производить несколько попыток авторизации.
>>
>>Так, а как вы это сделали я не понял? судя по логу
>>- просто зашли с телнета...
>
>ну да, обычный телнет.а ну это меняет дело. у меня такие попытки на сервере принудительно приводят к закрытию соединения.
в общем получилось, что я разобрался. Просто не так посчитал.
спасибо большое за дискуссию
>[оверквотинг удален]
>>>
>>>Так, а как вы это сделали я не понял? судя по логу
>>>- просто зашли с телнета...
>>
>>ну да, обычный телнет.
>
>а ну это меняет дело. у меня такие попытки на сервере принудительно
>приводят к закрытию соединения.
>в общем получилось, что я разобрался. Просто не так посчитал.
>спасибо большое за дискуссию:-) Я тоже маленько разобрался :-)))