2 votes

Postfix smarthost, permet le relais par IP dynamique

J'ai plusieurs serveurs (web, mysql, java) qui ont postfix installé et qui sont configurés pour relayer à un serveur postfix smarthost.

DYNAMIC IP                              STATIC IP            INTERNET
[PHP -> sendmail -> 25:postfix:2525] -> [2525:postfix:25] -> [25:external]

Le problème est que les premiers serveurs ont des adresses IP dynamiques, donc je ne peux pas simplement ajouter leurs adresses IP au paramètre mynetworks dans le fichier main.cf du serveur postfix central.

Je pense que la solution est SASL, mais je n'arrive pas à trouver comment définir un nom d'utilisateur et un mot de passe sur le premier et l'authentifier sur le second.

Voici ce que j'ai sur le relais

apt-get install postfix libsasl2-modules

cat > /etc/postfix/main.cf << 'EOF'
myhostname = a-eu1-test-http
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
relayhost = [smarthost]:2525
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mydestination = a-eu1-test-http, localhost
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only

smtpd_banner = $myhostname ESMTP $mail_name
biff = no
append_dot_mydomain = no
readme_directory = no

smtp_tls_security_level = encrypt
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/relay_password
smtp_sasl_security_options = noanonymous
EOF

C'est ce que j'ai sur le smarthost, mais je ne sais pas comment définir les utilisateurs sasl :

apt-get install postfix libsasl2-modules

cat > /etc/postfix/main.cf << 'EOF'
myorigin = /etc/mailname
myhostname = smarthost
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mydestination = smarthost, localhost
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

smtpd_banner = $myhostname ESMTP $mail_name
biff = no
append_dot_mydomain = no
readme_directory = no

smtpd_tls_security_level = encrypt
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname

smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
EOF

0 votes

0 votes

@andrekeller - Je l'ai fait mais je n'ai pas pu trouver la bonne combinaison pour une solution.

0 votes

4voto

andrekeller Points 479

Vous manquez essentiellement le backend d'authentification

Sur le relais :

apt-get install postfix libsasl2-2 libsasl2-modules sasl2-bin

adduser postfix sasl

mkdir /etc/postfix/sasl
cat > /etc/postfix/sasl/smtpd.conf << EOF
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
EOF

cat > /etc/default/saslauthd << EOF
START=yes
MECHANISMS="sasldb"
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"
EOF

saslpasswd2 -c -u `postconf -h myhostname` relay-user

service saslauthd start

Sur le client :

cat > /etc/postfix/relay_passwords << EOF
your-relay:2525  relay-user:password
EOF
postmap /etc/postfix/relay_passwords

0 votes

Woo ! J'y suis arrivé à la fin. J'ai également dû installer les modules libsasl2 sur le client. Merci à vous

0 votes

Super, vous pouvez ajouter tls au mélange, de sorte que l'authentification sasl ne fonctionne qu'avec une connexion cryptée.

0 votes

:) - J'étais juste en train d'ajouter ça. J'ai modifié ma question initiale

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