Connexion via telnet impossibles vers autres serveurs

Bonjour,

J’ai un soucis sur mon serveur dédié (depuis ce matin 2h environ) que je n’arrive pas à résoudre: plus aucune connexion possible via telnet aux autres serveurs (et donc postfix qui ne peut plus envoyé de mail par exemple).
J’ai désactivé nftables: aucun changement.
Par contre le ping fonctionne toujours.

Denis

Je ne vois pas le rapport entre telnet et postfix. Postfix n’utilise ni le protocole Telnet, ni le programme client telnet.
Pourrais-tu préciser en donnant un exemple de commande et son résultat ?

Comment ?
Et iptables ?

J’ai désactivé nftables en faisant:

nft flush ruleset

puis

sudo service nftables stop

Pas de iptables sur mon serveur.

telnet via quel port(s)?
et ssh? ftp?

Bonjour,

Il n’y a effectivement aucun rapport entre telnet et postfix. Il faut donc expliquer précisément ce que tu fais et ce qui ne fonctionne pas.
Si tu utilises telnet pour tester la connectivité et l’envoi/réception de courriel vers d’autres serveurs en SMTP ou IMAP, il faut indiquer les commandes utilisées et les retours d’erreur.

En fait, je me suis aperçu que mon serveur smtp n’envoyait plus les mails avec cette erreur : connect to alt2.gmail-smtp-in.l.google.com[142.250.4.26]:25: Connection timed out
J’ai donc testé avec telnet sur le port 25 avec ce serveur : même résultat.
Depuis j’ai testé google en telnet sur le port 80 et çà fonctionne.
Il n’y a pas que ce serveur mail, mais tous les serveurs mails qui font le même message d’erreur.
Avant la « panne » je n’ai rien fait, le soucis est apparu cette nuit vers 1h30.

Merci par avance pour votre aide.

Es-tu sûr que ton serveur n’a pas envoyé du spam ?
Si aucun serveur n’est accessible en SMTP, qu’aucune règle de pare-feu ne bloque les paquets sortants sur le port 25, et que tout le reste fonctionne, il est possible que ton serveur ait relayé massivement du spam et a été bloqué par ton hébergeur.

Normalement, non, il n’y a que moi à utiliser mon serveur smtp, donc à part une faille dans ma config, qui aurait permis l’envoi de spam par une personne inconnue de ma part, non.
Mais comment le savoir ?
Plus précisément, comment déterminer que c’est mon hébergeur (OVH dans la cas présent) qui à bloqué le port 25, sans leur demander (en fait je leur ai demandé, mais je ne m’attends pas à une réponse rapide de leur part)

Bon, j’ai revérifié les logs, et j’ai trouvé, par exemple:

host mta7.am0.yahoodns.net[67.195.204.77] said: 421 4.7.0 [TSS04] Messages from 91.121.26.147 temporarily deferred due to user complaints - 4.16.55.1; see https://help.yahoo.com/kb/postmaster/SLN3434.html (in reply to MAIL FROM command)

Ce qui semblerait bien signifié que mon serveur ai envoyé, à mon insu, des spams.
J’ai donc stoppé mon serveur.
Est-ce que je peux vous poster ma configuration postfix et/ou nftables pour me dire ce qui a permis cela et comment le corriger ?

Si c’est OVH qui a bloqué ton serveur, il ont dû t’envoyer un courriel sur ton adresse de contact.

Tu peux donner ta configuration postfix, nftables est inutile.

Ok, vérifié et c’est bien OVH qui bloque suite à des spams de mon serveur.
Donc pour la configuration de mon serveur postfix:
main.cf:

# 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 = no

# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
# fresh installs.
compatibility_level = 2



# TLS parameters
smtpd_tls_cert_file = /etc/postfix/postfix.cert.pem
smtpd_tls_key_file = /etc/postfix/postfix.key.pem
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.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = ks24828.kimsufi.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = $myhostname, packer-output-6e3cdd91-54da-41dd-bd84-0d9d0f3a41d3, ks24828.kimsufi.com, localhost.kimsufi.com, localhost
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
virtual_alias_maps = hash:/etc/postfix/virtual
sender_bcc_maps = hash:/etc/postfix/bcc
mailbox_command = /usr/bin/procmail-wrapper -o -a $DOMAIN -d $LOGNAME
home_mailbox = Maildir/
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination check_policy_service inet:127.0.0.1:10023
smtp_tls_security_level = dane
allow_percent_hack = no
smtpd_tls_CAfile = /etc/postfix/postfix.ca.pem
smtpd_tls_security_level = may
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1

# DKIM + DMARC
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:12345,inet:localhost:54321
non_smtpd_milters = $smtpd_milters

et master.cf:

