Снабдите постфиксом аутентифицируемый SMTP, может отправить как любой

Сервер правильно принимает/отклоняет логины, хотя механизм аутентификации голубятни, но после этого я могу симулировать быть любым при отправке электронных писем.

smtpd_sender_login_maps = texthash:/etc/postfix/permmap
append_at_myorigin=no

smtpd_helo_restrictions =
     permit_mynetworks,
     reject_non_fqdn_helo_hostname,
     reject_invalid_helo_hostname,
     #reject_unknown_helo_hostname,
     permit

smtpd_sender_restrictions =
     permit_sasl_authenticated,
     permit_mynetworks,
     reject_sender_login_mismatch,
#     reject_non_fqdn_sender,
     reject_unknown_sender_domain,
     permit

smtpd_client_restrictions =
     permit_mynetworks,
     permit_sasl_authenticated,
     reject_unauth_pipelining,
     reject_rbl_client bl.spamcop.net,
     reject_rbl_client zen.spamhaus.org,
     permit

Я использую этот сайт для тестирования, потому что это удобно, и с - подробный показывает мне целую коммуникацию, кроме тела сообщения.

Это - коммуникационный журнал, очевидно, с идентификацией материала и подвергнутого цензуре пароля

> EHLO localhost
[250] 'example.com'
[250] 'PIPELINING'
[250] 'SIZE 104857600'
[250] 'ETRN'
[250] 'AUTH PLAIN LOGIN'
[250] 'ENHANCEDSTATUSCODES'
[250] '8BITMIME'
[250] 'DSN'
AUTH method (PLAIN LOGIN): using LOGIN
> AUTH LOGIN
[334] 'VXNlcm5hbWU6'
> dXNlckFAdmlydHVhbGRvbWFpbkE=
[334] 'UGFzc3dvcmQ6'
> dGhlcGFzc3dvcmQ=
[235] '2.7.0 Authentication successful'
Authentication of userA@virtualdomainA@example.com succeeded
> MAIL FROM: <userB@example.com>
[250] '2.1.0 Ok'
> RCPT TO: <realremote@example.net>
[250] '2.1.5 Ok'
> DATA
[354] 'End data with <CR><LF>.<CR><LF>'
[250] '2.0.0 Ok: queued as 73519140287'
> QUIT
[221] '2.0.0 Bye'

Электронное письмо было действительно послано, как будто я был userB@example.com

Вторая вероятная проблема, которую мы видим там, то, что она добавляет, это - реальный домен к виртуальному, даже при том, что append_at_myorigin должен отключить его. Документы не были большим количеством справки. Они даже не предлагают то, что должна напомнить справочная таблица. Я должен был изучить это откуда-либо.

4
задан 20 December 2014 в 18:00
1 ответ

Как я вижу, вы ожидаете, что пользователь не сможет отправить от имени другого пользователя, потому что вы поместили reject_sender_login_mismatch в smtpd_sender_restrictions. Да, это должно сработать.

К сожалению, вы поставили reject_sender_login_mismatch после allow_sasl_authenticated. Основываясь на постфиксной логике, в случае успешного входа клиента по SASL, он не будет проверяться на наличие reject_sender_login_mismatch, так как успешно пройдет ограничение allow_sasl_authenticated.

Решением является переупорядочивание ограничений в соответствии с официальной документацией Postfix.

smtpd_sender_restrictions = 
    ...other restriction...
    reject_sender_login_mismatch,
    permit_sasl_authenticated,
    ...other restriction...
9
ответ дан 3 December 2019 в 02:44

Теги

Похожие вопросы