Forum Linux.debian/ubuntu bloquer le port 25 pour les mails sortants postfix

Posté par  . Licence CC By‑SA.
Étiquettes :
0
23
avr.
2017

salut;

nous avons un serveur de messagerie opérationnel sous debian jessie avec postfix dovecot postgresql amavisd-new.
nous voudrions bloquer le port 25 pour les mails sortants c'est-a-dire: postfix recevra sur le port 25 uniquement les mails entrants, le port 587 et 465 pour les mails sortants. les utilisateurs ayants des comptes mails sur le serveur ne pourant pas utiliser le port 25 pour l'envoie de leurs messages. aussi nous aimerions bloquer telnet sur le port 25.
voiçi le comtenu des deux fichiers main.cf et master.cf
main.cf :
smtpd_banner = $myhostname ESMTP Ready
biff = no
append_dot_mydomain = no
readme_directory = no
smtp_tls_CAfile = /etc/ssl/certs/xxxx
smtpd_tls_cert_file = /etc/ssl/certs/hhh
smtpd_tls_key_file = /etc/ssl/private/jkk
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_client_restrictions =
permit_mynetworks, permit_sasl_authenticated,
sleep 1, reject_unauth_pipelining
smtpd_helo_required = yes
smtpd_helo_restrictions = reject_invalid_helo_hostname
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated check_policy_service unix:private/policy-spf reject_unauth_destination

smtpd_sender_restrictions =
check_sender_access hash:/etc/postfix/access_sender,
reject_unlisted_sender, reject_unknown_sender_domain,
permit_mynetworks, permit_sasl_authenticated,
reject_non_fqdn_sender

smtpd_data_restrictions = reject_unauth_pipelining
smtpd_recipient_limit = 30
policy-spf_time_limit = 3600s
myhostname = server.domain.org
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost.domain.org, localhost
relayhost =
mynetworks = 127.0.0.0/8 x.y.a.z/25
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4
virtual_mailbox_domains = pgsql:/etc/postfix/pgsql.d/virtual-mailbox-domains.cf
virtual_mailbox_maps = pgsql:/etc/postfix/pgsql.d/virtual-mailbox-maps.cf
virtual_alias_maps = pgsql:/etc/postfix/pgsql.d/virtual-alias-maps.cf,pgsql:/etc/postfix/pgsql.d/pgsql-email2email.cf
virtual_transport = lmtp:unix:private/dovecot-lmtp
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_tls_security_level = may
smtpd_tls_auth_only = yes
milter_default_action = accept
milter_protocol = 6
smtpd_milters = local:/opendkim/opendkim.sock
non_smtpd_milters = local:/opendkim/opendkim.sock

content_filter = smtp-amavis:[127.0.0.1]:10024

et master.cf :

_smtp inet n - - - - smtpd

submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
-o smtpd_sasl_security_options=noanonymous
-o smtpd_sender_login_maps=pgsql:/etc/postfix/pgsql.d/pgsql-email2email.cf
-o smtpd_sender_restrictions=reject_sender_login_mismatch
-o smtpd_sasl_local_domain=$myhostname
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
smtps inet n - - - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
-o smtpd_sasl_security_options=noanonymous
-o smtpd_sender_login_maps=pgsql:/etc/postfix/pgsql.d/pgsql-email2email.cf
-o smtpd_sender_restrictions=reject_sender_login_mismatch
-o smtpd_sasl_local_domain=$myhostname
-o smtpd_client_restrictions=permit_sasl_authenticated,reject

-o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING

pickup unix n - - 60 1 pickup
-o content_filter=
-o receive_override_options=no_header_body_checks
cleanup unix n - - - 0 cleanup
qmgr unix n - n 300 1 qmgr
tlsmgr unix - - - 1000? 1 tlsmgr
rewrite unix - - - - - trivial-rewrite
bounce unix - - - - 0 bounce
defer unix - - - - 0 bounce
trace unix - - - - 0 bounce
verify unix - - - - 1 verify
flush unix n - - 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - - - - smtp
relay unix - - - - - smtp
showq unix n - - - - showq
error unix - - - - - error
retry unix - - - - - error
discard unix - - - - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - - - - lmtp
anvil unix - - - - 1 anvil
scache unix - - - - 1 scache

maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}

uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)

ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix - n n - 2 pipe
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store {nexthop}{user} ${extension}
mailman unix - n n - - pipe
flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
{nexthop}{user}

policy-spf unix - n n - - spawn
user=nobody argv=/usr/bin/policyd-spf

smtp-amavis unix - - - - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20

