URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 90505
[ Назад ]

Исходное сообщение
"postfix проверка отправителя"

Отправлено fevil , 09-Дек-10 12:51 
Добрый день!
Имеется почтовая система на postfix-2.3.8+cyrus+sasl2. Все хорошо но заметил такую особенность: можно отправить письмо и в поле отправителя подставить любой адрес, что не очень то хорошо. Решил запретить такие действия и сопоставить логин отправителя с адресом, для этого, согласно документации, добавил в main.cf

smtpd_sender_restrictions = reject_authenticated_sender_login_mismatch

и

smtpd_sender_login_maps = hash:/etc/postfix/smtpd_sender_login_maps

в /etc/postfix/smtpd_sender_login_maps добавил

#${user}@mydomain.ru ${user} хотел для всех
и
user@mydomain.ru user

сделал postmap /etc/postfix/smtpd_sender_login_maps

и postfix reload

Но возможность отправлять письма со своей авторизацие но от имени другого ящика осталась, ребята, где я ошибся? поискал по форумам ни у кого небыло проблем.


Содержание

Сообщения в этом обсуждении
"postfix проверка отправителя"
Отправлено ALex_hha , 09-Дек-10 18:16 
# postconf -n

лог отправки

в /etc/postfix/smtpd_sender_login_maps должны быть записи вида

user user

или

user@domain.com user@domain.com

в зависимости от того, как хранится пользователь


"postfix проверка отправителя"
Отправлено fevil , 15-Дек-10 16:29 
>в /etc/postfix/smtpd_sender_login_maps должны быть записи вида
>user user

пробовал поразному не выходит.

> #postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
inet_interfaces = all
local_recipient_maps =
mailbox_size_limit = 11000000
mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp
mydestination = $mydomain
mydomain = mydomain.ru
myhostname = mail.mydomain.ru
mynetworks = 127.0.0.0/8,
myorigin = $mydomain
notify_classes = resource, software
recipient_delimiter = +
relay_domains = $mydomain
sender_bcc_maps = hash:/etc/postfix/sender_bcc
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
smtpd_banner = SMTP MAIL Service ready
smtpd_client_restrictions = permit_mynetworks,reject_rbl_client bl.spamcop.net,reject_rbl_client zen.spamhaus.org,reject_rbl_client list.dsbl.org, permit
smtpd_data_restrictions = reject_unauth_pipelining,reject_unknown_recipient_domain, reject_unknown_sender_domain, permit
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks,permit_sasl_authenticated,check_helo_access regexp:/etc/postfix/helo_regexp, check_helo_access regexp:/etc/postfix/dul_checks,reject_invalid_hostname,permit
smtpd_recipient_limit = 100
smtpd_recipient_restrictions = reject_non_fqdn_recipient,permit_mynetworks,permit_sasl_authenticated,reject_invalid_hostname,reject_unauth_destination,reject_unknown_sender_domain,reject_unverified_recipient,reject_unlisted_recipient,reject_rbl_client dnsbl.ahbl.org,reject_rbl_client list.dsbl.org,reject_rbl_client zen.spamhaus.org,reject_rhsbl_sender dsn.rfc-ignorant.org,reject_rhsbl_sender bogusmx.rfc-ignorant, check_policy_service inet:127.0.0.1:60000,check_sender_access regexp:/etc/postfix/common_spam_senderdomain_keywords,permit
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain = mailserver
smtpd_sasl_security_options = noanonymous
smtpd_sender_login_maps = hash:/etc/postfix/smtpd_sender_login_maps
smtpd_sender_restrictions = reject_unauthenticated_sender_login_mismatch
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtpd_use_tls = yes
soft_bounce = no
transport_maps = hash:/etc/postfix/transport
unknown_address_reject_code = 554
unknown_local_recipient_reject_code = 550


>лог отправки

mailserver postfix/smtpd[22441]: warning: 172.16.0.10: hostname user.mydomain.intra verification failed: Name or service not known
mailserver postfix/smtpd[22441]: 3B9B9328002: client=unknown[172.16.0.10], sasl_method=LOGIN, sasl_username=user@mailserver
mailserver postfix/cleanup[22355]: 3B9B9328002: message-id=<1292419050.5027.4.camel@user>
mailserver postfix/qmgr[22347]: 3B9B9328002: from=<user3@mydomain.ru>, size=563, nrcpt=1 (queue active)
mailserver postfix/pipe[22735]: 3B9B9328002: to=<user@mydomain.ru>, relay=spamassassin, delay=12, delays=8.4/0/0/3.8, dsn=2.0.0, status=sent (delivered via spamassassin service)
mailserver postfix/pickup[22343]: 32625328004: uid=5001 from=<user3@mydomain.ru>
mailserver postfix/cleanup[22358]: 32625328004: message-id=<1292419050.5027.4.camel@user>
mailserver postfix/qmgr[22347]: 32625328004: from=<user3@mydomain.ru>, size=888, nrcpt=1 (queue active)
mailserver cyrus/lmtpunix[22759]: WARNING: sieve script /var/spool/sieve/f/user/defaultbc doesn't exist: No such file or directory
mailserver cyrus/lmtpunix[22759]: duplicate_check: <1292419050.5027.4.camel@user>          user.user           0
mailserver cyrus/lmtpunix[22759]: duplicate_check: <1292419050.5027.4.camel@user>          user.user           0
mailserver cyrus/lmtpunix[22759]: duplicate_mark: <1292419050.5027.4.camel@user>          user.user           1292418664 47890321266634
mailserver cyrus/lmtpunix[22759]: Delivered: <1292419050.5027.4.camel@user> to mailbox: user.user
mailserver postfix/lmtp[22360]: 32625328004: to=<user@mydomain.ru>, relay=mail.mydomain.ru[/var/run/cyrus/socket/lmtp], delay=0.24, delays=0.1/0/0/0.14, dsn=2.1.5, status=sent (250 2.1.5 Ok)

