Postfix / Dovecot / Raspbian empfängt keine E-Mails von außen, nur IPv6

508
KaitoCross

Hey alle zusammen :) Ich experimentiere mit meinem Raspberry Pi, um ihn als Mailserver einzurichten. Ich verwende dynv6.net nur als dynamischen DNS-Provider für IPv6, da ich nur Dual Stack Lite zu Hause habe. Die Ports für den E-Mail-Server sind geöffnet. Und ich kann E-Mails an anyadress@mail.de über den Pi senden (verwendet IPv6), die gut ankommen. Ich kann jedoch keine E-Mails von außen erhalten. Der DNS-MX-Eintrag ist für diese Domäne festgelegt. Ich erhalte bis jetzt keine Fehler von meinem E-Mail-Anbieter. Können Sie mir bitte helfen, den Fehler zu finden? Hier ist meine main.cf von postfix:

 ## See /usr/share/postfix/main.cf.dist for a commented, more complete version  inet_protocols = ipv6  # 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 (Raspbian) 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/ssl/certs/emailserv.crt smtpd_tls_key_file=/etc/ssl/private/emailserv.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:$/smtpd_scache smtp_tls_session_cache_database = btree:$/smtp_scache smtpd_tls_received_header = yes smtpd_tls_mandatory_protocols = SSLv3, TLSv1 smtpd_tls_mandatory_ciphers = medium smtpd_tls_auth_only = yes tls_random_source = dev:/dev/urandom   # 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 = Kaito-RasPi mydomain = futuregadgetlab.dynv6.net alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases mydestination = $myhostname, Kaito-RasPi, localhost.localdomain, localhost, futuregadgetlab.dynv6.net #relayhost =  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 home_mailbox = Maildir/ smtpd_sasl_auth_enable = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/dovecot-auth smtpd_sasl_authenticated_header = yes smtpd_sasl_local_domain = $myhostname broken_sasl_auth_clients = yes smtpd_recipient_restrictions = reject_unknown_sender_domain reject_unknown_recipient_domain reject_unauth_pipelining permit_mynetworks permit_sasl_authenticated reject_unauth_destination smtpd_sender_restrictions = reject_unknown_sender_domain permit_sasl_authenticated mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/conf.d/01-mail-stack-delivery.conf -m "$" virtual_alias_maps = hash:/etc/postfix/virtual 

und hier 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 smtps inet n - y - - smtpd #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_reject_unlisted_recipient=no # -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -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 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 # # ==================================================================== # 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 $ # 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 $ # # ==================================================================== # # 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 $ -m $ $ # # ==================================================================== # Old example of delivery via Cyrus. # #old-cyrus unix - n n - - pipe # flags=R user=cyrus argv=/cyrus/bin/deliver -e -m $ $ # # ==================================================================== # # 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 $ $ $ mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py $ $ 
1
Haben Sie Mails von anderen Anbietern getestet? Möglicherweise unterstützt der von Ihnen getestete Provider das Senden über IPv6 noch nicht. Wenn Sie den Domänennamen erwähnt haben, können Sie sehen, wie Sie Ihre DNS-Einträge konfiguriert haben, und Ihnen mitteilen, ob ein Problem vorliegt. kasperd vor 6 Jahren 0
Ich bin noch nicht vielen IPv6-fähigen Anbietern begegnet. Ich habe einen anderen Server (nur IPv6, gleiche Konfiguration wie oben) bei meinen Freunden eingerichtet, um das Senden von dort zu testen. Funktioniert, wenn ich an mail.de nicht meinen eigenen Mailserver schicke. Domäne meines eigenen Webservers: futuregadgetlab.dynv6.net vor 6 Jahren 0
Und für welche Domain möchten Sie E-Mails erhalten? Sander Steffann vor 6 Jahren 0
Ich möchte E-Mails auf und für futuregadgetlab.dynv6.net erhalten, was mein Himbeer-Pi ist. Der Server des Freundes ist lernsquad.dynv6.net, der zurzeit offline ist. vor 6 Jahren 0
@KaitoCross Das erste Problem, das ich sehe, ist, dass die autorisierenden DNS-Server für dynv6.net beschädigte DNS-Antworten senden. `dig + norecurse mx futuregadgetlab.dynv6.net @ ns1.dynv6.net` gibt die Antwort mit einer Warnung aus. Die meisten Rekursoren melden jedoch SERVFAIL, wenn sie die korrupte Antwort sehen. kasperd vor 6 Jahren 0

1 Antwort auf die Frage

2
kasperd

Ihr Problem scheint zu sein, dass die autorisierenden DNS-Server dynv6.netbeschädigte DNS-Antworten senden. Das habe ich gesehen, als ich zum ersten Mal versuchte, Ihren MX-Record aufzulösen:

