Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по FreeBSD » Exim:Не проходит smtp авторизация с внешнего интерфейса

Ответить
Настройки темы
Exim:Не проходит smtp авторизация с внешнего интерфейса

Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Дано:

FreeBSD 4.9-STABLE
exim-4.30(exiscan-acl-4.30-14.patch)
courier-imap-2.2.1

Сервер smtp настроен по мануалу http://ru-board.com/new/article.php?sid=150 *by ginger, курьер настроен еще со времен постфикса(и тогда и сейчас он работает без нареканий, со с внешнего интерфейса, что напрямую).

Проблема:

Не проходит smtp авторизация с внешнего интерфейса(пробовалось как с помощью the_bat так и telnet'ом, ответ на auth один:5.3.3 Unrecognized command)..

Симптомы:

соединение с почтовым сервером напрямую:

лог the_bat:
18/02/04, 14:30:26: SEND *- Отправка почты - писем в очереди: 1
18/02/04, 14:30:26: SEND *- Соединение с SMTP сервером прошло удачно
18/02/04, 14:30:26: SEND *- Аутентификация (программный CRAM-MD5)...
18/02/04, 14:30:26: SEND *- Отправка письма для amim@my.host.name
<18/02/04, 14:30:27: SEND *- Отправлено письмо для amim@my.host.name (463 байт)
18/02/04, 14:30:27: SEND *- Соединение завершено - отправлено писем: 1

лог exim:
Feb 18 14:30:41 bc155-101-168-192 exim[145]: 2004-02-18 14:30:41 SMTP connection from [192.168.101.120]:31465 (TCP/IP connection count = 1)
Feb 18 14:30:42 bc155-101-168-192 exim[800]: 2004-02-18 14:30:42 1AtO2U-0000Cu-5m <= me@my.host.name H=bc120-101-168-192 (my-int-gate-host) [192.168.101.120]:31465 I=[192.168.101.155]:25 P=asmtp A=auth_cram_md5:me@my.host.name S=653 id=63108479565.20040218143026@my.host.name from <me@my.host.name> for amim@my.host.name
Feb 18 14:30:42 bc155-101-168-192 exim[801]: 2004-02-18 14:30:42 cwd=/var/spool/exim 3 args: /usr/sbin/exim -Mc 1AtO2U-0000Cu-5m
Feb 18 14:30:42 bc155-101-168-192 exim[801]: 2004-02-18 14:30:42 1AtO2U-0000Cu-5m => amim <amim@my.host.name> F=<me@my.host.name> R=mysqluser T=mysql_delivery S=758
Feb 18 14:30:42 bc155-101-168-192 exim[801]: 2004-02-18 14:30:42 1AtO2U-0000Cu-5m Completed
Feb 18 14:30:42 bc155-101-168-192 exim[800]: 2004-02-18 14:30:42 SMTP connection from bc120-101-168-192 (my-int-gate-host) [192.168.101.120]:31465 closed by QUIT

соединение с почтовым сервером с внешнего интерфейса:

лог the_bat: *
18/02/04, 14:30:41: SEND *- Отправка почты - писем в очереди: 1
18/02/04, 14:30:41: SEND *- Соединение с SMTP сервером прошло удачно
18/02/04, 14:30:41: SEND *- Сервер сообщает об ошибке: 5.3.3 Unrecognized command
18/02/04, 14:30:41: SEND *- Аутентификация (обычный метод)...
18/02/04, 14:30:41: SEND *- Сервер сообщает об ошибке: 5.3.3 Unrecognized command
18/02/04, 14:30:41: SEND *- Аутентификация (проверка имени пользователя и пароля)...
18/02/04, 14:30:41: SEND *- ВНИМАНИЕ: аутентификация не прошла
18/02/04, 14:30:41: SEND *- Отправка письма для amim@my.host.name
18/02/04, 14:30:43: SEND *- Последний переданный адрес получателя был <amim@my.host.name>
!18/02/04, 14:30:43: SEND *- Письмо не отправлено. Сервер сообщает: Administrative prohibition
18/02/04, 14:30:43: SEND *- Соединение завершено - отправлено писем: 0
18/02/04, 14:30:43: SEND *- Не удалось отправить некоторые письма - подробности смотрите в Журнале работы

лог exim:
Feb 18 14:30:56 bc155-101-168-192 exim[145]: 2004-02-18 14:30:56 SMTP connection from [my.ext.gate.addr]:31466 (TCP/IP connection count = 1)
Feb 18 14:30:56 bc155-101-168-192 exim[803]: 2004-02-18 14:30:56 no host name found for IPaddress my.ext.gate.addr
Feb 18 14:30:58 bc155-101-168-192 exim[803]: 2004-02-18 14:30:58 H=(my.ext.gate.addr) [my.ext.gate.addr]:31466 F=<me@my.host.name> rejected RCPT <amim@my.host.name>
Feb 18 14:30:58 bc155-101-168-192 exim[803]: 2004-02-18 14:30:58 H=(my.ext.gate.addr) [my.ext.gate.addr]:31466 F=<me@my.host.name> rejected RCPT <amim@my.host.name>
Feb 18 14:30:58 bc155-101-168-192 exim[803]: 2004-02-18 14:30:58 H=(my.ext.gate.addr) [my.ext.gate.addr]:31466 incomplete transaction (RSET) from <me@my.host.name>
Feb 18 14:30:58 bc155-101-168-192 exim[803]: 2004-02-18 14:30:58 SMTP connection from (my.ext.gate.addr) [my.ext.gate.addr]:31466 closed by QUIT

секция acl_check_rcpt:

acl_check_rcpt:
accept *hosts = :
deny * *local_parts * = ^.*[@%!/|] : ^\\.
require verify * * * *= sender

deny * message * * * = HELO/EHLO required by SMTP RFC
* * * condition * * = ${if eq{$sender_helo_name}{}{yes}{no}}
deny * message * * * = Go Away! You are spammer.
* * * condition * * = ${if match{$sender_host_name} \
* * * {bezeqint\\.net|net\\.il|dialup|dsl|pool|peer|dhcp} \
* * * {yes}{no}}
deny * message * * * = host is listed in $dnslist_domain
* * * dnslists * * *= sbl.spamhaus.org : \
* * * relays.ordb.org : \
* * * opm.blitzed.org : \
* * * proxies.blackholes.easynet.nl
accept domains * * * = +local_domains
* * * authenticated = *
* * * endpass
* * * verify * * * *= recipient
* * * condition * * = ${if match {$sender_address_domain} \
* * * {my\\.host\\.name} \
* * * {yes}{no}}
accept domains * * * = +local_domains
* * * endpass
* * * verify * * * *= recipient
* * * condition * * = ${if !match {$sender_address_domain} \
* * * {my\\.host\\.name} \
* * * {yes}{no}}
accept domains * * * = *
* * * authenticated = *
* * * endpass
* * * verify * * * *= recipient
* * * condition * * = ${if match{$sender_address_domain} \
* * * {my\\.host\\.name} \
* * * {yes}{no}}
deny * *message * * * = access denied

С постфиксом подобного не наблюдалось.. Отсюда мой любимый вопрос: что делать?..

Отправлено: 08:44, 19-02-2004

 

Аватара для Belansky

Юниксоид


Сообщения: 3001
Благодарности: 45

Профиль | Отправить PM | Цитировать


Цитата:
Код: Выделить весь код
лог exim: 
Feb 18 14:30:56 bc155-101-168-192 exim[145]: 2004-02-18 14:30:56 SMTP connection from [my.ext.gate.addr]:31466 (TCP/IP connection count = 1) 
Feb 18 14:30:56 bc155-101-168-192 exim[803]: 2004-02-18 14:30:56 no host name found for IPaddress my.ext.gate.addr 
Feb 18 14:30:58 bc155-101-168-192 exim[803]: 2004-02-18 14:30:58 H=(my.ext.gate.addr) [my.ext.gate.addr]:31466 F=<me@my.host.name> rejected RCPT
Помоему, exim не может сопоставить имя хоста его ip-адресу (возможно, нет соотвествующей записи в зонном файле обратного преобразования inaddr.arpa) из-за чего считает такое письмо спамерским и отклоняет. Многие почтовые агенты ретрансляции настроены сейчас "по умолчанию" именно таким образом, что, если не может сопоставить ip-адресу имя, письмо отторгается.

-------
Косово je Србиjа!


Отправлено: 12:09, 19-02-2004 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Гм, вполне может быть, ибо такой записи действительно нет и пока не предвидится.. Хотя странно, можно же и поконкретнее было ошибку указать, нежели 5.3.3 Unrecognized command..
И авторизовавшимся юзерам можно было 'по умолчанию' разрешить заходить с любого адреса, без указания имени хоста.. Но в таком случае, как мне отключить данную фичу(методом правления конфигов Exim, а не звонком провайдеру с просьбой поправить dns)?.. *Наверняка это можно сделать, в постфиксе же подобного не наблюдалось..

Отправлено: 13:15, 19-02-2004 | #3


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Убрал host_lookup=*, добавил allow_mx_to_ip=true, пока все по старому, что еще можно сделать?..

Отправлено: 16:30, 19-02-2004 | #4


Аватара для Belansky

Юниксоид


Сообщения: 3001
Благодарности: 45

Профиль | Отправить PM | Цитировать


amim
Честно признаюсь, в Exim я не силен всё больше как-то с sendmail приходится общаться. Может,  полностью текст конфига приведете (без интимных подробностей), посмотрим, со старшими товарищами посоветуемся.

Добавлено:

Да, вспомнил. У нас такое сплошь и рядом встречается, когда клинты пытаются обращаться к нашим почтовым серверам с чужого диапазона ip-адресов или же с компов, чьим именам не сопоставлены ip-адреса и наоборот. Обычно мы советуем таким клиентам настроить почтовые программ таким образом, чтобы сначала происходило получение почты по авторизации, а затем уже отправка. И все письма отправляются. Хотя, специальное указание того, что отправка должна происходить через SMTP посредством авторизации проблему не решало.

-------
Косово je Србиjа!


Отправлено: 23:46, 19-02-2004 | #5


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Пробовал в the bat поставить аутентификация pop прежде smtp, не помогло.. вообще, я не в курсе работы этого механизма, но для pop и smtp у меня передаются разные логины(вернее для pop передается только local_part без домена), хотя и это не существенно, комментирование "AND mbox_host = ..." во всех трех методах аутентификации убирает домен в логине smtp, но и только..

exim.conf:

primary_hostname = mail.my.host.nm
domainlist local_domains = ${lookup mysql{SELECT domain FROM domains \
* * * * * * * * * * * * * WHERE domain='${domain}' AND \
* (type='LOCAL' OR type='VIRTUAL')}}
domainlist relay_to_domains =${lookup mysql{SELECT domain FROM domains \
* * * * * * * * * * * * * * WHERE domain='${domain}' AND type='RELAY'}}
hostlist * relay_from_hosts = 127.0.0.1
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data
qualify_domain = my.host.nm
log_selector = \
+all
allow_domain_literals=false
never_users = root:daemon:bin
rfc1413_hosts = *
rfc1413_query_timeout = 0s
ignore_bounce_errors_after = 30m
timeout_frozen_after = 3d
freeze_tell = postmaster
auto_thaw = 1h
message_size_limit = 10M
smtp_accept_max = 50
smtp_accept_max_per_connection = 50
smtp_connect_backlog = 50
smtp_accept_max_per_host = 25
split_spool_directory = true
remote_max_parallel = 15
hide mysql_servers = sqlhost/dbname/user/password

begin acl
acl_check_rcpt:
*accept *hosts = :
*deny * *local_parts * = ^.*[@%!/|] : ^\\.
deny * *message * * * = HELO/EHLO required by SMTP RFC
* * * * condition * * = ${if eq{$sender_helo_name}{}{yes}{no}}

* *accept domains * * * = +local_domains
* * * * authenticated = *
* endpass
* * * * verify * * * *= recipient
condition * * = ${if match {$sender_address_domain} \
{my\\.host\\.nm} \
{yes}{no}}

* *accept domains * * * = +local_domains
* endpass
* * * * verify * * * *= recipient
condition * * = ${if !match {$sender_address_domain} \
{my\\.host\\.nm} \
{yes}{no}}

* *accept domains * * * = *
* * * * authenticated = *
* endpass
* * * * verify * * * *= recipient
condition * * = ${if match{$sender_address_domain} \
{my\\.host\\.nm} \
{yes}{no}}
*deny * *message * * * = access denied

acl_check_data:

*accept

begin routers

dnslookup:
*driver = dnslookup
*domains = ! +local_domains
*transport = remote_smtp
*ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
*no_more

system_aliases:
*driver = redirect
*allow_fail
*allow_defer
*data = ${lookup mysql{SELECT recipients FROM aliases \
* * * * WHERE local_part='${local_part}' AND domain='${domain}'}}

userforward:
*driver = redirect
*allow_fail
*allow_defer

data = ${lookup mysql{SELECT recipients FROM userforward \
* * * WHERE local_part='${local_part}' AND domain='${domain}'}}

mysqluser:
*driver = accept
*condition = ${if eq{} {${lookup mysql{SELECT home FROM users \
* * * * * * *WHERE id='${local_part}' AND mbox_host='${domain}' \
* * *AND active='Y'}}}{no}{yes}}
*transport = mysql_delivery
* * *
begin transports

remote_smtp:
*driver = smtp

mysql_delivery:
*driver = appendfile
*check_string = ""
*create_directory
*delivery_date_add
*directory = ${lookup mysql{SELECT CONCAT(home, "/" FROM users \
* * *WHERE id='${local_part}' AND mbox_host='${domain}'}}
*directory_mode = 770
*envelope_to_add
*group = mail
*maildir_format
*maildir_tag = ,S=$message_size
*message_prefix = ""
*message_suffix = ""
*mode = 0600
*quota = ${lookup mysql{SELECT quota FROM users \
*WHERE id='${local_part}' AND mbox_host='${domain}'}{${value}M}}
*quota_size_regex = S=(\d+)$
*quota_warn_threshold = 75%
*return_path_add
* * *
address_pipe:
*driver = pipe
*return_output

address_file:
*driver = appendfile
*delivery_date_add
*envelope_to_add
*return_path_add

address_reply:
*driver = autoreply

begin retry

* * * * * * * * * * * *quota
* * * * * * * * * * * ** * * * * * F,2h,15m; G,16h,1h,1.5; F,4d,6h

begin rewrite

begin authenticators
*auth_plain:
* *driver = plaintext
* *public_name = PLAIN
* *server_condition = ${lookup mysql{SELECT id FROM users \
* * * * * * * * * * * *WHERE id = '${quote_mysql:${local_part:$2}}' \
AND mbox_host = '${quote_mysql:${domain:$2}}' \
AND passwd = '${quote_mysql:$3}' \
AND active = 'Y'}{yes}{no}}
* *server_prompts = :
* *server_set_id = $2
*auth_login:
* *driver = plaintext
* *public_name = LOGIN
* *server_condition = ${lookup mysql{SELECT id FROM users \
* * * WHERE id = '${quote_mysql:${local_part:$1}}' \
* * * AND mbox_host = '${quote_mysql:${domain:$1}}' \
* * * AND passwd = '${quote_mysql:$2}' \
* * * AND active = 'Y'}{yes}{no}}
* *server_prompts = Username:: : Password::
*server_set_id = $1
*auth_cram_md5:
* *driver = cram_md5
* *public_name = CRAM-MD5
* *server_secret = ${lookup mysql{SELECT passwd FROM users \
* *WHERE id = '${quote_mysql:${local_part:$1}}' \
* *AND mbox_host = '${quote_mysql:${domain:$1}}' \
* *AND active = 'Y'}{$value}fail}
*server_set_id = $1

Структура таблиц:

aliases:
+---------------+------------+------------+
| local_part * *| domain * * | recipients |
+---------------+------------+------------+
| root * * * * *| my.host.nm | amim * * * |

domains:
+------------+---------+
| domain * * | type * *|
+------------+---------+
| my.host.nm | VIRTUAL |

users:
+--------+---------------+--------+-------+-------+------------+---------------+-------------------------------------+-------+--------+
| id * * | crypt * * * * | passwd | uid * | gid * | mbox_host *| shell * * * * | home * * * * * * * * * * * * * * * *| quota | active |
+--------+---------------+--------+-------+-------+------------+---------------+-------------------------------------+-------+--------+
| amim * | ????????????? | ???? * | 65534 | 65534 | my.host.nm | /sbin/nologin | /var/mail/virtual/my.host.nm/amim * | * *15 | Y * * *|
| me * * | ????????????? | ???? * | 65534 | 65534 | my.host.nm | /sbin/nologin | /var/mail/virtual/my.host.nm/me * * | * *15 | Y * * *|

userforward:
+------------+------------+------------+
| local_part | domain * * | recipients |
+------------+------------+------------+
| ssd4ssc * *| my.host.nm | amim * * * |

Столбец crypt в таблице users пока не используется..

Отправлено: 07:58, 20-02-2004 | #6


Аватара для Belansky

Юниксоид


Сообщения: 3001
Благодарности: 45

Профиль | Отправить PM | Цитировать


amim
Скажите, это листинг Вашего рабочего конфига? Или Вы просто скопировали его из статьи для сокрытия интимных подробностей? А то создается такое впечатление, что у Вас вся работа разрешена только с ip 127.0.0.1.
Во всяком случае, обратите внимание в тесксте указанной Вами статьи на следуущее:
Цитата:
rimary_hostname - полное имя хоста (FQDN);
domainlist local_domains - список доменов, для которых принимаем почту как для локальных;
domainlist relay_to_domains - список доменов, для которых разрешено принимать почту;
hostlist relay_from_hosts - список адресов (IP) с которых разрешено принимать почту;
acl_smtp_rcpt = acl_check_rcpt - вызов правил доступа при проверке адреса получателя;
acl_smtp_data = acl_check_data - вызов правил доступа при проверке пересылаемых данных;
qualify_domain - определение имени домена из FQDN сетевого узла или из адреса отправителя;
log_selector - указываем события, которые необходимо протоколировать;
host_lookup - поиск имени по адресу или наоборот;
auto_thaw - указываем время, по истечению которого будет возобновлена попытка доставить frozen сообщение(я);
message_size_limit - указываем максимальный размер сообщения;
smtp_accept_max - указываем максимально возможное число одновременных smtp сессий.

-------
Косово je Србиjа!


Отправлено: 21:38, 21-02-2004 | #7


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата:
Скажите, это листинг Вашего рабочего конфига? Или Вы просто скопировали его из статьи для сокрытия интимных подробностей? А то создается такое впечатление, что у Вас вся работа разрешена только с ip 127.0.0.1.
Да, это мой рабочий конфиг, хотя он немного отличается, от того, что написано в статье(особенно в части acl, поэтому я ее и привел выше), но первоначально я настраивал все по статье.. Однако по поводу 127.0.0.1 могу процитировать следующее:

The third line defines a host list called "relay_from_hosts". This list is used later in the configuration to permit relaying from any host or IP address that matches the list. The default contains just the IP address of the IPv4 loopback interface, which means that processes on the local host are able to submit mail for relaying by sending it over TCP/IP to that interface. No other hosts are permitted to submit messages for relaying.

Скажем так: эта опция вообще не используется(стоит значение по умолчанию), насколько я понимаю, она нужна для указания доверительных хостов, с которых можно релеить без дополнительных условий..
далее это указывается в опции accept *hosts = +relay_from_hosts, которая у меня отключена..
все верно, с 127.0.0.1 у меня релеится без авторизации(но я это отключу).. только хотелось бы заметить, что авторизация все-таки работает с компьютера в локалке 192.168.101.120(что в общем то и видно из лога) так что вряд ли эта опция на что то влияет.. для очищения совести добавил туда внешний интерфейс, включил accept *hosts = +relay_from_hosts - ничего не изменилось(да и не могло измениться, письма с внешнего интерфейса попадают под одну из трех масок в acl и обламываются из-за непрохождения авторизации, опция accept *hosts = +relay_from_hosts стоит ниже этих масок).. в любом случае облом происходит не из за relay denied, а из-за unrecognized command..
Цитата:
Во всяком случае, обратите внимание в тесксте указанной Вами статьи на следуущее:
ну, с этими опциями вроде как все в порядке, конфиг в наличии..

Отправлено: 07:40, 24-02-2004 | #8



Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по FreeBSD » Exim:Не проходит smtp авторизация с внешнего интерфейса

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Redhat/Fedora - SMTP-авторизация и milter-greylist Gangabass Общий по Linux 0 26-01-2009 11:26
FreeBSD - exim + popa3d Kulak Общий по FreeBSD 0 16-10-2008 16:25
Драйверы в EXIM Dirk Diggler Программное обеспечение Linux и FreeBSD 0 27-08-2008 11:16
Exim sys_admin Программное обеспечение Linux и FreeBSD 0 30-07-2007 22:18
Не проходит авторизация ни на одном сайте. Foxell Хочу все знать 2 29-01-2006 15:23




 
Переход