Регистрация...

Eserv Forum / E3 / Eserv 3 Mail Server Support / IpBlackList для IMAP

recent wikipost // (v1)
Продукты и услуги Скачать Документация Купить Поддержка Форумы Партнёрам Статьи О компании
Новости
12.10.2009
Переезд завершен
Здравствуйте.
Надоели те, кто долбится по IMAP/POP, подбирая пароли.
Захотелось сделать проверку IpBlackList для IMAP/POP.

Посмотрел код acSMTP\conf\OnThreadConnect.rules.txt, есть такие строки:
CLIENT SMTP[IpBlackList] IsInFile PeerIP:Mask= 127.0.0.0:255.0.0.0 OR \ просто пример явного задания сетевой маски вне базы PeerIP= 127.0.0.1 0= AND \ блокируем 127.*.*.* кроме 127.0.0.1 | " 421 {CLIENT}, your IP is in my BlackList. {FIELD2} {DATE}{CRLF}" SMTP_FPUTS StopProtocol 770 LOG \EOF


Вопросы:

  1. Можно ли данный код внести в acIMAP\conf\OnThreadConnect.rules.txt перед последней строкой?
  1. Надо ли его править?
  2. Например, SMTP[IpBlackList] можно оставить (тогда список будет единый), а можно в разделе [IMAP] завести свой список, например так:
    # IpBlackListIMAP - список IP-адресов, которым запрещено обращаться к IMAP-серверу IpBlackListIMAP={IMAP[Lists]}\IpBlackList.txt
    Только где его прописывать: в Eserv3.orig.ini или Eserv3.ini?
  1. Как тогда исправить строку:
  2. | " 421 {CLIENT}, your IP is in my BlackList. {FIELD2} {DATE}{CRLF}" SMTP_FPUTS StopProtocol 770 LOG \EOF
 
Комментарии к этой версии (26.09.2017 13:28) [~draga] f77fd383
АвторДатаТекстtags
pig26.09.2017 20:28
Перед последней строкой — это только для IMAP будет. Для POP надо ещё добавить в блок
Port= {POP[Port]} Port= {POP[SslPort]} OR [IF] POP[Active] >NUM 0= | " -ERR temporary down for maintenance{CRLF}" FPUTS StopProtocol \EOF " +OK <{GetCurrentProcessId}.{GetTickCount}@{Server[HostName]}> POP3 Eserv/3.{IMAP-SERVER-VERSION}{BETA} server ready{CRLF}" FPUTS \EOF [THEN]

А отрицательный ответ зависит от протокола, смотрите для образца отказы про temporary down for maintenance.
Ещё по уму надо подредактировать CommonPlugins\log.str.txt — добавить аналоги строки 770 для POP/IMAP, чтобы не валилось в одну кучу с SMTP.
wikipost
draga27.09.2017 09:28
ред: 27.09.2017 09:50
Спасибо. Блок для POP просмотрел.
Для POP (в первом приближении) получается так:
Port= {POP[Port]} Port= {POP[SslPort]} OR [IF] POP[Active] >NUM 0= | " -ERR temporary down for maintenance{CRLF}" FPUTS StopProtocol \EOF CLIENT SMTP[IpBlackList] IsInFile PeerIP:Mask= 127.0.0.0:255.0.0.0 OR \ просто пример явного задания сетевой маски вне базы PeerIP= 127.0.0.1 0= AND \ блокируем 127.*.*.* кроме 127.0.0.1 | " 421 {CLIENT}, your IP is in my BlackList. {FIELD2} {DATE}{CRLF}" FPUTS StopProtocol 770 LOG \EOF " +OK <{GetCurrentProcessId}.{GetTickCount}@{Server[HostName]}> POP3 Eserv/3.{IMAP-SERVER-VERSION} server ready{CRLF}" FPUTS \EOF [THEN]

Правильно?

Для IMAP этот код вставлю перед последней строкой: " * OK ..........
Правильно?
wikipost
pig27.09.2017 12:07
Не 421, а -ERR — требование протокола. И цифру для лога надо другую, эта влепит в лог SMTP-сервера.
Для IMAP надо соответственно * NO в ответе и свою цифру для лога.

Добавить в log.str.txt такие, например, строки:
775 #6*{Dirs[Logs]}\pop3\{YYYYMM}log.txt*{YYYY-MM-DD} {hh:mm:ss};{CLIENT};{UserEmail};BlackList 776 #6*{Dirs[Logs]}\imap\{YYYYMM}log.txt*{YYYY-MM-DD} {hh:mm:ss};{CLIENT};{UserEmail};BlackList

Тогда для POP будет 775, для IMAP 776.
wikipost
draga16.11.2017 10:20
Прописал в соответствующие места acIMAP\conf\OnThreadConnect.rules.txt:
CLIENT SMTP[IpBlackList] IsInFile | " -ERR {CLIENT}, your IP is in my BlackList. {FIELD2} {DATE}{CRLF}" FPUTS StopProtocol 775 LOG \EOF
и
CLIENT SMTP[IpBlackList] IsInFile | " * NO {CLIENT}, your IP is in my BlackList. {FIELD2} {DATE}{CRLF}" FPUTS StopProtocol 776 LOG \EOF
и строки в log.str.txt
Работает.
Спасибо.
wikipost
draga11.04.2018 10:16
Здравствуйте.
В продолжение данной темы.
Много подключений блокируется, но не все.
Блокировки по новым строкам из IpBlackList.txt не происходят.
Такое впечатление, что в "работе" только часть записей.
Есть ли какое ограничение на размер файла или числа строк IpBlackList.txt ?
У меня сейчас размер файла 160Кб и 4045 строк.
wikipost
pig11.04.2018 11:48
IsInFile — функция честная, читает список либо до совпадения, либо до конца. Тут похоже на какое-то раздвоение: вы редактируете один список, а работа идёт с другим, который не трогали. Не разводили POP/IMAP и SMTP по разным спискам?
wikipost
draga12.04.2018 10:28
Список один — IpBlackList.txt
Он регулярно дополняется моим скриптом или мной.
Может IpBlackList.txt кэшируется (например при старте acIMAP.exe и acSMTP.exe)?
wikipost
pig12.04.2018 14:18
IsInFile ничего не кэширует. Только если винда поверх.
Говорите, после перезапуска сервера список подхватывается полностью?
wikipost
draga12.04.2018 16:10
Рестарт я сделал 1 раз вчера.
За эти 2 дня я "оптимизировал" список (внёс подсети, вместо десятков одиночных ip). Сейчас файл: 140Кб и 3364 строк.
Пока наблюдаю.
wikipost
pig16.04.2018 11:26
Если/когда опять сглючит — процитируйте сюда несработавшую строку.
wikipost
Работает на Eserv/5.05567 (10.02.2020)