Essayer de configurer le serveur de messagerie, impossible de faire fonctionner les ports (25, 587)

9

J'ai cherché partout et j'ai vraiment du mal avec celui-ci. Je pense que j'ai essayé à peu près tout.

Informations de fond

  • VPS avec CentOS 6.7
  • Postfix 2.6.6
  • pigeonnier, amavis, mysql, fail2ban
  • J'ai vérifié auprès de mon fournisseur VPS qu'ils ne bloquent aucun port.

Les choses que j'ai faites

  • Sendmail stock supprimé
  • J'ai installé postfix, dovecot, mysql etc. pour une solution de messagerie complète
  • J'autorise uniquement imap, smtp avec STARTTLS (ports 143 et 587)
  • Connexions SSH désactivées, uniquement avec des clés
  • Je peux recevoir des mails (via le port 143)
  • Je peux telnet de localhost aux deux ports (587, 25) et je reçois un message d'accueil postfix
  • Essayer de me connecter au 587 ou 25 (client de messagerie ou telnet) ne me donne aucune réponse, c.-à-d.

Les choses que j'ai essayées

1) Les ports sont-ils ouverts? Oui, iptables:

Chain INPUT (policy DROP 11 packets, 1375 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:587
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:587
   25  2579 f2b-dovecot  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 110,995,143,993,587,465,4190
   68  7788 f2b-postfix  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 25,465,587
    0     0 f2b-sshd   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 22
   25  2579 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:143
    7   600 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:8080
23464 2662K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
   49  2940 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 8
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:3915
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:443
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:143
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:587
    5   300 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:25

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 23235 packets, 2494K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain f2b-dovecot (1 references)
 pkts bytes target     prot opt in     out     source               destination
   25  2579 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain f2b-postfix (1 references)
 pkts bytes target     prot opt in     out     source               destination
   68  7788 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain f2b-sshd (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

2) Postfix écoute-t-il sur le port 587? Oui. Écoute-t-elle uniquement sur localhost? Non, tout hôte.

Voici netstat:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:25                  0.0.0.0:*                   LISTEN      7173/master
tcp        0      0 0.0.0.0:443                 0.0.0.0:*                   LISTEN      917/httpd
tcp        0      0 127.0.0.1:4190              0.0.0.0:*                   LISTEN      749/dovecot
tcp        0      0 0.0.0.0:587                 0.0.0.0:*                   LISTEN      7173/master
tcp        0      0 0.0.0.0:143                 0.0.0.0:*                   LISTEN      749/dovecot
tcp        0      0 127.0.0.1:24                0.0.0.0:*                   LISTEN      749/dovecot

Et voici également le postfix / main.cf, juste au cas où:

# Enable both IPv4 and/or IPv6: ipv4, ipv6, all.
inet_protocols = ipv4

# Enable all network interfaces.
inet_interfaces = all

3) Forcer correctement les connexions sécurisées? Au meilleur de ma connaissance, oui, voici le postfix / master.cf:

# Submission, port 587, force TLS connection.
submission inet n       -       n       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
  -o content_filter=smtp-amavis:[127.0.0.1]:10026

4) Qu'en est-il des restrictions smtpd? Semble ok:

# HELO restriction
smtpd_helo_required = yes
smtpd_helo_restrictions =
    permit_mynetworks
    permit_sasl_authenticated
    reject_non_fqdn_helo_hostname
    reject_invalid_helo_hostname
    check_helo_access pcre:/etc/postfix/helo_access.pcre

5) Postfix fonctionne-t-il correctement?

Oui, la connexion au serveur et l'envoi de courrier de test à partir de la console fonctionne et le courrier électronique est reçu à l'autre extrémité, à savoir:

echo "Test mail from postfix" | mail -s "Test Postfix" [email protected]

6) Que se passe-t-il lors de la connexion sur le port 587?

Apparemment, rien du tout. Si j'essaye de telnet à n'importe quel port aléatoire, j'obtiens au moins quelque chose. Par exemple, essayer de telnet sur le port 666 (qui n'est pas ouvert) ne produit aucune réponse au client, mais au moins j'obtiens quelque chose dans tcpdump:

15:22:20.305697 IP xxx > xxx.com.mdqs: Flags [S], seq 3195304468, win 8192, options [mss 1352,nop,wscale 8,nop,nop,sackOK], length 0

Lorsque tcpdumping port 587, absolument rien ne se passe lorsque vous essayez de vous y telnet.

