Кто-то упертый больше часа пытался подобрать логин-пароль. Более 1000 попыток с одного IP. Есть ли возможность установить лимит попыток и блокировку на какое-то время этого IP?
Комментарии к этой версии (22.07.2010 09:54) [~matveeva] d0bf9c4e
Комментарии к версии 2 (22.07.2010 09:54) [~matveeva] f96e14c3
А почему бы просто не заблокировать этот адрес? Встроенный фаерволл, ИМХО, имеет такую возможность. Вроде бы там есть и ограничение по DOS-атакам, как раз то что нужно в этом случае.
Да, это можно делать IDS'ом — автоматически выявлять настойчивых хулиганов и блокировать firewall'ом, но счетчик неудачных попыток авторизации сейчас для таких блокировок не используется, т.е. без дополнительного программирования не сработает (в IDS исходными данными является "скорость счетчика коннектов" с IP).
Идея ваша, Елена, совершенно правильная, "витает в воздухе", и как раз для её реализации БД незваных гостей и ведётся, но пока вот в таком виде без автоматического репрессирования.
shajtan пишет: Посмотрите в commonplugins/firewall, сам конфиг фаерволла можно глянуть в eserv.ini
Да, есть такое, раньше не видела. Там стоит UseFireWall=0. Это специально по умолчанию отключено по каким-то соображениям? Надо ли переводить в =1? Те значения, которые стоят в секции [IDS] по умолчанию можно оставлять без исправлений? Уже так привыкла, что все параметры Е4 теперь есть в WEB-интерфейсе, что забываю поглядывать в ini файл.
ac пишет: пока вот в таком виде без автоматического репрессирования.
Посмотрите как это реализовано в PigMailPigProxy, по умолчанию установлено три попытки, если попытки заканчиваются айпишник такой заноситься автоматом в черный список...
Да, автоматическое пополнение черных списков в определенных ситуациях было и в базовом конфиге E3.
matveeva пишет: Значит, есть к чему стремиться!
Это да. Линия горизонта всегда хорошо видна, но сколько к ней не идешь... Вот уже и рубеж веков давно перешагнули, а та линия всё далеко впереди, и даже временами сзади, но все никак не под ногами с надписью "Стоп, дальше некуда".
matveeva пишет: Надо ли переводить в =1? Те значения, которые стоят в секции [IDS] по умолчанию можно оставлять без исправлений?
Поэкспериментировать можно, но большой пользы в мирной жизни от этого инструмента нет. А потенциальный вред есть. Так в прошлом (во времена E3) админы нередко неправильными настройками блокировали собственных пользователей, а потом жаловались "что-то у нас Eproxy прерывисто работает". Если же на сервер ломятся не случайно зашедшие боты, осторожно ищущие где что плохо лежит, а целенаправленно наведенные врагами бомбардировщики, то вот здесь этот plugin поможет серверу хоть как-то переводить дух, прикрываясь автоматическим бронированным щитом IDS, заточенным как раз на распознание ковровых бомбардировок.
yuriy пишет: Эти возможности файрвола будут работать всегда, или если Е4 стоит внутри сети, за другим файрволом, и имеет внутренний IP, то не сработает?
Зависит от того, что видит Eserv — публичный IP клиента или внутренний IP файрвола. Если первое, то работать будет.
ac пишет: большой пользы в мирной жизни от этого инструмента нет.
Ну, значит и не буду ставить пока. Тем более нам это не так, видимо, страшно, т.к. сидим за ADSL-ным модемом, и на комп. перенаправляются только неск. специально запрошенных у провайдера портов. Поэтому страшна только успешная попытка авторизации на SMPT сервере. И когда появится механизм, блокирующий этих "чудаков", будет совсем все в шоколаде!
ac пишет: прикрываясь автоматическим бронированным щитом IDS, заточенным как раз на распознание ковровых бомбардировок.
Надо не просто прикрываться, а отстреливаться от этих гадов ))
Еще есть мнение, что надо подставить другую щеку А в нашей ситуации сетевые атаки вообще незаконны, поэтому метод борьбы такими же бомбами неприемлем. А дипломатический путь переговоров с администрациями сетей, откуда ведутся атаки, слишком долгий и обычно бесперспективный. Firewall'ная блокировка конкретных атакующих IP наиболее оптимальный вариант — атакующий, получая таймауты, может решить, что он уже успешно отбомбился, и улететь.
Вопрос об ограничении количества попыток авторизации и временной блокировке IP по-прежнему актуален. Регулярно кто-то ломится.
Или это уже сделано, а я пропустила?
Пришлось пока откатить acWeb на предыдущую версию.
Может не стоит так жестко поступать с пользователями, которые из локальной сети?
Кстати acIMAP тоже блокирует пользователей. Такое впечатление, что он вообще не понимает паролей. Причем все. Как админовские, так и пользователей.
Откатил все сервисы на предыдущую версию
Виноват, извините Исправление уже раздается в обновлениях.
alex1124 пишет: считается неавторизованным сразу
Все-таки не сразу, а с 11 коннекта (независимо от успешности предыдущих коннектов). Перед выпуском обновления решил сэкономить Eserv'ам еще пару операций, перенес проверку счетчика выше чем следовало.
А как отключить "ограничения количества попыток авторизации"?
Блокируется IP и соответственно не работает и почта и всё остальное. Клуши по утрам приходят и пока кофе не попьют не могут пароль набрать.
Лучше не отключать ограничение а как нить отдельно каждого пользавателя переподключать а то решаетса всё перезапуском acWeb.
Да, у этой функции уже много срабатываний на невинных людей. Вот на соседнем форуме человек не поленился 35 раз ввести пароль прежде чем догадался, что что-то здесь не так, и написал в техподдержку...
Отключить проще всего, но должны быть и разумные настройки по умолчанию. Может отодвинуть счетчик до 50? Человек такой счетчик вряд ли накрутит, а переборщика паролей остановит уже на каком-нибудь "aa*".
А может, смотреть на частоту? Если за небольшой промежуток времени много событий, то это атака, включаем блокировку. Если потом длительная пауза, то блокировка автоматически снимается.
Возможную частоту неправильных попыток авторизации Eserv снижает задержками ответа после этих попыток, в результате спамер вводит пароли даже медленнее, чем в принципе мог бы вводить человек. Спамер отличается только выносливостью
Если пауза перешла границу суток, то блокировка снимается.
alex1124 пишет: После 10 попыток неудачной авторизации IP этого клиента больше не допускается к авторизации
В общем не нашёл пока откуда это взято, но: сейчас у меня на сервере прописано UseFirewallBlocks=0 в E4.orig.ini и куча "blocked" по всем сервисам.
Причём юзеры ничего специального такого не делают. просто начинают настраивать Outlook и при любой ошибке настройки клиент почему-то делает много соединений практически одновременно (судя по логам до 3-х раз в секунду). Соединения естественно неправильные и сервер их лочит. И, увы, эта ситуация не разовая, а системная.
Чтобы разблокировать юзера и дать ему возможность работать — приходится перегружать сервисы почтового сервера. Но это-же неправильно!
Какой-то другой вариант разблокировки предусмотрен?
А в E4.ini, естественно, секцию эту добавил, пытаюсь покрутить параметрами IpStatPeriod/IpAllowedCnt/IpBlockPeriods поиграться — снизить пороги блокировок, а мысль свербит, что при UseFirewallBlocks=0 это всё не должно роли играть.
Юзеров жалко — они-ж понять-то сами ничего не могут, сервер их сходу заблокировал, а люди начинают лихорадочно перебирать-подставлять всё что в жизни помнили.
Эти параметры в ini не для ограничения попыток авторизации, а для блокировок по частоте подключений. UseFirewallBlock на прочие параметры не влияет, а управляет только способом блокировки. Если отключен, то блокировка заключается в закрытии нового подключения от заблокированного IP. А если включен, то этот IP блокируется средствами Firewall в Windows, т.е. Eserv даже не увидит новых попыток подключения с этого IP — Windows даже на SYN-пакет от этого "хакера" не ответит, станет "невидимым" для атакующего/нарушителя.
Вы из PHP отправляете? Если он действительно поддерживает одно SMTP-соединение для отправки множества писем, то да, это может вывести его из-под контроля IDS.
Если IDS мешает работе программ, то его вообще можно отключить — для отдельных серверов или для всех.
evguenil пишет: А как отключить "ограничения количества попыток авторизации"?
Так всё-таки, есть эта волшебная кнопка и где? Снаружи попытки подбора пароля я закрыл фильтром, но внутренние пользователи от глюков используемого ПО или по своей неопытности страдают почём зря. Это-ж не дело — ради разблокировки очередного залётчика перезагружать сервер по десять раз на дню.
Ну или там... увеличить счётчик до потребного нам уровня.
У ваших пользователей проблемы из-за нелокальных IP в вашей ЛС (локальные IP давно исключаются из подобных автоблокировок, т.к. локальные "хакеры" доступны для других способов воздействия). Можно "пропатчить" встроенную функцию IsLanIP, чтобы ваши IP тоже считались локальными:
: MY_IsLanIP ( ip -- flag )
\ flag-истина, если клиент из локальной сети 10/8, 192.168/16, 172.16/12
\ в соответствии с RFC 1918
\ или localhost
DUP 0x100007F = IF DROP TRUE EXIT THEN
DUP 0xFF AND 10 = IF DROP TRUE EXIT THEN
DUP 0xFFFF AND 0xA8C0 = IF DROP TRUE EXIT THEN
DUP 0xF0FF AND 0x10AC = IF DROP TRUE EXIT THEN
DUP 0xмаска AND 0xадрес = IF DROP TRUE EXIT THEN
DROP FALSE
;
' MY_IsLanIP ' IsLanIP JMP
Где "маска" и "адрес" — соответствующие числа для вашей ЛС. Добавить в OnStartup.rules.txt.
Поскольку ни в одном из трёх OnStartup.rules.txt упоминание IsLanIP не встречается, возникает дальнейшие вопросы: если подразумевается, что данную конструкцию надо вставить в один из OnStartup.rules.txt, то подскажите — в какое конкретно место.