отправил письмо под учетной записью user, но в адресе отправител указал user3@mydomain.ru

неделю переводил и читал документацию, пробовал по-разному. результат печален. Подталкните пожалуйста в какую сторону смотреть. чуствую решение рядом но не вижу.


"postfix проверка отправителя"
Отправлено fevil , 15-Дек-10 16:39 
отпралял пользователю user@mydomain.ru

"postfix проверка отправителя"
Отправлено guest , 15-Дек-10 16:49 
> smtpd_sender_restrictions = reject_unauthenticated_sender_login_mismatch
>>лог отправки
> mailserver postfix/smtpd[22441]: 3B9B9328002: client=unknown[172.16.0.10], sasl_method=LOGIN,
> sasl_username=user@mailserver

Вас ничего не смущает?


"postfix проверка отправителя"
Отправлено fevil , 15-Дек-10 22:20 
это он при проверке ругаеться, на отправку такого нет

"postfix проверка отправителя"
Отправлено guest , 15-Дек-10 22:55 
> это он при проверке ругаеться, на отправку такого нет

Простите, нет чего?

Ваш конфиг:
smtpd_sender_restrictions = reject_unauthenticated_sender_login_mismatch
Перевожу:
Если клиент НЕ авторизовался то, берем адрес из MAIL FROM и смотрим а нет ли его (или его кусочков) в smtpd_sender_login_map, если нашли, то посылаем нафиг.

Ваш лог:
mailserver postfix/smtpd[22441]: 3B9B9328002: client=unknown[172.16.0.10], sasl_method=LOGIN, sasl_username=user@mailserver
клиент АВТОРИЗОВАН


"postfix проверка отправителя"
Отправлено fevil , 16-Дек-10 08:17 
тоесть, Вы хотите сказать, что у моей задачи нет решения? каким образом "привязать" авторизованного пользователя к "ящику"?

"postfix проверка отправителя"
Отправлено guest , 16-Дек-10 09:00 
> тоесть, Вы хотите сказать, что у моей задачи нет решения? каким образом
> "привязать" авторизованного пользователя к "ящику"?

Я хочу сказать, что вы решаете вашу задачу НЕ верно.
Выше вы писали, что неделю штудировали документацию, но упорно не видите или не понимаете разницу между reject_sender_login_mismatch и reject_unauthenticated_sender_login_mismatch


"postfix проверка отправителя"
Отправлено fevil , 16-Дек-10 09:01 
Ребята поборол!!! Огромное спасибо за то что разьяснили!!!

smtpd_sender_restrictions = reject_unauthenticated_sender_login_mismatch,
                            reject_authenticated_sender_login_mismatch,
                            reject_unverified_sender

и в /etc/postfix/smtpd_sender_login_maps


user@mydomain.ru user@mailserver


"postfix проверка отправителя"
Отправлено guest , 16-Дек-10 09:10 
> smtpd_sender_restrictions = reject_unauthenticated_sender_login_mismatch,
>      reject_authenticated_sender_login_mismatch,          

можно просто написать reject_sender_login_mismatch сэкономив одно обращение к таблице)
эффект тотже будет.



"postfix проверка отправителя"
Отправлено fevil , 16-Дек-10 10:29 
Да! Вы правы! спасибо огромное!!!

smtpd_sender_restrictions = reject_sender_login_mismatch, reject_unverified_sender

попутно возник вопрос возможно ли в  /etc/postfix/smtpd_sender_login_maps
использовать переменные?

хочу получить запись такого вида:
${user}@$mydomain ${user}@$smtpd_sasl_local_domain
чтобы не забивать каждый раз нового пользователя


"postfix проверка отправителя"
Отправлено guest , 16-Дек-10 10:51 
> попутно возник вопрос возможно ли в  /etc/postfix/smtpd_sender_login_maps
> использовать переменные?
> хочу получить запись такого вида:
> ${user}@$mydomain ${user}@$smtpd_sasl_local_domain
> чтобы не забивать каждый раз нового пользователя

Для hash: нет.
Можно заставить *sql/ldap через подстановки %d и %u
или сделать тоже самое через pcre/regexp