Que me manque-t-il encore?

Tout ce qui précède épuise ma connaissance des choses que je peux encore essayer. J'ai réussi à le fixer à mon port 587 complètement bloqué par quelque chose. Comme je l'ai dit, mon fournisseur VPS a confirmé qu'il ne bloquait aucun port. J'ai essayé le port 25 et c'est la même histoire.

La seule autre chose que je peux voir, c'est que j'ai en quelque sorte bloqué ces ports lors de la configuration de mon serveur, mais je ne me souviens pas si c'est le cas et je ne sais pas comment tester cela.

J'apprécierais vraiment toute aide que vous pourriez me donner. En fait, j'achète une bière pour celui qui m'aide à résoudre ce problème , j'ai déjà perdu deux jours dessus et ça commence à devenir vraiment ennuyeux.

reachergilt
la source
3
Pourriez-vous remplacer la iptablessortie ci-dessus par celle de iptables -L -n -v, entière et non supprimée? De plus, étant donné vos tcpdupmptests et l'assurance de votre fournisseur que je ne bloque pas les entrées 25 et 587 , il est également possible que l'endroit que vous testez à partir des blocs 25 et 587 sortants . Si vous avez publié l'adresse IP, il serait beaucoup plus facile de confirmer ou d'infirmer cette hypothèse.
MadHatter
Merci d'avoir répondu. Bien sûr, j'ai édité mon message. Hmm, je n'ai jamais pensé à des ports bloqués de mon côté, c'est une bonne idée. Je vais essayer de tester ça.
reachergilt
1
@MadHatter, vous aviez complètement raison sur les ports bloqués de mon côté. Il s'est avéré (après de nombreux appels) que l'administrateur du VPN de mon entreprise a décidé de bloquer certains ports, 25 et 578 étant l'un d'entre eux, mais pas d'autres. Cela explique pourquoi je n'ai jamais eu de tels problèmes auparavant et n'y ai même pas pensé. Mon serveur fonctionnait probablement déjà très bien ces deux derniers jours alors que je perdais la tête. Si vous le souhaitez, vous pouvez poster comme une vraie réponse et je l'accepterai. Aussi, s'il vous plaît envoyez-moi vos informations PayPal (ou similaire), vous méritez vraiment un grand froid, Dieu sait quand je le comprendrai.
reachergilt
Je l'ai écrit, donc vous pouvez accepter la réponse - parce que sinon la question flottera pour toujours, et c'est mauvais. En outre, cela pourrait bien être utile à d'autres à l'avenir. Je voulais dire ce que j'ai dit dans ma réponse au sujet du fait que vous avez déjà fait la plupart du travail d'enquête (plus de pouvoir pour vous!) Mais si vous vous sentez lié par l'honneur de m'envoyer une bière, vous pouvez trouver mes coordonnées sur mon site Web personnel, via mon profil.
MadHatter
Fait et merci encore pour votre aide, vous m'avez probablement fait gagner des heures sinon des jours de temps perdu. Je vous contacterai demain, déjà vérifié votre site Web.
reachergilt

Réponses:

4

Reachergilt, bienvenue à SF et merci pour une excellente première question. Vous pensez peut-être que nous vous avons sauvé, mais honnêtement - vous aviez déjà fait tout le gros du travail et l'aviez présenté de manière très systématique. Avec un état d'esprit médico-légal comme ça, j'espère que vous resterez autour de ces parties pendant un certain temps à venir.

La tcpdumpsortie est particulièrement accablante. Cela prouve hors de tout doute raisonnable que vos tentatives de connexion n'atteignent même pas votre serveur, ce qui exonère le pare-feu du serveur, postfixses liaisons et tout le reste côté serveur.

Armé de ce pointeur, vous êtes parti et avez confirmé que vos connexions sortantes étaient bloquées, donc vos tests n'atteignaient jamais votre serveur. Il est assez (déprimant) normal que 25 (et dans une moindre mesure, 587) soient bloqués à la sortie des réseaux modernes, car les botnets d'envoi de spam les utilisent.

En tout cas, vous êtes maintenant heureux que votre nouveau serveur de messagerie fonctionne comme annoncé, et c'est bien.

Chapelier Fou
la source
3
Oui, mon message fait une belle liste de contrôle pour toute personne ayant des problèmes similaires. Assez drôle, parce que je pensais que quelque chose n'allait pas avec mon serveur, j'ai quadruplé tout vérifié de A à Z, me permettant de tout documenter ici.
reachergilt