OVH Community, votre nouvel espace communautaire.

Pb config PostFix sur RPS avec ISPConfig


fritz2cat
26/01/2012, 16h30
Je te conseille de lire quelques tutos, et également la documentation de Postfix qui est fort bien faite.

Frédéric

Micha45
26/01/2012, 13h58
J'ai continué mes tests, et j'avance dans ma compréhension... Merci pour ton aide Frédéric.

Je reprends ma ligne de config pour essayer de comprendre :
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf, reject_unauth_destination

Si l'expéditeur utilise un compte du serveur, mais avec une adresse mail sur un domaine non géré par le serveur, il est autorisé. ça ressemble au permit_sasl_authenticated

Si l'utilisateur utilise un adresse qui n'est dans aucun domaine connu, et n'est pas authentifié, il est rejeté, enfin plus exactement, le mail est abandonné sans notification reject_unauth_destination.

Si l'ouverture de la session SMTP se fait depuis le serveur (127.0.0.1) alors le mail sera toujours autorisé (permit_mynetworks)

Si l'expéditeur a son adresse dans un des domaines du serveurs sans authentification, il est autorisé (si j'ai bien compris, c'est check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf)

C'est bien là que le truc se corse. Dans les deux derniers cas, on se retrouve dans une situation où certains mails passent (comme sur Yahoo, orange) mais d'autres sont droppés (gmail, laposte.net). Donc comportement non cohérent.

Pour le serveur, pour le moment, j'ai juste mynetworks = 127.0.0.0/8 [::1]/128, donc l'idée serai d'ajouter les adresses IP publiques du serveur pour tout autoriser.

Pour les clients SMTP distants (thunderbird, outlook, etc...), comment faire pour empêcher toute connexion qui n'utilise pas d'authentification ? (refuser toute connexion anonyme même si l'expéditeur fait partie d'un domaine local).

fritz2cat
26/01/2012, 10h33
Heureusement que ton Postfix n'accepte pas n'importe quoi.

Sinon ton serveur serait open-relay et dans 3 jours les affreux spammeurs sont là pour envoyer des dizaines de milliers de mails à partir de ton rps.

Les seuls mails non authentifiés qu'il doit éventuellement accepter sont ceux à destination des utilisateurs de ton domaine.

Postfix n'a rien à notifier puisque le mail n'est même pas rentré.

C'est le serveur qui n'est pas arrivé à faire rentrer le message dans ton rps qui doit notifier l'expéditeur.

Frédéric

Micha45
26/01/2012, 08h25
Le problème ici est qu'il n'y a aucun retour de la part de PostFix comme quoi le mail a été droppé. Cela ne concerne que 5 à 10% de tous les mails envoyés. La plupart des autres domaines passent correctement. Le comportement n'est donc pas fiable (on ne sait jamais si un mail part ou non)

Donc l'idée est purement et simplement d'interdire tout envoi de mail depuis une IP autre que le serveur local lorsque la connexion SMTP n'est pas authentifiée, et qu'en local (127.0.0.1, ou l'adresse IP Publique) aucune authentification soit nécessaire, et bien sûr que cela marche dans 100% des cas.

fritz2cat
26/01/2012, 06h27
C'est évident que ton rps ne peut pas prendre en charge un mail à destination de laposte.net, sauf si tu es un utilisateur autorisé du rps.

Et pour montrer que tu es autorisé, il y a 2 solutions:

- soit l'authentification
- soit ton NAS possède une IP publique fixe et tu mets cette IP dans "mynetworks"

Frédéric

Micha45
25/01/2012, 22h18
Voici l'extrait du log

Code:
Jan 25 23:13:07 r36072 postfix/smtpd[16844]: NOQUEUE: reject: RCPT from nas.mh-consulting.fr[88.170.178.168]: 554 5.7.1 : Relay acces
s denied; from= to= proto=ESMTP helo=
J'ai juste masqué les adresses email.

Pour obtenir l'erreur, j'ai juste eu besoin de supprimer l'authentification en sortant.

Merci pour le coup de main

fritz2cat
25/01/2012, 21h53
Peux-tu montrer l'extrait du log postfix ?

Frédéric

Micha45
25/01/2012, 21h16
Bonjour,

J'ai un ISPCOnfig installé sur un RPS qui me pose quelques soucis de configuration PostFix.

Sur cette config, je souhaite que toutes les connexions distantes soient refusées si elles ne sont pas authentifiées. Toutes les connexions provenant du serveur local (roundcube local et sites web) soient acceptées sans authentification.

A l'heure actuelle, tous les clients sont autorisés, même sans authentification. Le problèmes est que certains mails n'arrivent jamais (les logs montrent que le mail est refusé par Postfix parce que le client n'est pas autorisé pour le relai). On a par exemple tous les mails à destination de laposte.net.

A voir le main.cf, il me semblait que tout était correctement configuré.
Que faudrait-il modifier pour avoir le fonctionnement souhaité ?

Code:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = /usr/share/doc/postfix

# TLS parameters
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = rXXXXX.ovh.net
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = rXXXXX.ovh.net, localhost, localhost.localdomain
relayhost = 
mynetworks = 127.0.0.0/8 [::1]/128
mailbox_size_limit = 250000000
recipient_delimiter = +
inet_interfaces = all
html_directory = /usr/share/doc/postfix/html
virtual_alias_domains = 
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /var/vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf, reject_unauth_destination
smtpd_tls_security_level = may
transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf
relay_domains = mysql:/etc/postfix/mysql-virtual_relaydomains.cf
virtual_create_maildirsize = yes
virtual_maildir_extended = yes
virtual_mailbox_limit_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = "The user you are trying to reach is over quota."
virtual_overquota_bounce = yes
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps
smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf
smtpd_client_restrictions = check_client_access mysql:/etc/postfix/mysql-virtual_client.cf
maildrop_destination_concurrency_limit = 1
maildrop_destination_recipient_limit = 1
virtual_transport = maildrop
header_checks = regexp:/etc/postfix/header_checks
mime_header_checks = regexp:/etc/postfix/mime_header_checks
nested_header_checks = regexp:/etc/postfix/nested_header_checks
body_checks = regexp:/etc/postfix/body_checks
content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings
message_size_limit = 10000000
Merci de votre aide !!!
Micha