Назад | Перейти на главную страницу

postfix pop-before-smtp неправильно разбирает журнал - я думаю, нужна помощь PERL

Мы уже давно пользуемся Postfix и как бы подсели на него. Теперь нам нужно «перейти в современную эру» и позволить людям ОТПРАВИТЬ электронную почту с наших SMTP-серверов, даже если они находятся за пределами нашей сети. Итак, получив задание, я обнаружил pop-before-smtp.

Вы можете найти это Вот.

Итак, у меня все настроено, но он не проходит тестирование. Я решил это, используя направления Вот, и определил, что PERL, пытающийся проанализировать журнал, кажется неправильным. Мы используем Dovecot в качестве нашего сервера IMAP / POP, и в файле конфигурации есть три варианта. Вот отрывок из файла конфигурации, показывающий три набора:

# For Dovecot POP3/IMAP when using syslog.
#$pat = '^[LOGTIME] \S+ (?:dovecot: )?(?:imap|pop3)-login: ' .
#    'Login: .*? (?:\[|rip=)[:f]*(\d+\.\d+\.\d+\.\d+)[],]';
#$out_pat = '^[LOGTIME] \S+ (?:dovecot: )?(?:imap|pop3)-login: ' .
#    'Disconnected.*? (?:\[|rip=)[:f]*(\d+\.\d+\.\d+\.\d+)[],]';

# For Dovecot POP3/IMAP when it does its own logging.
##$logtime_pat = '(\d\d\d\d-\d+-\d+ \d+:\d+:\d+)';
#$pat = '^dovecot: [LOGTIME] Info: (?:imap|pop3)-login: ' .
#    'Login: .+? rip=[:f]*(\d+\.\d+\.\d+\.\d+),';
#$out_pat = '^dovecot: [LOGTIME] Info: (?:imap|pop3)-login: ' .
#    'Disconnected.*? rip=[:f]*(\d+\.\d+\.\d+\.\d+),';

# For older Dovecot POP3/IMAP when it does its own logging.
#$pat = '^(?:imap|pop3)-login: [LOGTIME] Info: ' .
#    'Login: \S+ \[[:f]*(\d+\.\d+\.\d+\.\d+)\]';
#$out_pat = '^(?:imap|pop3)-login: [LOGTIME] Info: ' .
#    'Disconnected.*? \[[:f]*(\d+\.\d+\.\d+\.\d+)\]';

Следует раскомментировать подходящие, однако ни один из них не работает.

Я предполагаю, что «pat» - это шаблон для входа в систему, а out-pat - шаблон для выхода из системы или иного отключения.

Фактический формат записи журнала явно отличается от любого из этих трех, но они близки. Вот пример пары:

Mar 11 17:53:55 imap-login: Info: Login: user=<username>, method=PLAIN, rip=208.54.4.205, lip=192.168.1.1, TLS

Mar 11 17:59:10 IMAP(username): Info: Disconnected: Logged out bytes=352/43743

При использовании POP «imap-login» заменяется «pop-login», а при выходе из системы «POP» заменяет «IMAP» - почему изменения в заглавных буквах я не могу сказать!

Важные данные: метка времени, имя пользователя и, при входе в систему, «удаленный» IP-адрес («rip»).

Если у меня будет достаточно времени, возможно, я смогу собрать что-то, что работает, но поскольку я на самом деле не знаю PERL, это довольно сложно!

Помогите, пожалуйста!

Я знаю, что вы просили поддержки pop-before-smtp. Но если ваш постфикс имеет поддержку аутентификации SASL SMTP, почему бы не использовать это. Разработка pop-before-smtp прекратилась еще в 2007 году.

Ни одна современная почтовая система не должна использовать протокол POP перед SMTP. Это хакерство эпохи 90-х, потому что в конце 90-х начал расти спам, и нам нужно было уйти, чтобы определить, можно ли пользователю отправлять почту. Нам пришлось положиться на этот взлом, потому что в то время ни один MTA изначально не поддерживал аутентифицированную отправку, и даже если они этого не сделали, MTU не поддерживал ее на стороне клиента.

Как сказал Ричард Т., используйте sasl auth на стороне сервера, а еще лучше - через smpts.