LINUX.ORG.RU
ФорумAdmin

Postfix запритить отправку на один домен

 


0

1

Здравствуйте. Подозреваю что с postfix`сом замучали тупить уже, и у меня, к сожалению то же базовый вопрос, на котором споткнулся.

Нужно запретить отправку на один домен. Для примера исп. yandex.ru и\или полностью .ru

smtpd_recipient_restrictions =.
    check_recipient_access hash:/etc/postfix/conf/sender_access.
    reject

cat /etc/postfix/conf/sender_access
mymail@yandex.ru reject
@yandex.ru reject
yandex.ru reject
.ru reject

Apr 22 15:18:31 mail postfix/pickup[9482]: 661916454: uid=500 from=<analit>
Apr 22 15:18:31 mail postfix/cleanup[9488]: 661916454: message-id=<20180422191831.661916454@myhost.ru>
Apr 22 15:18:31 mail postfix/qmgr[9483]: 661916454: from=<analit@myhost.ru>, size=466, nrcpt=1 (queue active)
Apr 22 15:18:32 mail postfix/smtp[9490]: 661916454: to=<mymail@yandex.ru>, relay=smtp.gmail.com[74.125.205.108]:587, delay=1.4, delays=0.02/0.02/0.64/0.72, dsn=2.0.0, status=sent (250 2.0.0 OK 1524424712 g13sm2023444ljk.0 - gsmtp)
Apr 22 15:18:32 mail postfix/qmgr[9483]: 661916454: removed

Письмо приходит. Я попробовал уже кучу вариантов конфигураций. Не пойму как запретить. Подскажите пожалуйста.

пс: postmap /etc/postfix/conf/sender_access - конечно делал.


можно примерно так я думаю

# cat /etc/postfix/header_checks

/^To:.*domain.com*/ REJECT Bad address

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

sergej, простите, я до конца не понимаю вашу конструкцию.

Файл /etc/postfix/header_checks с таким содержимым как стоит указать в конфиге?

___________________________

Тут так как и писал в main.cf:

[root@mail postfix]# postconf | grep smtpd_recipient_restrictions
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/conf/sender_access, reject 
Вот только правила эти не отрабатываются. Очевидно что то не правильно сделал - не пойму что.

Буду рад любым вариантам. )

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

пробую так:

[root@mail postfix]# postconf | grep smtpd_recipient_restrictions
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/conf/sender_access     permit_mynetworks    reject 

Письмо всё равно доставляется

$ echo «test-test-test» | mail -s «Tema-mail-yandex-15» mymail@yandex.ru

Apr 23 00:34:35 mail postfix/smtp[9777]: D125A6494: to=<mymail@yandex.ru>, relay=smtp.gmail.com[74.125.205.109]:587, delay=2, delays=0.04/0.02/0.76/1.2, dsn=2.0.0, status=sent

(( что то упускаю явно.

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

При такой «конструкции»:

smtpd_recipient_restrictions =.
    check_recipient_access hash:/etc/postfix/conf/sender_access.
    reject
по логике ВООБЩе никакие письма не должны никому доставляться. потому что в конце:

reject

Придется вам выкатить сюда весь main.cf Походу в нем есть глобальное правило разрешающее всё и всем...

Bootmen ☆☆☆
()
Ответ на: комментарий от ishk0

Скажите, а что/кто отправляет почту? Спрашиваю, потому что, например, локальный sendmail (который вызывается по умолчанию функцией mail() в php) не будет проходить через это правило.

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

Вот это поворот. )

чуть выше писал, отправляю тестовое письмо с этого же сервера от простого юзера:

$ echo «test-test-test» | mail -s «Tema-mail-yandex-15» mymail@yandex.ru 

План сделать этот postfix релеем, и на других серверах указать его как smtp server, что бы почта летела именно от этой учетки, согласно правилам ограничения.

Спасибо. Сейчас поставлю себе smtp клиента на сторонней машине - опробую - отпишу.

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

Поставил ssmtp на клиенте (для проб). в его кнфиге указал как smtp сервер host с postfix`ом.

отправляю почту echo «test-test-test» | mail -s «Tema-test51» proba@gmail.com

лог на сервере с postfix

Apr 23 03:09:06 mail postfix/smtpd[9923]: connect from client-pc.domain.ru[192.168.98.203]
Apr 23 03:09:06 mail postfix/smtpd[9923]: fatal: non-null host address bits in "192.168.98.0/16", perhaps you should use "192.168.0.0/16" instead
Apr 23 03:09:07 mail postfix/master[9919]: warning: process /usr/libexec/postfix/smtpd pid 9923 exit status 1
Apr 23 03:09:07 mail postfix/master[9919]: warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling
Что же он сопротивляется со всех сторон? ((

[root@mail postfix]# postconf | grep "networks ="
mynetworks = 127.0.0.0/8, 192.168.98.0/16
ishk0
() автор топика
Ответ на: комментарий от Bootmen

This feature is available in Postix 2.10 and later.

[root@mail postfix]# postconf -d | grep mail_version
mail_version = 2.6.6

[root@mail postfix]# postconf | grep "smtpd_relay_restrictions"
ничего
Может стоит поднять версию своего postfix и пробовать реализовать запрет средствами smtpd_relay_restrictions?

Задача вроде тривиальная - Не пустить почту на определённый домен. Не пойму почему не могу сладить (

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

Простите за назойливость, но в случае если обновлюсь до 2.11 - какой была бы Ваша конфигурация для выполнения этой задачи - блочировать отправку на yandex.ru?

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

Ну типа:

smtpd_relay_restrictions = 
smtpd_recipient_restrictions = hash:/etc/postfix/conf/sender_access
           
В мане сказано что остальные рестрикшены будут работать корректно.

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

Извиняюсь что пропал (озадачили параллельно)

postconf -d | grep mail_version
mail_version = 2.11.11

cat /etc/postfix/conf/sender_access 
yandex.ru reject
@yandex.ru reject
.ru reject

postmap /etc/postfix/conf/sender_access

service postfix start

status=sent  

Письмо снова доставлено. Что же не так делаю? Спасите пожалуйста, я растерян ((

ishk0
() автор топика
Ответ на: комментарий от ishk0
Apr 23 03:09:06 mail postfix/smtpd[9923]: fatal: non-null host address bits in "192.168.98.0/16", perhaps you should use "192.168.0.0/16" instead

Напишите либо 192.168.0.0/16 либо 192.168.98.0/24, а то весь процесс рушится.

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

Проблему порешал частично. Не нашел времени отписать.

Прав был keir: Скажите, а что/кто отправляет почту? Спрашиваю, потому что, например, локальный sendmail (который вызывается по умолчанию функцией mail() в php) не будет проходить через это правило.

Я прислушался к его совету лишь единожды. Попробовал отправлять с другова сервера (указывая настраеваемый, как smtp). Но в момент теста были не правильно настроены правила фильтрации в main.cf и письмо не отфильтровалось. Далее я продолжил тесты снова с настраеваемого сервера, и зря.

Текущий конфиг прост:

smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/recipient_access

cat /etc/postfix/recipient_access
yandex.ru reject
Спасибо всем участвующим за ваше время и терпение.

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