Mailserver und Spamschutz in Zeiten von IPv6

Sieben sinnlos

Im Prinzip ist IPv6 auf Mailservern ja kein Problem. Doch im Detail stellt sich die Frage: Spamschutz und IPv6, verträgt sich das?
Mit E-Mail-Diensten muss sich jeder Administrator früher oder später einmal beschäftigen. Das zur CeBIT erscheinende ADMIN 02/2012 gibt dazu Praxis-Tipps und ... (mehr)

Die Einschläge kommen näher: Nach dem Testlauf am "World IPv6-Day" im Juni 2011 droht nun der finale "World IPv6 Launch Day" an 6. Juni 2012, bei dem IPv6 im großen Stile produktiv genutzt werden soll. Höchste Zeit, sich einmal die Tauglichkeit eines Mail-Relays mit Anti-Spam-Schutz und IPv6 anzuschauen. Schon lange haben Distributionen wie Open Suse nach der Installation neben IPv4 auch IPv6 aktiviert, bieten also einen sogenannten Dual Stack. Wird dort eine Software ohne nähere Konfiguration angewiesen, einen TCP-Port zu öffnen, geschieht das in der Regel in beiden Bereichen gleichzeitig. So auch bei dem populären Mailserver Postfix, den wir hier exemplarisch beleuchten.

Postfix erfährt über den Parameter »inet_protocols« welche Protokolle er unterstützen soll: Für den Dual Stack trägt der Administrator »inet_protocols=all« in seine »main.cf« ein, denn oft ist dieser Parameter zunächst auf »inet_protocols=ipv4« gesetzt. Damit Postfix nicht nur auf »localhost« , sondern auch auf anderen IP-Adressen seine Ports öffnet, muss außerdem »inet_interfaces=all« in der »main.cf« gesetzt sein – aber das war ja bereits unter IPv4 so. Nach einem Neustart von Postfix lässt sich mittels »lsof -i :25« sehr leicht überprüfen, unter welchen Protokollen und IP-Adressen der Port 25 geöffnet wurde (Listing 1). Wer statt »lsof« lieber »netstat« mag, der kann sich ein vergleichbares Ergebnis mit »netstat -tulpen« anzeigen lassen.

Listing 1

Offener SMTP-Port

 

localhost ist nicht localhost

Bei den ersten Tests, aber auch im laufenden Betrieb, muss sich der Administrator immer wieder klarmachen, dass es nunmehr unter einem Hostnamen zwei verschiedene IP-Adressen geben kann: »mail.example.com« kann nun sowohl die IPv4-Adresse eines Systems (A-Record: 192.168.5.12), aber auch die IPv6-Adresse repräsentieren (AAAA-Record: 2001:DB8::1). Beide IP-Adressen können auf ein und denselben Host zeigen, der im Dual Stack-Modus betrieben wird. Genauso gut könnten sie jedoch auch auf zwei verschiedene Systeme verweisen – so lässt sich leicht ein IPv6-Testsystem parallel zu einem bereits vorhandenen IPv4-Relay aufbauen, (Abbildung 1).

Doch Vorsicht: Auch »localhost« kann im Dual Stack nun eine zweideutige Bedeutung bekommen: Neben der IPv4-Adresse 127.0.0.1 könnte auch die IPv6-Variante [::1] gemeint sein. Wer genau hinschaut, sieht schon beim Telnet-Connect an Postfix den kleinen, aber feinen Unterschied: Die Zielangabe »Trying ::1« zeigt an, dass der Connect über IPv6 abgewickelt wird.

brotkasten:/etc/postfix# telnet localhost25Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 brotkasten.heinlein-support.de ESMTP Postfix

White- oder Blacklistings in den Access Maps von Postfix, aber auch die Liste vertrauenswürdiger IP-Adressen im Parameter »mynetworks« müssen gegebenenfalls um ihre IPv6-Geschwister ergänzt werden, andernfalls könnte Postfix selbst seine eigenen IPv6-Adresse von »localhost« als fremd klassifizieren und lokal eingelieferte E-Mails mit einem »Relay Access denied« ablehnen.

Tipp: Wer auf die manuelle Konfiguration von »mynetworks« in der »main.cf« verzichtet und Postfix erlaubt, sich die Liste lokaler IP-Adressen über »mynetworks_style=subnet« automatisch zusammenzusuchen, der erreicht, dass Postfix die IPv4- und IPv6-Adressen gleichermaßen erkennt und zur Laufzeit automatisch in »mynetworks« einträgt.

mynetworks = 127.0.0.0/8 [::1]/128 [fe80::]/64

