Я пытаюсь осмыслить следующее. Возможен ли постфиксный сервер только для приема. например, mx.example.com должен получать почту только из определенного списка доменов. Через него нельзя отправлять почту. Я не могу найти статей по этому поводу. Я знаю, что могу отключить sasl, но это не мешает отправке без авторизации. Это вообще возможно полностью отключить?
По умолчанию Postfix разрешает неограниченную ретрансляцию из доверенных сетей:
mynetworks
(по умолчанию: см. вывод "postconf -d")Список «доверенных» удаленных клиентов SMTP, у которых больше привилегий, чем у «чужих».
В частности, «доверенным» клиентам SMTP разрешено ретранслировать почту через Postfix. Увидеть
smtpd_relay_restrictions
описание параметра.
Значение по умолчанию может быть примерно таким, как минимум с местная обратная связь сети:
mynetworks = 127.0.0.0/8 198.51.100.100/24 [::1]/128 [fe80::]/64
В smtpd_relay_restrictions
по умолчанию:
permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination
permit_mynetworks
Разрешить запрос, если IP-адрес клиента совпадает с любым сетевым или сетевым адресом, указанным в$mynetworks
.
Поэтому проще всего удалить permit_mynetworks
из этого списка. (В качестве альтернативы можно установить mynetworks
не включать 127.0.0.0/8
, но это может вызвать другие проблемы.)
Первый и самый простой способ:
Создайте правило iptables, которое будет блокировать все исходящие электронные письма. Пример:
iptables -A OUTPUT -p tcp --dport 25 -j DROP
Но вам также нужно отбросить весь исходящий трафик. Вы можете сделать это с полицией по умолчанию:
iptables -P OUTPUT DROP
Или (лучше) политика по умолчанию - принять все и отбросить правило в конце цепочки. И вам нужно принимать весь установленный и связанный трафик. Пакет правил будет примерно таким:
iptables -P OUTPUT ACCEPT
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 25 -j DROP
iptables -A OUTPUT -s <type_host_ip> -j DROP
Это только часть правил !!! Вам необходимо разрешить весь исходящий трафик IMAP и POP3 и другой, например SSH !!!
Второй способ:
Создать транспортную карту:
> /etc/postfix/transport
Добавьте в этот файл следующее:
your_domain:
* local:some_local_user
По одной строке на домен.
В /etc/aliases
добавьте эту строку:
some_local_user: /dev/null
В main.cf
:
luser_relay = some_local_user@your_domain.tld
transport_maps = hash:/etc/postfix/transport
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
Запускаем по одному:
postmap /etc/postfix/transport
postmap /etc/aliases
service postfix reload
Ты можешь использовать ОТКАЗАТЬ карта действий для отправки обратно пользователям отклонить сообщение.
Заменить транспортную карту на:
your_domain:
* error: not allowed!