Beim Versuch, einen Mailserver einzurichten, können die Ports (25, 587) nicht funktionieren


9

Ich habe überall gesucht und ich habe wirklich Probleme mit diesem. Ich glaube, ich habe so ziemlich alles versucht.

Hintergrundinformation

  • VPS mit CentOS 6.7
  • Postfix 2.6.6
  • Taubenschlag, Amavis, MySQL, Fail2Ban
  • Ich habe bei meinem VPS-Anbieter überprüft, dass er keine Ports blockiert.

Dinge, die ich getan habe

  • Lager sendmail entfernt
  • Ich habe Postfix, Dovecot, MySQL usw. für eine vollständige Mail-Lösung installiert
  • Ich erlaube nur imap, smtp mit STARTTLS (Ports 143 und 587)
  • SSH-Anmeldungen deaktiviert, nur mit Schlüsseln
  • Ich kann Mails empfangen (über Port 143)
  • Ich kann von localhost zu beiden Ports (587, 25) telneten und erhalte eine Postfix-Begrüßung
  • Wenn ich versuche, eine Verbindung zu 587 oder 25 (Mail-Client oder Telnet) herzustellen, erhalte ich keine Antwort, dh kein Verbindungszeitlimit

Dinge, die ich versucht habe

1) Sind die Ports geöffnet? Ja, 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) Lauscht Postfix Port 587? Ja. Hört es nur auf localhost? Nein, irgendein Gastgeber.

Hier ist 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

Und hier ist auch die postfix / main.cf, nur für den Fall:

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

# Enable all network interfaces.
inet_interfaces = all

3) Erzwingen Sie sichere Verbindungen korrekt? Nach meinem besten Wissen, ja, hier ist die 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) Was ist mit SMTPD-Einschränkungen? Scheint in Ordnung:

# 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) Funktioniert Postfix überhaupt richtig?

Ja, das Anmelden am Server und das Senden von Testmail von der Konsole funktioniert und E-Mail wird am anderen Ende empfangen, dh:

echo "Test mail from postfix" | mail -s "Test Postfix" user@something.com

6) Was passiert beim Anschließen an Port 587?

Anscheinend gar nichts. Wenn ich versuche, an einen zufälligen Port zu telneten, bekomme ich zumindest etwas. Wenn Sie beispielsweise versuchen, Telnet an Port 666 (der nicht geöffnet ist) zu senden, erhalten Sie keine Antwort an den Client, aber zumindest erhalte ich etwas in 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

Beim tcpdumping von Port 587 passiert absolut nichts, wenn versucht wird, eine Telnet-Verbindung herzustellen.

Was fehlt mir noch?

Alles darüber erschöpft mein Wissen über die Dinge, die ich noch versuchen kann. Ich habe es geschafft, es an meinen Port 587 zu nageln, der durch etwas vollständig blockiert ist. Wie gesagt, mein VPS-Anbieter hat bestätigt, dass er überhaupt keine Ports blockiert. Ich habe Port 25 ausprobiert und es ist die gleiche Geschichte.

Das einzige andere, was ich sehen kann, ist, dass ich diese Ports beim Einrichten meines Servers irgendwie blockiert habe, aber ich kann mich nicht erinnern, ob dies der Fall ist, und ich weiß nicht, wie ich das testen soll.

Ich würde mich sehr über jede Hilfe freuen, die Sie mir geben können. Tatsächlich kaufe ich ein Bier für jeden, der mir bei der Lösung hilft . Ich habe bereits zwei Tage damit verschwendet und es wird langsam sehr nervig.


3
Könnten Sie die iptablesobige Ausgabe durch die von iptables -L -n -v, vollständig und unredaktiert ersetzen? Angesichts Ihrer tcpdupmpTests und der Zusicherung Ihres Anbieters, dass ich 25 und 587 nicht eingehend blockiere , ist es auch möglich, dass der Ort, an dem Sie testen, von Block 25 und 587 ausgehend blockiert wird . Wenn Sie die IP-Adresse angegeben haben, ist es viel einfacher, diese Hypothese zu bestätigen oder abzulehnen.
MadHatter

