Страница 1 из 1
Два наболевших вопроса про exim
Добавлено: 2008-01-07 7:38:00
narian
1. Замена заголовка From во всей исходящей почте.
На данный момент exim у меня сконфигурирован так, чтобы требовать аутентификацию даже у всех пользователей, даже при локальной доставке. В данный момент конфигурация позволяет аутентифицированному пользователю, заменив поле From в своем MUA отправить письмо как от другого пользоваля. Видно это будет только в логах. Поэтому, хотел бы, чтобы во всех исходящих письмах заголовок From генерировался exim-ом при отправлении письма (наподобие как это реализованно на gmail.com). Подскажите, пожалуйста, в какую сторону копать.
2. Некий acl.
Я заставляю пользователей аутентифицироваться даже для осуществления локальной доставки с помощью следующего акла:
.ifdef LOCAL_USERS_MUST_AUTH
deny message = "Even local users must authenticate!"
hosts = *:!+relay_from_hosts
!authenticated = *
condition = ${if match_domain{$sender_address_domain}{+local_domains} {yes}{no} }
.endif
Но, так как $sender_address_domain берется из From, то возможна ситуация, когда любой человек, указав у себя в mua мой smtp сервер и from с доменом не в +local_domains, сможет доставить письмо без аутентификации любому локальному пользователю. во первых, тут не будет работать фильтрация спама по dnsbl, во-вторых этот инцидент плохо заметен в логах. Неприятно, в общем. Есть ли способ составить акл по следующему алгоритму (или может у кого-то есть уже готовое решение):
проверить заголовок Recieved письма - и, если письмо получено *только* нашим сервером от сервера не из +relay_from_domains или +relay_hosts, но, в тоже время, $sender_address_domain не из +local_domains, то посылать его лесом. есть ли какие-то подводные камни у данного решения. я, на первый взляд, их не вижу.
Re: Два наболевших вопроса про exim
Добавлено: 2008-01-07 13:30:24
Alex Keda
про второе - непонял, про первое - ищи по форуму - Дикенс приводил кондишен для проверки соответствия From и данных из аутентификации.
Может даже в прилепленной теме было...
Re: Два наболевших вопроса про exim
Добавлено: 2008-01-07 13:31:56
dikens3
1. Замена заголовка From во всей исходящей почте.
На данный момент exim у меня сконфигурирован так, чтобы требовать аутентификацию даже у всех пользователей, даже при локальной доставке. В данный момент конфигурация позволяет аутентифицированному пользователю, заменив поле From в своем MUA отправить письмо как от другого пользоваля. Видно это будет только в логах. Поэтому, хотел бы, чтобы во всех исходящих письмах заголовок From генерировался exim-ом при отправлении письма (наподобие как это реализованно на gmail.com). Подскажите, пожалуйста, в какую сторону копать.
http://forum.lissyara.su/viewtopic.php?f=20&t=3577
2. Некий acl.
hosts = *:!+relay_from_hosts
Здесь определена своя сеть?
Как сделал я:
1. Отправка писем куда угодно для моей сети (192.168.x.x) только по TLS и только по логину и паролю.
2. Поле From должно быть login@МОЙ_ДОМЕН
Т.е. я проверяю чтобы FROM соответствовало данным аутентификации. :-)
Re: Два наболевших вопроса про exim
Добавлено: 2008-01-07 13:43:07
narian
Здесь определена своя сеть?
нет, relay_from_hosts у меня пустой. соответсвенно аутентифицироваться обязаны все, кто указывает свой адрес в одном из моих доменов. попробую вариант проверки from, указанный здесь
http://forum.lissyara.su/viewtopic.php?f=20&t=3577
Правда формирование заголовка from exim-ом при отправке все равно предпочтительнее - у меня почтовые учетные записи в организации выдаются по должностям (к примеру, director, topoper, sovetnik) и при смене человека на должности необходимо идти перенастраивать ему mua, чтобы вбить новые ф.и.о. Если бы заголовок From формировался exim-ом все было бы гораздо проще - поменял в базе и готово.
насчет второго пункта - наверное правильнее будет писать соответсвующее правило для спамассасина.
Re: Два наболевших вопроса про exim
Добавлено: 2008-01-07 15:45:12
dikens3
Если бы заголовок From формировался exim-ом все было бы гораздо проще - поменял в базе и готово.
From - это часть заголовка, тогда почитай про то, как их удалять и создавать.
headers_remove:
http://forum.lissyara.su/viewtopic.php? ... it=routers
headers_add:
http://forum.lissyara.su/viewtopic.php? ... add#p17480
Ну и в доках по роутерам и транспортам.
Re: Два наболевших вопроса про exim
Добавлено: 2008-01-08 9:41:43
narian
попробовал. пока остановился на этом варианте.
Код: Выделить всё
.ifdef CHECK_LOCAL_FROMHEADER
deny
message = "your login $authenticated_id is not allowed to send mail from address $sender_address"
authenticated = *
condition = ${if !match_address{$sender_address}{$authenticated_id}{yes}{no}}
.endif
Re: Два наболевших вопроса про exim
Добавлено: 2008-01-08 13:04:37
narian
С заменой From разобрался частично - заголовок вида From: Имя_пользователя <адрес_пользователя> добавляю. Имя и адрес беру из базы mysql, но пока не разобрался как сделать миме-кодирование заголовка, соответственно, если имя пользователя в базе записано кирилицей, то оно получается нечитаемо. Так что пока есть только такой вариант транспорта:
Код: Выделить всё
mysql_localdelivery:
driver = appendfile
check_string = ""
create_directory
delivery_date_add
directory = ${lookup mysql{SELECT CONCAT(home, "/", id, "@", mbox_host) FROM users \
WHERE id='${local_part}' AND mbox_host='${domain}'}}
directory_mode = 770
envelope_to_add
group = dovecot
maildir_format
maildir_tag = ,S=$message_size
message_prefix = ""
message_suffix = ""
mode = 0660
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
headers_add = From: ${lookup mysql{SELECT CONCAT(`realname`, ' <', `id`,'@', `mbox_host`,'>') FROM users WHERE ( id='${local_part:$authenticated_id}' and mbox_host='${domain:$authenticated_id}' ) }}
Re: Два наболевших вопроса про exim
Добавлено: 2008-04-05 13:35:41
leopold
Два дня туплю... Куда это пихать?
deny
message = "your login $authenticated_id is not allowed to send mail from address $sender_address"
authenticated = *
condition = ${if !match_address{$sender_address}{$authenticated_id}{yes}{no}}
Re: Два наболевших вопроса про exim
Добавлено: 2008-04-06 12:45:40
narian
В секцию acl_check_rcpt
Re: Два наболевших вопроса про exim
Добавлено: 2008-04-06 18:38:57
UST
А вот не работает. Переменная $authenticated_id почему-то остается пустой, соотв. не пропускаются ваще никакие письма.
Re: Два наболевших вопроса про exim
Добавлено: 2008-04-07 11:52:54
leopold
где $authenticated_id присваивается значение? Почему она пустая?
Re: Два наболевших вопроса про exim
Добавлено: 2008-04-07 13:57:42
dikens3
leopold писал(а):где $authenticated_id присваивается значение?
Тут:
Код: Выделить всё
auth_plain:
driver = plaintext
public_name = PLAIN
server_condition = ${lookup mysql{MYSQL_AUTH_PLAIN}{yes}{no}}
server_prompts = :
server_set_id = $2
leopold писал(а):Почему она пустая?
Может быть у тебя без аутентификации работает отправка писем? К примеру, только для своей сети?