Замена поля from

Общие вопросы по установке и настройке сервера Postfix.
Писать в этот форум могут только зарегистрированные пользователи.

Модераторы: prefer, alexandrnew, ALex_hha, Roman, Axel

Ответить
Ericroot
Новичок
Новичок
Сообщения: 14
Зарегистрирован: 11 дек 2012, 08:53

Замена поля from

Сообщение Ericroot » 01 апр 2013, 15:36

Привет!
Почтой занялся не так давно, установил пока лишь связку postfix+dovecot
В принципе почта работает, письма уходят-письма приходят.

Вот столкнулся с такой проблемкой, что при отправке писем можно вставить любой адрес "От кого" и письмо адресату приходит именно с тем "От кого" который указал.

Пример: авторизовался на сервере smtp как admin@site.ru, а письмо отправил типа от user@example.com

У коллеги глянул, сделана проверка, но она не защищает полностью.

Т.е. у него уже нельзя отправить от любого домена, Но зато можно авторизоваться типа admin@site.ru, а В "От кого" указать любой логин из домена site.ru, пример test@site.ru, user1@site.ru и тп.

А если попытаться отправить с другого домена, то сразу выдает ошибки и не дает отправить (пробую через mozilla thunderbird)

Решил проверить тоже самое через gmail.com

Письмо дает отправлять с любым указанием "От кого", НО приходит на почту оно все равно от адреса с которым авторизовался.
Пример: авторизовался user1@gmail.com, указал "От кого" admin@site.ru, а письмо адресату пришло все равно от user1@gmail.com

И без всяких ошибок отправки. Подскажите как-то можно реализовать подобное на postfix?

Конфиг postfix:

Код: Выделить всё

mailbox_command = /usr/libexec/dovecot/deliver

virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf,mysql:/etc/postfix/mysql-email2email.cf

virtual_uid_maps = static:501
virtual_gid_maps = static:501
virtual_transport = dovecot

mynetworks = 127.0.0.1
mailbox_size_limit = 51200000
message_size_limit = 20480000

### TLS

smtp_tls_cert_file = /var/lib/ssl/certs/postfix.pem
smtp_tls_key_file = /var/lib/ssl/private/postfix.pem
smtp_use_tls = yes
smtp_tls_loglevel = 1

smtpd_tls_cert_file = /var/lib/ssl/certs/postfix.pem
smtpd_tls_key_file = /var/lib/ssl/private/postfix.pem
smtpd_use_tls = yes
smtpd_tls_loglevel = 1
smtpd_tls_auth_only = no
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes

smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache

tls_random_source = dev:/dev/urandom
inet_interfaces = all
strict_rfc821_envelopes = yes
disable_vrfy_command = yes
smtpd_delay_reject = yes
smtpd_helo_required = yes

smtpd_client_restrictions =
            permit_sasl_authenticated,
            permit_mynetworks,
            reject_unknown_reverse_client_hostname,
            permit

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

smtpd_sender_restrictions =
            permit_sasl_authenticated,
            permit_mynetworks,
            reject_unauthenticated_sender_login_mismatch,
            reject_non_fqdn_sender,
            reject_unknown_sender_domain

smtpd_recipient_restrictions =
            permit_mynetworks,
            permit_sasl_authenticated,
            reject_unauth_destination,
            reject_unauth_pipelining,
            reject_invalid_hostname,
            reject_non_fqdn_hostname,
            reject_non_fqdn_recipient,
            reject_unknown_recipient_domain,
            reject_unlisted_recipient,
            reject_rbl_client dnsbl.sorbs.net

Аватара пользователя
prefer
Site Admin
Site Admin
Сообщения: 2341
Зарегистрирован: 08 июн 2007, 09:41

Сообщение prefer » 01 апр 2013, 15:50

Смотрите параметр smtpd_sender_login_maps
I prefer Postfix

Ericroot
Новичок
Новичок
Сообщения: 14
Зарегистрирован: 11 дек 2012, 08:53

Сообщение Ericroot » 01 апр 2013, 16:28

Почитал, добавил:

Код: Выделить всё

[root@mx postfix]# cat mysql-check-sender.cf
user = xxx
password = xxx
hosts = 127.0.0.1
dbname = mailserver
query = SELECT '%s'
в конфиг:
smtpd_sender_login_maps = mysql:/etc/postfix/mysql-check-sender.cf

И в smtpd_sender_restrictions = reject_authenticated_sender_login_mismatch

Ну подменить теперь не получается, вылетает ошибка, НО хотелось бы без ошибок, типа как на гугле, что бы позволяло отправить, но приходило все равно от авторизованного.

Ericroot
Новичок
Новичок
Сообщения: 14
Зарегистрирован: 11 дек 2012, 08:53

Сообщение Ericroot » 02 апр 2013, 14:58

Вариантов больше нет?

Ericroot
Новичок
Новичок
Сообщения: 14
Зарегистрирован: 11 дек 2012, 08:53

Сообщение Ericroot » 02 апр 2013, 16:08

Заметил вот что.
После проделанного выше.

Пробую отправить письмо через телнет с авторизацией:

EHLO mx.site.ru
AUTH LOGIN
логин в base64 (admin@site.ru)
пароль
мне выдает
235 2.7.0 Authentication successful
Пишу
MAIL FROM:<blablabla@site.ru> - т.е. специально указываю другого отправителя.
И он выдает что все ОК(хотя на самом деле не ок)

RCPT TO:<moyapochta@example.com>
И вот тут уже выдает ошибку
553 5.7.1 <blablabla@site.ru>: Sender address rejected: not owned by user admin@site.ru

Вроде бы все верно, ошибка и должны быть, Но почему уже на этапе RCPT TO, а не после ввода MAIL FROM ?
Видимо я недопонимаю немного. Поясните пожалуйста.

Аватара пользователя
prefer
Site Admin
Site Admin
Сообщения: 2341
Зарегистрирован: 08 июн 2007, 09:41

Сообщение prefer » 03 апр 2013, 08:16

smtpd_delay_reject = yes
I prefer Postfix

Ответить