#
# Postfix master process configuration file.  For details on the format
# of the file, see the master(5) manual page (command: "man 5 master" or
# on-line: http://www.postfix.org/master.5.html).
#
# Do not forget to execute "postfix reload" after editing this file.
#
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (no)    (never) (100)
# ==========================================================================
smtp	inet	n	-	y	-	-	smtpd -o smtpd_sasl_auth_enable=yes
#smtp      inet  n       -       y       -       1       postscreen
#smtpd     pass  -       -       y       -       -       smtpd
#dnsblog   unix  -       -       y       -       0       dnsblog
#tlsproxy  unix  -       -       y       -       0       tlsproxy
#submission inet n       -       y       -       -       smtpd
#  -o syslog_name=postfix/submission
#  -o smtpd_tls_security_level=encrypt
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_tls_auth_only=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=
#  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
smtps	inet	n	-	y	-	-	smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_reject_unlisted_recipient=no -o smtpd_client_restrictions=$mua_client_restrictions -o smtpd_helo_restrictions=$mua_helo_restrictions -o smtpd_sender_restrictions=$mua_sender_restrictions -o smtpd_recipient_restrictions= -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING
#628       inet  n       -       y       -       -       qmqpd
pickup    unix  n       -       y       60      1       pickup
cleanup   unix  n       -       y       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
#qmgr     unix  n       -       n       300     1       oqmgr
tlsmgr    unix  -       -       y       1000?   1       tlsmgr
rewrite   unix  -       -       y       -       -       trivial-rewrite
bounce    unix  -       -       y       -       0       bounce
defer     unix  -       -       y       -       0       bounce
trace     unix  -       -       y       -       0       bounce
verify    unix  -       -       y       -       1       verify
flush     unix  n       -       y       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       y       -       -       smtp
relay     unix  -       -       y       -       -       smtp
        -o syslog_name=postfix/$service_name
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       y       -       -       showq
error     unix  -       -       y       -       -       error
retry     unix  -       -       y       -       -       error
discard   unix  -       -       y       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       y       -       -       lmtp
anvil     unix  -       -       y       -       1       anvil
scache    unix  -       -       y       -       1       scache
postlog   unix-dgram n  -       n       -       1       postlogd
#
# ====================================================================
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# Many of the following services use the Postfix pipe(8) delivery
# agent.  See the pipe(8) man page for information about ${recipient}
# and other message envelope options.
# ====================================================================
#
# maildrop. See the Postfix MAILDROP_README file for details.
# Also specify in main.cf: maildrop_destination_recipient_limit=1
#
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
#
# ====================================================================
#
# Recent Cyrus versions can use the existing "lmtp" master.cf entry.
#
# Specify in cyrus.conf:
#   lmtp    cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
#
# Specify in main.cf one or more of the following:
#  mailbox_transport = lmtp:inet:localhost
#  virtual_transport = lmtp:inet:localhost
#
# ====================================================================
#
# Cyrus 2.1.5 (Amos Gouaux)
# Also specify in main.cf: cyrus_destination_recipient_limit=1
#
#cyrus     unix  -       n       n       -       -       pipe
#  user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
#
# ====================================================================
# Old example of delivery via Cyrus.
#
#old-cyrus unix  -       n       n       -       -       pipe
#  flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
#
# ====================================================================
#
# See the Postfix UUCP_README file for configuration details.
#
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# Other external delivery methods.
#
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}

submission	inet	n	-	y	-	-	smtpd -o smtpd_sasl_auth_enable=yes
smtps	inet	n	-	y	-	-	smtpd -o smtpd_sasl_auth_enable=yes -o smtpd_tls_wrappermode=yes

Dis moi si besoin d’autres fichiers.

La configuration n’est ni très propre, ni très sécurisée, mais a priori seule la machine locale et les utilisateurs authentifiés peuvent envoyer des courriels vers n’importe quelle destination.
Si ton serveur a servi à relayer des spams c’est donc soit à cause d’un utilisateur qui a un mot de passe faible qui a été « cassé » par force brute, soit à cause d’un script quelconque (un site web par exemple) présentant une grosse faille de sécurité.
Il faut examiner tes logs pour savoir quel utilisateur a envoyé du spam.

J’ai examiné les logs, et j’ai supprimé l’utilisateur qui a envoyé les spams (en fait je lui ai donné une nouvelle adresse et un nouveau mot de passe (plus fort).
J’ai trois sites web (deux WP et un prestashop, tous les trois à jour), mais aucun n’utilisait cette adresse email.
D’un autre coté, je me suis aussi renseigner pour renforcer la sécurité, et j’ai trouvé ce site: https://www.milbako.com/postfix-securite-et-confidentialite-guide-de-renforcement/

Mais je bloque des la première étape, comment/quelle valeur pour ces trois paramètres manquent et les signification exactes ?

postconf 1> /dev/null
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_sender_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_client_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_helo_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_sender_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_client_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_helo_restrictions

Parmi les problèmes de configuration il y a :

  • des entrées en double pour les transports submission et smtps dans master.cf ;
  • l’utilisation de variables de configuration $mua_*** non définies ;
  • des règles de filtrage sur le destinataire (smtpd_relay_restrictions et smtpd_recipient_restrictions) mais aucune sur le client et sur l’expéditeur ;
  • un nom d’hôte plus que curieux comme destination finale des courriels (mydestination) ;
    etc.

J’ai corrigé les erreurs mentionnées, et j’ai rajouté les trois lignes suivantes pour limiter les envois par mon serveur:

anvil_rate_time_unit = 3600 # 3600 s = 1h
smtpd_client_message_rate_limit = 60 # 60 envois /h
smtpd_recipient_limit = 10  # maxi 10 destinataires

J’ai débloqué le port 25 auprès d’OVH et relancé mon serveur postfix, tout fonctionne.

Un grand merci à toi.

Bonjour,
Pour la sécurisation de ton serveur, il faut mettre en place un accès SSH par Clé, Iptables pour filtrer les ports et Fails2ban pour bloquer les tentatives de piratage.

Telnet est un protocole déconseiller de nos jours.

postconf 1> /dev/null
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_sender_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_client_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_helo_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_sender_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_client_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_helo_restrictions

Le retour des lignes indiques juste des valeurs non identifiées ou pas configurer .

Regarde du côté de la configuration de ton fichier conf.

Bonjour,

Merci pour ces nouveaux conseils, mes mon serveur est déjà sécurisé avec fail2ban et portsentry.
Comme indiqué, je n’utilise pas iptables, mais nftables (son remplaçant).
Enfin mon accès SSH est déja avec clé, root étant interdit de connexion directe.

Je demandais juste de l’aide sur la sécurisation de postfix.