$ dig mx futuregadgetlab.dynv6.net  ; <<>> DiG 9.10.3-P4-Ubuntu <<>> mx futuregadgetlab.dynv6.net ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 7934 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1  ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;futuregadgetlab.dynv6.net. IN MX  ;; Query time: 219 msec ;; SERVER: 127.0.1.1#53(127.0.1.1) ;; WHEN: Mon Oct 09 08:19:58 BST 2017 ;; MSG SIZE rcvd: 54 

Ich habe ein paar verschiedene Rekursoren getestet, die mir alle dieselbe SERVFAILAntwort gaben . Bei Systemen, die versuchen, E-Mails an die Domäne zu senden, werden E-Mails in die Warteschlange gestellt, bis das Problem behoben ist (und wenn das Problem einige Tage bestehen bleibt, werden die E-Mails abprallen).

Um herauszufinden, warum ich eine SERVFAILAntwort erhalten habe, habe ich die Suchvorgänge manuell durchgeführt, beginnend mit der Wurzel und nach unten durchgearbeitet. Als ich dazu kam, bekam ns1.dynv6.netich diese Warnung über beschädigte DNS-Antwortpakete.

$ dig +norecurse mx futuregadgetlab.dynv6.net @ns1.dynv6.net ;; Warning: Message parser reports malformed message packet.  ; <<>> DiG 9.10.3-P4-Ubuntu <<>> +norecurse mx futuregadgetlab.dynv6.net @ns1.dynv6.net ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25407 ;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: Message has 2 extra bytes at end  ;; QUESTION SECTION: ;futuregadgetlab.dynv6.net. IN MX  ;; Query time: 19 msec ;; SERVER: 2a03:4000:10:1db::#53(2a03:4000:10:1db::) ;; WHEN: Mon Oct 09 08:23:22 BST 2017 ;; MSG SIZE rcvd: 82 

Bis die DNS-Server für dynv6.netfestgelegt sind, sollten Sie nicht erwarten, dass eine legitime E-Mail durchgeht. Das Problem scheint nur die MXSuche zu betreffen . Mindestens Aund AAAALookups funktioniert gut. Die Verbindung zum Port 25 der Adresse aus der AAAASuche funktioniert ebenfalls.

Für das, was es wert ist, scheitert für mich auch der A-Rekord. Keine "MX" - oder "A" -Datensätze, sondern ein gültiger "AAAA" -Datensatz würde erklären, warum nichts von v4 E-Mails senden kann, aber zumindest einige v6-fähige Apps (dh diejenigen, die schlau genug sind, auf eine "AAAA" zurückzugreifen `Record in Abwesenheit von 'MX`) kann dies tun. MadHatter vor 6 Jahren 0
Es gibt absichtlich keine A-Aufzeichnung, da ich kein eigenes IPv4 für meinen Haushalt habe. Ich sitze hinter einem NAT-Netzbetreiber, der den IPv4-Zugriff kontrolliert. vor 6 Jahren 0
@MadHatter Es gibt einen Unterschied zwischen der fehlgeschlagenen Suche und der Meldung, dass kein Datensatz vorhanden ist. Welche der beiden haben Sie jeweils gesehen? kasperd vor 6 Jahren 0
Genau. Im Falle des `MX`-Datensatzes ein Fehler, wie Sie gesehen haben. Im Fall des `A`-Datensatzes wurde im Gegensatz zu dem, was Sie gesehen haben, kein Datensatz zurückgegeben (vorausgesetzt, dass" * `A`-Lookup funktioniert gut *" bedeutet, dass Sie einen Datensatz erhalten haben). MadHatter vor 6 Jahren 0
@ KaitoCross, sagen Sie, Sie wussten, dass Sie keine IPv4-Adresse hatten, und trotzdem überrascht es Sie, dass Sie nur E-Mails von V6-fähigen Servern erhalten haben? MadHatter vor 6 Jahren 0
Ich hatte nie vor, E-Mails von V4-Servern zu erhalten. mail.de ist v6-fähig. und ich habe nie Post von V6-fähigen erhalten. laut dem anbieter ist das problem nun behoben. Können Sie es bitte überprüfen? KaitoCross vor 6 Jahren 0
@MadHatter By funktioniert gut Ich meine, der Server sendet eine korrekte Antwort. Im Falle der A-Suche war die Antwort leer. kasperd vor 6 Jahren 0
@ KaitoCross Ja, die Suche nach 'MX' funktioniert jetzt. Ich habe gerade bestätigt, dass es möglich ist, eine E-Mail an den Server zu senden. kasperd vor 6 Jahren 0