LINUX.ORG.RU
ФорумAdmin

postfix не авторизует пользователя перед отправкой письма


0

0

Подскажите! Замучился уже настраивать связку Postfix, Dovecot, MySQL

Все настроил. Но не работает авторизация пользователей внутри 
локальной сети.

Для проверки я настроил домен test.ru создал пару пользователей 
test@test.ru & test2@test.ru 

Если ручками делать auth login, то авторизацию проходит. Но как 
настроить чтоб она была принудительна для моего домена test.ru ?

Привожу пример конфика постфикса:

myhostname = proxy
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = proxy, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8, 192.168.0.0/24, 80.80.80.80
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = $myhostname, 192.168.0.170, 80.80.80.80

virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:108
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_mailbox_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 107
virtual_transport = virtual
virtual_uid_maps = static:107


broken_sasl_auth_clients = yes
smtpd_recipient_restrictions =
#  permit_mynetworks,
  permit_sasl_authenticated,
  reject_non_fqdn_hostname,
  reject_non_fqdn_sender,
  reject_non_fqdn_recipient,
  reject_unauth_destination,
  reject_unauth_pipelining,
  reject_invalid_hostname,
  reject_rbl_client list.dsbl.org,
  reject_rbl_client bl.spamcop.net,
  reject_rbl_client sbl-xbl.spamhaus.org
  reject_rbl_client blackholes.mail-abuse.org,
  reject_rbl_client combined.njabl.org,
  reject_rbl_client cbl.abuseat.org,
  reject_rbl_client dialups.mail-abuse.org,
  reject_rbl_client dsn.rfc-ignorant.org,
  reject_rbl_client dynablock.njabl.org,
  reject_rbl_client dul.dnsbl.sorbs.net,
  reject_rbl_client dnsbl.njabl.org,
  reject_rbl_client relays.ordb.org,
  reject
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous

Захожу на проверку:

laptop:~# telnet proxy 25
Trying 192.168.0.170...
Connected to proxy.
Escape character is '^]'.
220 proxy ESMTP Postfix (Debian/GNU)
ehlo test.ru
250-proxy
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:<test@test.ru>
250 2.1.0 Ok

