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

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

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

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

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

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

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

Заранее большое спасибо

3
задан 17 July 2018 в 15:31
3 ответа

Вам нужно будет запустить 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
1
ответ дан 3 December 2019 в 06:54

SMTP через HAProxy usint TProxy

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

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

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

1
ответ дан 3 December 2019 в 06:54

Может быть, это кому-нибудь поможет. Конфигурацию 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
0
ответ дан 3 December 2019 в 06:54

Теги

Похожие вопросы