Forum Linux.général Postfix - envoi depuis l'extérieur authentifié

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
22
sept.
2014

Bonjour,

je reprends la config de notre serveur mail qui est sous postfix.

Aujourd'hui, le serveur autorise l'envoi de mails depuis @mondomaine.com avec ou sans authentification, mais seulement depuis le réseau interne de l'entreprise.

Hors j'ai besoin que les nomades puissent envoyer des mails depuis l'extérieur via ce serveur la.
Actuellement, s'ils souhaitent envoyer un mail, soient ils utilise le VPN mis en place, soient ils utilisent un serveur smtp tiers (celui de leur FAI, mobile, etc..).

Avant de tout péter mettre à jour la conf de postfix, je voulais savoir quelles options toucher pour avoir le comportement suivant:
- Si l'utilisateur est dans la plage d'IP interne, alors possibilité d'envoyer un mail sans authentification
- Si l'utilisateur se connecte depuis une IP externe, alors obligation d'auth + tls/ssl

Une petite idée sur les paramètres à modifier ? mynetworks et smtpd_sender_restrictions semblent de bons candidats, mais je préfère vous demander avant. Biensur, si jamais vous trouvez des bizarreries sur la conf, je suis aussi preneur d'améliorations !

Note: oui je sais c'est pas bien de pas authentifier les utilisateurs, mais je règle 1 problème après l'autre ;)

Voici ma config actuelle, postconf -n:

alias_maps = hash:/etc/aliases
always_bcc = archiver@domain.com
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
delay_warning_time = 1h
home_mailbox = Maildir/
inet_interfaces = all
mailbox_command = /usr/lib/dovecot/deliver
mailbox_size_limit = 0
message_size_limit = 20480000
mydestination = localhost
myhostname = imap.domain.com
mynetworks = 127.0.0.0/8  192.168.10.0/24 192.168.11.0/24 192.168.20.0/24
myorigin = domain.com
readme_directory = no
recipient_bcc_maps = hash:/etc/postfix/sender_recipient_bcc
recipient_delimiter = +
relay_domains = lists.domain.com
relayhost = x.x.x.x
sender_bcc_maps = hash:/etc/postfix/sender_recipient_bcc
smtp_tls_note_starttls_offer = yes
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP
smtpd_helo_restrictions = reject_invalid_helo_hostname
smtpd_recipient_limit = 100
smtpd_recipient_restrictions = reject_non_fqdn_recipient, reject_unauth_pipelining,  reject_non_fqdn_sender, hash:/etc/postfix/protected_adresses, check_sender_access hash:/etc/postfix/sender_access, permit_mynetworks,  permit_sasl_authenticated, reject
smtpd_restriction_classes = domain_only
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = reject_unknown_address
smtpd_tls_CAfile = /etc/ssl/certs/domain.com.root.crt
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/ssl/certs/domain.com.2014.crt
smtpd_tls_key_file = /etc/ssl/private/domain.com.key
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
transport_maps = hash:/etc/postfix/transport
virtual_alias_maps = hash:/etc/postfix/virtual, ldap:/etc/postfix/ldap-groups.cf
virtual_gid_maps = static:5000
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = /etc/postfix/domains
virtual_mailbox_maps = ldap:/etc/postfix/ldap-accounts.cf
virtual_minimum_uid = 100
virtual_transport = dovecot
virtual_uid_maps = static:5000

Les fichiers sender_access:

domain.com = permit

  • # ma vie

    Posté par  . Évalué à 4.

    chez moi un simple :

    smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination reject_invalid_hostname reject_non_fqdn_hostname reject_non_fqdn_sender reject_non_fqdn_recipient reject_unknown_sender_domain reject_unknown_recipient_domain permit

    permet de regler ca,

    en effet, tu autorises ton network (tes serveurs par exemple) à envoyer des emails avec 'permit_mynetworks'
    tu autorises les utilisateurs identifiés avec 'permit_sasl_authenticated'
    tu rejetes pas mal de monde.

    et pour gerer l'identification sasl je confies cela à dovecot qui gere aussi l'imap/pop.

    # added from sasl howto
    smtpd_sasl_type = dovecot
    smtpd_sasl_path = private/auth
    smtpd_sasl_auth_enable = yes
    broken_sasl_auth_clients = yes
    • [^] # Re: ma vie

      Posté par  . Évalué à 1.

      Salut,

      merci pour la réponse, je testerai ça !

      J'utilise aussi dovecot, ça tombe bien je pourrai aussi déléguer l'identification.

      • [^] # Re: ma vie

        Posté par  (site Web personnel) . Évalué à 3.

        J'utilise aussi dovecot, ça tombe bien je pourrai aussi déléguer l'identification.

        Ah ben ça, tu n'as pas le choix, Postfix a besoin d'un serveur SASL externe, Dovecot ou Cyrus.

        • [^] # Re: ma vie

          Posté par  . Évalué à 1.

          Je me suis rendu compte que c'était déjà le cas ;)

          Sinon, en corrigeant smtpd_recipient_restrictions + activation de smtp submission j'arrivais à avoir ce que je veux.

          J'ai encore 2-3 trucs à peaufiner, mais dans les grandes lignes ça tourne.

          Encore merci !

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.