127.0.0.1:10025 inet n - - - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks_

avec la configuration des deux fichiers l'envoi de message avec le port 25 est toujour possible et telnet aussi
comment pourrions nous bloquer le port 25 pour telnet et l'envoi de mail vers l'extérieur?
merçi pour votre aide
toute suggestion est la bienvenue.

  • # Firewall ?

    Posté par  . Évalué à 4.

    J'ai peut être loupé quelque chose, mais pourquoi ne bloques-tu pas simplement le port 25 en sortie via ton firewall ?

    • [^] # Re: Firewall ?

      Posté par  (site web personnel) . Évalué à 2.

      Et c'est simple à faire

      Système - Réseau - Sécurité Open Source - Ouvert à de nouvelles opportunités

    • [^] # Re: Firewall ?

      Posté par  . Évalué à 1.

      Peut-être simplement parce que cela ne répond pas à son besoin… Son serveur doit pouvoir envoyer des mails et donc il faut que la sortie vers le port 25 des autres serveurs SMTP soit ouverte.

      Si j'ai bien compris, il s'agit de n'autoriser la connexion entrante sur le port 25 qu'en provenance des autres serveurs SMTP et d'obliger les clients de messagerie (ceux utilisant des adresses d'émission sur les domaines gérés par ce serveur) à se connecter sur les ports 587 (submission) ou 465 (SMTPS).
      Je n'ai pas de réponses précises à cette question mais voici quelques éléments en vrac.

      Je ne pense pas que l'on puisse interdire à un client SMTP de se connecter sur le port 25 puisque ce port doit être ouvert pour que les serveurs puissent envoyer les mails à destination des domaines gérés. En revanche, on doit pouvoir interdire l'envoi de mail à destination de domaines externes via le port 25. Pour cela, on peut :
      - n'accepter les mails entrants et à destination d'un domaine externe que si le client s'est authentifié ;
      - n'autoriser l'authentification que si le canal est chiffré (TLS)
      - interdire l'authentification sur le port 25.

      Il me semble que les deux premiers points sont déjà actifs dans une conf standard sous Debian. En revanche, il est normalement possible de chiffrer la communication sur le port 25 (avec STARTTLS, aussi utilisé pour la communication entre serveurs) et donc de s'y authentifier. Est-ce grave ou même gênant ?
      Si c'est le cas, on doit pouvoir interdire cette authentification avec l'option 'smtpd_sasl_auth_enable=no' au niveau du protocole smtp dans master.cf (à tester tout de même, parce que je suis loin d'être un expert pour la configuration de postfix).

      J'espère avoir bien compris la problématique et avoir apporté quelques éléments de réponse.

      À+,
      JJD

      • [^] # Re: Firewall ?

        Posté par  . Évalué à 4.

        Je comprends pas trop qu’elle est le problème.

        Il « suffit » de bloquer le relais des mails pour les utilisateurs non authentifiés et de ne pas activer l’authentification sur le smtpd qui écoute sur le port 25.

  • # Bloquer le port 25 pour les mails sortants postfix

    Posté par  . Évalué à 3. Dernière modification le 24 avril 2017 à 17:22.

    Le temps de changer de laptop pour avoir accès aux bonnes config :

    • /etc/postfix/master.cf :
    smtp      inet  n       -       -       -       -       smtpd
      -o smtpd_sasl_auth_enable=no
    submission inet n       -       -       -       -       smtpd
      -o smtpd_tls_security_level=encrypt
      -o smtpd_sasl_auth_enable=yes
      -o smtpd_client_restrictions=permit_sasl_authenticated,reject
    • /etc/postfix/main.cf :
    smtpd_helo_required = yes
    
    smtpd_client_restrictions =
      permit_sasl_authenticated,
      permit_mynetworks,
      reject_rbl_client zen.spamhaus.org,
      permit
    
    smtpd_helo_restrictions =
      reject_invalid_helo_hostname,
      reject_non_fqdn_helo_hostname,
      permit_sasl_authenticated,
      reject_unauth_pipelining,
      permit
    
    smtpd_sender_restrictions =
      reject_non_fqdn_sender,
      reject_unknown_sender_domain,
      permit_sasl_authenticated,
      reject_unauth_pipelining,
      permit
    
    smtpd_recipient_restrictions =
      reject_non_fqdn_recipient,
      reject_unknown_recipient_domain,
      permit_sasl_authenticated,
      reject_unauth_destination,
      reject_unauth_pipelining,
      check_policy_service unix:private/postgrey,
      permit

Suivre le flux des commentaires

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