4 votes

Comment configurer postfix derrière haproxy ?

Au cours des dernières années, j'avais un serveur de messagerie électronique en cours d'exécution pour ma petite entreprise sans problèmes.

Maintenant que ma société a grandi, je voulais ajouter un peu de redondance et j'ai ajouté un serveur de messagerie électronique de secours avec un répartiteur de charge devant (haproxy).

Tout s'est bien passé jusqu'à il y a 1 semaine lorsque nous sommes devenus victimes de spammeurs et j'ai dû tout arrêter. En utilisant beaucoup Google, j'ai découvert qu'un répartiteur de charge sans la bonne configuration transformait mon postfix en relais ouvert.

Je voudrais résoudre cela et j'ai également trouvé beaucoup de documents, mais honnêtement maintenant je suis un peu perdu. Je sais que je dois ajouter send-proxy dans haproxy.cfg parmi d'autres changements, mais je n'arrive tout simplement pas à savoir comment ajouter postscreen afin de renforcer à nouveau postfix.

Quelqu'un pourrait-il me guider ou au moins me donner un lien que je n'ai pas trouvé vers un manuel ou didacticiel expliquant comment cela peut être réalisé ?

J'admets que je me perds dans les documents officiels de postfix.

Merci d'avance

5voto

Peut-être que cela aide quelqu'un. La configuration de haproxy que je fais différemment parce que je suis en cours d'exécution à l'intérieur d'un cluster kubernetes. Mais la configuration de postfix, vous mettez à jour deux fichiers, en conséquence

master.cf

# Service SMTP exposé (le support de postscreen est nécessaire pour prendre en charge le protocole proxy [rechercher postscreen_upstream_proxy_protocol dans main.cf])
smtp      inet  n       -       -       -       1       postscreen
smtpd     pass  -       -       -       -       -       smtpd

main.cf

# C'est nécessaire pour prendre en charge le protocole proxy afin d'obtenir la bonne adresse IP source de quiconque se connecte à ce serveur
# Il est vraiment important d'obtenir cette information car sinon TOUTES vos connexions viendront de votre adresse IP interne
# Devinez ce que vous permettez d'envoyer des e-mails, sans question? C'est exact! Vous êtes $mynetworks. Ce qui signifie que parce que vous ne pouvez pas obtenir la
# la bonne adresse IP source, cela permet à TOUT LE MONDE D'ENVOYER DES E-MAILS PAR VOTRE SERVEUR! Vous devenez essentiellement un relais ouvert
postscreen_upstream_proxy_protocol = haproxy
postscreen_upstream_proxy_timeout = 5s

1voto

Sukhjinder Singh Points 1924

Vous devrez exécuter haproxy en mode tcp.

 frontend smtp_in *:25 (port SMTP)
    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

1voto

Aaron Points 2779

SMTP à travers HAProxy en utilisant TProxy

Vous auriez besoin d'utiliser TProxy afin de préserver l'adresse IP du client. rechercher tproxy Cela suppose que l'IP publique atteint haproxy.

Ou simplement utiliser MX

Une autre méthode consisterait à NATer le port 25 à partir de 2 IP publiques et simplement utiliser 2 enregistrements MX. Les MTA s'occuperont également de l'équilibrage de charge.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X