Sieht man davon ab, dass IPv6-Adressen grundsätzlich in eckigen Klammern geschrieben werden müssen, können die neuen IP-Adressen nun ganz genauso in Postfix benutzt werden wie zuvor die IPv4-Varianten. Die Einträge in einer Access Map unterscheiden sich beispielsweise kaum.

192.168.10.12 HOLD
[fe80::] HOLD

Aber auch in der »master.cf« lassen sich in komplexeren Setups einzelne SMTP-Dämonen bequem an IPv4- oder IPv6-Adressen binden, um individuelle Limitierungen oder Konfigurationen einzurichten:

[2001:67c:2050::2]:smtp inet n - y -100 smtpd -o smtpd_proxy_filter=127.0.0.1:10024

Damit sind die Besonderheiten (oder eben auch: die gar nicht vorhandenen Besonderheiten!) von IPv4/IPv6 in Postfix auch schon erledigt. Das System wird nun unter beiden Varianten Mails empfangen – aber auch versenden: Falls für die MX-Records einer Zieldomain auch AAAA-Records mit IPv6-Adressen vorhanden sind, wird Postfix zunächst versuchen, diese Server zu erreichen (Abbildung 2).

Abbildung 2: Unter einem Hostnamen können sich unter IPv4 und IPv6 auch zwei getrennte Maschinen verbergen. Im Testbetrieb ist ein MX 20 hilfreich, der nur mit IPv4 zu erreichen ist.

Vorsicht beim Dual Stack: Neben den jeweiligen Server-Systemen muss auch die Netzwerk-Infrastruktur wie die Firewall IPv6 unterstützen – und natürlich auch der Provider einen funktionierenden IPv6-Uplink bieten. Das einzelne Systeme versehentlich als IPv4 und IPv6 im Dual Stack installiert wurden, Firewall und Uplink jedoch nur IPv4 zulassen, ist derzeit ein häufiges Problem. In diesen Fällen wird Postfix seine Zustellversuche an IPv6-Ziele mit einem »Connection timed out« oder einem »host unreachable« abbrechen müssen. Ein Problem das bislang nur deshalb selten in Erscheinung getreten ist, weil es nur sehr wenige IPv6-Ziele gab. Ein Umstand, der sich in Zukunft ändern wird. Wer in Wirklichkeit gar kein IPv6-Uplink hat, sollte über den Postfix-Parameter »inet_protocols=ipv4« sicherstellen, dass Postfix nicht falschen Versuchungen unterliegt.

Wer von seinem Uplink-Provider noch kein IPv6 angeboten bekommt, aber zu Test- und Lernzwecken gerne mit IPv6 arbeiten möchte, der kann sich über einen geeigneten Tunnel-Anbieter wie [1] schnell und unkompliziert nutzbaren IPv6-Adressraum besorgen.

Das Spamfilter-Problem

Doch wie vertragen sich Spamschutz und IPv6? Die bekannte Komponente Amavis ist zunächst problemlos IPv6-tauglich. Genaugenommen spielt das jedoch auch kaum eine Rolle, denn selbst bei E-Mails, die Postfix per IPv6 empfangen hat, lässt sich Amavis an Postfix weiterhin problemlos per IPv4 anbinden: »content_filter« oder »smtpd_proxy_filter« können weiterhin auf »127.0.0.1« zeigen. IPv6-Verbindungen können problemlos mit IPv4 intern weitergereicht werden. Auch der DNS-Server muss nur unter IPv4 erreichbar sein – er kann trotzdem AAAA-Records von IPv6 auflösen.

Auch für SpamAssassin ist das genutzte Netzwerkprotokoll zunächst ohne Belang, geht es doch vorrangig darum, Inhalt und Aufbau der E-Mail zu bewerten und daraus die Spam-Wahrscheinlichkeit zu berechnen.

comments powered by Disqus

Artikel der Woche

Loadtests ohne Server

Für Loadtests der eigenen Server bietet sich die Cloud an, denn kurz getaktet lassen sich dort viele Rechnerinstanzen starten, die das eigene Budget nur wenig belasten. Noch flexibler, günstiger und besser skalierbar sind Tests mit einer Serverless-Infrastruktur wie AWS Lambda. Wir führen vor, wie Sie dort mit Serverless Artillery eigene Loadtests starten. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Container

Wie setzen Sie Container ein?

  • Gar nicht
  • Docker standalone
  • Docker mit Kubernetes
  • Docker mit Swarm
  • Docker mit anderem Management
  • LXC/LXD
  • Rocket
  • CRI-O auf Kubernetes
  • Container auf vSphere
  • Andere (siehe Kommentare auf der Ergebnisseite)

Google+

Ausgabe /2018

Microsite