Назад | Перейти на главную страницу

как настроить postfix за haproxy?

В последние годы у меня без проблем работал почтовый сервер для моего малого бизнеса.

Теперь, когда моя компания выросла, я хотел добавить немного избыточности и добавить аварийный почтовый сервер с балансировщиком нагрузки впереди (haproxy).

Все шло нормально, пока неделю назад мы не стали жертвами спамеров, и мне пришлось все закрыть. Часто используя Google, я обнаружил, что балансировщик нагрузки без правильной конфигурации преобразует мой постфикс в открытое реле.

Я хотел бы решить эту проблему и также нашел много документов, но, честно говоря, я немного потерялся. Я знаю, что мне нужно добавить send-proxy в haproxy.cfg среди других изменений, но я просто не могу понять, как добавить postscreen, чтобы снова укрепить postfix.

Может ли кто-нибудь направить меня или, по крайней мере, дать мне ссылку, которую я не нашел, на руководство или учебник о том, как этого можно достичь?

Допускаю, что теряюсь в официальных документах postfix.

Спасибо заранее

Может быть, это кому-нибудь поможет. Конфигурацию haproxy я делаю иначе, потому что я работаю внутри кластера Kubernetes. Но конфигурация постфикса, вы обновляете два файла соответственно

master.cf

# Exposed SMTP service (postscreen support is needed to support the proxy protocol [search postscreen_upstream_proxy_protocol in main.cf])
smtp      inet  n       -       -       -       1       postscreen
smtpd     pass  -       -       -       -       -       smtpd

main.cf

# This is required to support the proxy protocol to acquire the correct source ip address from whoever is connecting to this server
# It's really important to get this information because otherwise ALL your connections will come from your internal ip address
# Guess what you allow to send emails, without question? Thats right! You're $mynetworks. Which means because you cannot get the
# correct source ip address, it permits EVERYBODY TO SEND EMAIL THROUGH YOUR SERVER! You basically become an open relay
postscreen_upstream_proxy_protocol = haproxy
postscreen_upstream_proxy_timeout = 5s

SMTP через HAProxy usint TProxy

Вам нужно будет использовать TProxy чтобы сохранить IP-адрес клиента. поиск tproxy Это предполагает, что публичный IP-адрес попадает в haproxy.

Или просто используйте MX

Другой способ - подключиться к порту 25 NAT с 2 общедоступных IP-адресов и просто использовать 2 записи MX. MTA также будет заниматься балансировкой нагрузки.

Вам нужно будет запустить haproxy в режиме tcp.

 frontend smtp_in *:25 (SMTP port)
    mode                tcp
    default_backend     smtp_out


 backend smtp_out
    balance leastconn
    server  smtp-server-1.domain.com  smtp-server-1.domain.com:25
    server  smtp-server-2.domain.com  smtp-server-2.domain.com:25