Доброго времени суток, многоуважаемый ALL!MTA - sendmail 8.13.6. Никак не могу добиться чтобы sendmail разрешил пересылку через себя почты с определнных доменов + определенного IP.
Проблема в следующем: если просто указать в /etc/mail/access
192.168.1 RELAYто MTA будет пересылать почту с любыми значениями mail from и rcpt to. Этим сильно пользуются спамеры указывая в качестве отправителя что-нибудь вроде "sender@1.ru". Я же хочу добиться чтобы кроме того, что хостам в этой сети разрешена пересылка через мой почтовик, sendmail смотрел на поле mail from и разрешил отправлять письма только в том случае, когда в поле отправителя стоит разрешенный для релея домен.
Т.е. к примеру мои домены mydomain1.ru, mydomain2.ru, mydomain.com (они прописаны, например, в /etc/mail/relay-domins) и я хочу чтобы почтовик разрешил отправлять почту только тогда, когда в поле отправитель стоит "что-угодно@mydomain1.ru" или "что-угодно@mydomain2.ru" или "что-угодно@mydomain.com", а если в поле отправителя заявлено "что-угодно@wrongdomain.ru", то сообщалось об ошибке "550 Relaying denied".Как это сделать? Подскажите пожалуйста! Очень нужно!
>192.168.1 RELAY
Этого делать не надо
>Relaying denied".
>
>Как это сделать? Подскажите пожалуйста! Очень нужно!добавить в sendmail.cf строчку
Fw/etc/mail/local-host-namesа в этот файл вписать имена локальных доменов (каждый в отдельной строке)
и в файл /etc/mail/relay-domains
вписать все IP-адреса, с которых разрешена отправка почты в формате
IP полное_имя сокращ.имя
192.168.1.1 mailserver.zzz.loc mailserver
192.168.1.111 vasya.zzz.loc vasyaПерезапустить и всё.
>>192.168.1 RELAY
>Этого делать не надо
Убрал это из /etc/mail/access>
>добавить в sendmail.cf строчку
>Fw/etc/mail/local-host-names
>
>а в этот файл вписать имена локальных доменов (каждый в отдельной строке)
>У меня в mc файле есть строчка:
define(`confCW_FILE', `-o /etc/mail/local-host-names')после формирования cf файла в нем вижу:
Fw-o /etc/mail/local-host-names>и в файл /etc/mail/relay-domains
>вписать все IP-адреса, с которых разрешена отправка почты в формате
>IP
>полное_имя сокращ.имя
>
>192.168.1.1 mailserver.zzz.loc mailserver
>192.168.1.111 vasya.zzz.loc vasya
>
прописал 192.168.1.20 mailhost.mydomain1.ru mailhostЕсли честно, то после всех этих изменений я не вижу разницы в работе по сравнению с записью в /etc/mail/access строчки:
192.168.1.20 RELAY
Как с этого хоста можно было указыать в mail from что угодно, а не что прописано в local-host-names, так и осталось.Возможно, не совсем понят мой вопрос - Как сконфигурить такое поведения ТРАНЗИТНОГО почтового релея почты чтобы:
1) В поле отправителя (MAIL FROM:) обязательно указано ЛЮБОЙ_ЮЗЕР@(из списка доменов /etc/mail/loacl-host-names или /etc/mail/relay-domains)
_И_
2) Отправителю разрешено ОТПРАВЛЯТЬ почту через этот сервер (присутствует либо /etc/mail/access, либо в /etc/mail/relay-domains).Только при выполнении обоих этих условий на RCPT TO говорить recipient OK, а если хоть одно из условий FALSE, тогда сообщать "Relaying denied".
>Я же хочу добиться чтобы кроме того, что хостам в этой сети разрешена пересылка через >мой почтовик, sendmail смотрел на поле mail from и разрешил отправлять письма только в >том случае, когда в поле отправителя стоит разрешенный для релея домен.
Если я правильно понимаю задачу...
Попробуй так (не проверялось)
Сначала проверяем эл. адрес отправителя, если доменная часть из local-host-names,
то проверяем, принадлежит ли ip локальной сеткеLOCAL_CONFIG
LOCAL_RULESETSSLocal_check_mail
R$* $: $>Parse0 $>3 $1R$+<@$=w.> $: $>CheckSenderIP
R$* $@ OK
SCheckSenderIP
R$* $: $&{client_addr}
R192.168.1.$+ $@ OK
R$* $#error $: "553 Invalid sender address"Минус: путешествующие юзеры не смогут пользоваться родной почтой,
если будут указывать свой родной эл.адрес
интересный ник ;)
интересный Ник ;)