Danke für Ihre Antwort. Klar, ich habe meinen Beitrag bearbeitet. Hmm, ich habe nie daran gedacht, dass Ports an meinem Ende blockiert werden, das ist eine gute Idee. Ich werde versuchen, dies zu testen.
Reachergilt

1
@ MadHatter, du warst völlig richtig auf blockierten Ports auf meiner Seite. Es stellte sich heraus (nach vielen Anrufen), dass der Administrator des VPN meines Unternehmens beschlossen hat, bestimmte Ports zu blockieren, wobei 25 und 578 einer von ihnen sind, andere jedoch nicht. Dies erklärt, warum ich noch nie solche Probleme hatte und nicht einmal darüber nachdachte. Mein Server hat wahrscheinlich schon in den letzten Tagen einwandfrei funktioniert, als ich den Verstand darüber verlor. Wenn Sie möchten, können Sie als echte Antwort posten und ich werde es akzeptieren. Bitte senden Sie mir auch Ihre PayPal-Informationen (oder ähnliche Informationen) per PM. Sie haben wirklich eine große Erkältung verdient, Gott weiß, wann ich es herausfinden würde.
Reachergilt

Ich habe es aufgeschrieben, damit Sie die Antwort akzeptieren können - denn sonst wird die Frage für immer herumschwirren, und das ist schlecht. Dies könnte auch in Zukunft für andere von Nutzen sein. Ich meinte, was ich in meiner Antwort darüber sagte, dass Sie den größten Teil der Ermittlungsarbeit bereits geleistet haben (mehr Macht für Sie!), Aber wenn Sie sich verpflichtet fühlen, mir ein Bier zu schicken , finden Sie meine Kontaktdaten auf meiner persönlichen Website über mein Profil.
MadHatter

Fertig und nochmals vielen Dank für Ihre Hilfe. Sie haben mir wahrscheinlich Stunden, wenn nicht Tage verschwendeter Zeit gespart. Ich melde mich morgen bei Ihnen und habe Ihre Website bereits überprüft.
Reachergilt

Antworten:


4

Reachergilt, willkommen bei SF, und vielen Dank für eine hervorragende erste Frage. Sie mögen das Gefühl haben, dass wir Sie gerettet haben, aber ehrlich gesagt - Sie haben bereits das ganze schwere Heben getan und es sehr systematisch präsentiert. Mit einer solchen forensischen Denkweise hoffe ich, dass Sie noch einige Zeit in diesen Bereichen bleiben.

Die tcpdumpAusgabe ist besonders schädlich. Es zeigt sich zweifelsfrei, dass Ihre Verbindungsversuche nicht einmal Ihren Server erreichen, wodurch die Firewall des Servers, postfixdie Bindungen und alles andere serverseitig entlastet werden .

Mit diesem Zeiger sind Sie weggegangen und haben bestätigt, dass Ihre ausgehenden Verbindungen blockiert wurden, sodass Ihre Tests nie bis zu Ihrem Server gelangten. Es ist ziemlich (deprimierend) normal, dass 25 (und in geringerem Maße 587) von modernen Netzwerken ausgehend blockiert werden, weil Spam-sendende Botnets sie verwenden.

Auf jeden Fall sind Sie jetzt froh, dass Ihr neuer Mailserver wie angekündigt funktioniert, und das ist gut so.


3
Ja, mein Beitrag ist eine nette Checkliste für alle, die ähnliche Probleme haben. Komisch genug, weil ich dachte, dass etwas mit meinem Server nicht stimmt, habe ich alles von A bis Z vierfach überprüft, damit ich hier alles dokumentieren kann.
Reachergilt
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.