Авторизации нет :(
★★★

Думаю, вам надо еще "подкрутить" параметр smtpd_client_restrictions.

mky ★★★★★
()

Ви меня убиваете. А вы собираетесь получать почту для данного домена со стороны? Или просто об этом не думали? Помимо того, все отлупы по умолчанию даются после RCPT TO (sic!!)

smtp сессия, примерно:

$ telnet mypost.ru 25
Trying xxx.xxx...
Connected to mypost.ru
Escape character is '^]'.
220 xx.xx ESMTP Postfix (3.1415926)
HELO mail.ru
250 mypost.ru
MAIL FROM:<somebody@mail.ru>
250 2.1.0 Ok

И вот тут если указать чужой домен, то без аторизации он пойдет в сад:

RCPT TO:<mail@mail.ru>
554 5.7.1 <mail@mail.ru>: Relay access denied

А если указать ящик в вашем домене mypost.ru, то он должен принять.

Если не хотите принимать почту на данный домен извне вобще, пусть он у вас слушает только локальный интерфейс или используйте client_access_check, как то так.




Valmont ★★★
()
Ответ на: комментарий от anonymous

Хорошо, а как настроить чтоб при посылки из локальной сети на домен test.ru пользователь обязательно проходил авторизацию?

Если без авторизации то пользователь XXX не зная пароля от ящика test@test.ru сможет спокойно отправить почту во вне или на другой ящик test.ru

Mrak ★★★
() автор топика
Ответ на: комментарий от Mrak

А как вам такое:

#telnet mx.pochta.ru 25
Trying 82.204.219.220...
Connected to mx.pochta.ru.
Escape character is '^]'.
220 mx5.ks.pochta.ru
HELO mymail.ru
250 OK
MAIL FROM:<mail@mymail.ru>
250 OK
RCPT TO: xxxx@pochta.ru
250 OK
DATA
354 Start mail input; end with <CRLF>.<CRLF>
FROM:<dead_kenny@pochta.ru>
TO: xxxx@pochta.ru
SUBJECT: kenny alive!

test delivery

.
250 OK id=15158176-1206525403.89718
QUIT
221 bye
Connection closed by foreign host.

Valmont ★★★
()
Ответ на: комментарий от Valmont

> Вы ответы читаете?

Да читаю, но не совсем понимаю что вы хотите сказать... :(

Можно попросить у вас ICQ?

Mrak ★★★
() автор топика
Ответ на: комментарий от anonymous

> В mynetworks оставить только 127.0.0.0/8 

Спасибо так авторизация заработала! Но теперь действительно "из вне" почта не идет :(

laptop:~# telnet 80.80.80.80 25
Trying 80.80.80.80...
Connected to 80.80.80.80.
Escape character is '^]'.
220 proxy ESMTP Postfix (Debian/GNU)
ehlo test.ru
250-proxy
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:<mail@mail.ru>
250 2.1.0 Ok
rcpt to:<test2@test.ru>
554 5.7.1 <test2@test.ru>: Recipient address rejected: Access denied

Mrak ★★★
() автор топика
Ответ на: комментарий от Mrak

>> 554 5.7.1 <test2@test.ru>: Recipient address rejected: Access denied

Покажите вывод select-a из mysql, что такой user существует.

anonymous
()
Ответ на: комментарий от anonymous

mysql> select * from mailbox where username='test2@test.ru';
+---------------+----------+------+----------------+-------+---------+---------
------------+---------------------+--------+
| username      | password | name | maildir        | quota | domain  | created             | modified            | active |
+---------------+----------+------+----------------+-------+---------+---------
------------+---------------------+--------+
| test2@test.ru | 123456   | bbbb | test.ru/test2/ |     0 | test.ru | 2008-03-21 18:47:57 | 2008-03-21 18:47:57 |      1 | 
+---------------+----------+------+----------------+-------+---------+---------
------------+---------------------+--------+
1 row in set (0.01 sec)

Пользователь точно есть... похоже что то не так настроил в postfix

Mrak ★★★
() автор топика
Ответ на: комментарий от Valmont

Конекчусь "из вне"

Escape character is '^]'.
220 proxy ESMTP Postfix (Debian/GNU)
ehlo test.ru
250-proxy
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:<mail@mail.ru>
250 2.1.0 Ok
rcpt to:<test@test.ru>
554 5.7.1 <test@test.ru>: Recipient address rejected: Access denied

В логах mysql:

080326 22:34:21	      9 Connect     postfix@localhost on postfix
		      9 Query       SELECT goto FROM alias WHERE address = 'mail.ru'
		     10 Connect     postfix@localhost on postfix
		     10 Query       SELECT domain FROM domain WHERE domain = 'mail.ru' AND backupmx = '0' AND active = '1'
080326 22:35:21	     10 Quit       
		      9 Quit       
080326 22:37:37	     11 Connect     postfix@localhost on postfix
		     11 Query       SELECT goto FROM alias WHERE address = 'test.ru'
		     12 Connect     postfix@localhost on postfix
		     12 Query       SELECT domain FROM domain WHERE domain = 'test.ru' AND backupmx = '0' AND active = '1'

Сам проделал все запросы есть ответ только на последний:

mysql> SELECT domain FROM domain WHERE domain = 'test.ru' AND backupmx = '0' AND active = '1';
+---------+
| domain  |
+---------+
| test.ru | 
+---------+
1 row in set (0.00 sec)

Mrak ★★★
() автор топика
Ответ на: комментарий от Mrak

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

// Сейчас посмотрел чуть внимательнее, вместо reject в конце smtpd_recipient_restrictions должно стоять permit.По этой причине Access Denied,а по причине того, что у вас там нет reject_unlisted_recipient запрос в mysql и не проскакивал.

Читайте маны, ибо они - рулез (c)

Valmont ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.