Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung Nächste ÜberarbeitungBeide Seiten der Revision | ||
centos:mail_c7:spam_10 [04.12.2014 08:52. ] – django | centos:mail_c7:spam_10 [20.04.2018 10:32. ] – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | <WRAP center round info 75%> | ||
- | Artikel befindet sich gerade in der Bearbeitung! | ||
- | </ | ||
- | |||
====== SPF - Sender Policy Framework unter CentOS 7.x ====== | ====== SPF - Sender Policy Framework unter CentOS 7.x ====== | ||
{{: | {{: | ||
Zeile 66: | Zeile 62: | ||
Über die URL [[http:// | Über die URL [[http:// | ||
+ | <WRAP center round tip 100%> | ||
+ | **Hinweise: | ||
+ | |||
+ | Will man neben dem **SPF**-Record in Form eines TXT-Records auch noch einem **google-site-verification** TXT-Record anlegen, dann kann man nicht zwei TXT-Records für die Domain im DNS hinterlegen. Um dennoch beide Funktionenn nutzen zu können, trägt man beide Werte in einem TXT-Record ein. So z.B. < | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
===== SPF-Bewertung bei der Mailannahme ===== | ===== SPF-Bewertung bei der Mailannahme ===== | ||
+ | Neben der Befragung von [[centos: | ||
+ | |||
+ | <WRAP round tip> \\ Auf den ersten Blick erscheint der Postfix Poliyd-Daemon **pypolicyd-spf** aus dem [[centos: | ||
+ | |||
+ | Möchte man aber hingegen später **[[centos: | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== Installation ==== | ||
+ | Die einfachste und schnellste Variante bei der Installation ist die aus dem Repository **[[centos: | ||
+ | # yum install smf-spf | ||
+ | |||
+ | Will oder kann man nicht auf das Repository **[[centos: | ||
+ | # yum localinstall http:// | ||
+ | http:// | ||
+ | |||
+ | Was das RPM alle mitbrachte zeigt ein Blick in die RPM-Datenbank. | ||
+ | # rpm -qil smf-spf | ||
+ | < | ||
+ | Version | ||
+ | Release | ||
+ | Architecture: | ||
+ | Install Date: Wed 17 Dec 2014 02:01:33 PM CET | ||
+ | Group : System Environment/ | ||
+ | Size : 26876 | ||
+ | License | ||
+ | Signature | ||
+ | Source RPM : smf-spf-2.0.4-1.el7.centos.src.rpm | ||
+ | Build Date : Wed 17 Dec 2014 02:00:16 PM CET | ||
+ | Build Host : vml000200.dmz.nausch.org | ||
+ | Relocations : (not relocatable) | ||
+ | Packager | ||
+ | Vendor | ||
+ | URL : http:// | ||
+ | Summary | ||
+ | Description : | ||
+ | smf-spf is a lightweight, | ||
+ | Sender Policy Framework technology with the help of the libspf2 library. It | ||
+ | checks SPF records to make sure that e-mail messages are authorized by the | ||
+ | domain that it is coming from. It's an alternative for the spfmilter, | ||
+ | spf-milter, and milter-spiff milters. | ||
+ | / | ||
+ | / | ||
+ | /run/smfs | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | ==== Konfiguration ==== | ||
+ | Die Konfiguration des **smf-spf**-Daemons gestaltet sich vergleichsweise einfach und erfolgt lediglich mit Hilfe Der Datei // | ||
+ | |||
+ | Mit unserem Editor der Wahl, z.B. **vim** bearbeiten wir diese Konfigurationsdatei. | ||
+ | # vim / | ||
+ | |||
+ | <file bash / | ||
+ | # | ||
+ | # smf-spf configuration file v2.0.2 (it's read at start) | ||
+ | # | ||
+ | |||
+ | # Whitelist by a sender IP address | ||
+ | # | ||
+ | # The syntax is an IP address followed by a slash | ||
+ | # and a CIDR netmask (if the netmask is omitted, /32 is assumed) | ||
+ | # | ||
+ | WhitelistIP 127.0.0.0/ | ||
+ | WhitelistIP 10.0.0.0/ | ||
+ | # Django : 2014-12-17 | ||
+ | # nicht benutzte (private) Netzbereiche entfernt | ||
+ | # WhitelistIP 172.16.0.0/ | ||
+ | # WhitelistIP 192.168.0.0/ | ||
+ | |||
+ | # Whitelist by a sender PTR record (reverse DNS record) | ||
+ | # | ||
+ | # Performs a case insensitive substring match | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | |||
+ | # Whitelist by an envelope sender e-Mail address | ||
+ | # | ||
+ | # Performs a case insensitive substring match | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | |||
+ | # Whitelist by an envelope recipient e-Mail address | ||
+ | # | ||
+ | # Performs a case insensitive substring match | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | |||
+ | # Refuse e-Mail messages at SPF Fail results (RFC-4408) | ||
+ | # | ||
+ | # Default: on | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | |||
+ | |||
+ | # Subject tagging of e-Mail messages at SPF SoftFail | ||
+ | # and Fail (if RefuseFail set to off) results | ||
+ | # | ||
+ | # Default: on | ||
+ | # | ||
+ | # | ||
+ | |||
+ | # Subject tagging string | ||
+ | # | ||
+ | # Default: [SPF:fail] | ||
+ | # | ||
+ | # | ||
+ | |||
+ | # Build a standard Received-SPF: | ||
+ | # | ||
+ | # Default: on | ||
+ | # | ||
+ | # | ||
+ | |||
+ | # Quarantine of e-Mail messages at SPF SoftFail | ||
+ | # and Fail (if RefuseFail set to off) results | ||
+ | # | ||
+ | # Default: off | ||
+ | # | ||
+ | # | ||
+ | |||
+ | # Quarantine mailbox | ||
+ | # | ||
+ | # Default: postmaster | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | |||
+ | # In-memory cache engine TTL settings | ||
+ | # | ||
+ | # The time is given in seconds, except if a unit is given: | ||
+ | # m for minutes, h for hours, and d for days | ||
+ | # Specify zero to disable caching | ||
+ | # | ||
+ | # Default: 1h | ||
+ | # | ||
+ | #TTL 1h | ||
+ | |||
+ | # Run as a selected user (smf-spf must be started by root) | ||
+ | # | ||
+ | # Default: smfs | ||
+ | # | ||
+ | #User smfs | ||
+ | |||
+ | # Socket used to communicate with Sendmail daemon | ||
+ | # | ||
+ | # Default: unix:/ | ||
+ | # | ||
+ | # | ||
+ | # Django : 2014-12-17 | ||
+ | Socket inet: | ||
+ | |||
+ | # Facility for logging via Syslog daemon | ||
+ | # | ||
+ | # Default: mail | ||
+ | # | ||
+ | # | ||
+ | |||
+ | </ | ||
+ | |||
+ | In der Konfigurationsdatei **main.cf** unseres Postfix-Mailserver definieren wir uns nun eine eigene Variable, die wir dann in der Datei // | ||
+ | # vim / | ||
+ | <file bash / | ||
+ | |||
+ | ################################################################################ | ||
+ | ## MILTER | ||
+ | # Django : 2014-11-18 | ||
+ | # DMARC Test | ||
+ | spf_milter | ||
+ | # | ||
+ | # | ||
+ | amavisd_milter | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | In der Konfigurationsdatei // | ||
+ | # vim / | ||
+ | |||
+ | < | ||
+ | |||
+ | smtp inet n | ||
+ | smtpd | ||
+ | -o smtpd_sasl_auth_enable=no | ||
+ | -o smtpd_milters=${spf_milter}, | ||
+ | dnsblog | ||
+ | tlsproxy | ||
+ | </ | ||
+ | |||
+ | ==== Programmstart ==== | ||
+ | Das Starten des Daemon erfolgt über folgenden Aufruf. | ||
+ | # systemctl start smf-spf | ||
+ | |||
+ | Den erfolgreichen Start bzw. den Status des **smf-spf**-Daemon können wir bei Bedarf mit folgendem Aufruf abfragen. | ||
+ | # systemctl status smf-spf | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | Process: 19140 ExecStart=/ | ||
+ | Main PID: 19141 (smf-spf) | ||
+ | | ||
+ | | ||
+ | |||
+ | Dec 17 14:05:12 vml000087.dmz.nausch.org systemd[1]: Started Sender Policy Framework milter | ||
+ | </ | ||
+ | |||
+ | |||
+ | Im Maillog wird der Start des Daemon entsprechend dokumentiert. | ||
+ | # less / | ||
+ | |||
+ | Dec 17 14:05:12 vml000087 smf-spf[19140]: | ||
+ | Dec 17 14:05:12 vml000087 smf-spf[19140]: | ||
+ | |||
+ | |||
+ | Mit Hilfe von **netstat** können wir überprüfen, | ||
+ | # netstat -tulpen | ||
+ | |||
+ | < | ||
+ | Proto Recv-Q Send-Q Local Address | ||
+ | tcp 0 0 0.0.0.0: | ||
+ | tcp 0 0 127.0.0.1: | ||
+ | </ | ||
+ | |||
+ | Gleiches können wir natürlich auch mit dem Befehl **lsof** erreichen. | ||
+ | # lsof -i:8890 | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | Damit der Daemon automatisch beim Hochfahren des Servers gestartet wird, nutzen wir folgenden Aufruf. | ||
+ | # systemctl enable smf-spf.service | ||
+ | |||
+ | ln -s '/ | ||
+ | |||
+ | Wollen wir überprüfen ob der Dienst automatisch startet, verwenden wir folgenden Aufruf. | ||
+ | |||
+ | # systemctl is-enabled smf-spf.service | ||
+ | |||
+ | | ||
+ | |||
+ | Die Rückmeldung **enabled** zeigt an, dass der Dienst automatisch startet; ein **disabled** zeigt entsprechend an, dass der Dienst __nicht__ automatisch startet. | ||
+ | ==== Tests und Logging ==== | ||
+ | Zum Testen schicken wir uns von einem fremden Mailserver aus, der einen gültigen SPF-Record vorweisen kann eine eMail an unseren Mailserver und beobachten unser Maillog. | ||
+ | # less / | ||
+ | Mar 26 14:27:32 vml000080 smf-spf[26416]: | ||
+ | Damit nicht bei jeder Anfrage, der SPF-Record beim DNS abgerufen werden muss, cacht der Daemon auch entsprechend den SPF-Record. Wir sehen dann bei der Nutzung dieser gecachten Daten im maillog. | ||
+ | Mar 26 14:40:18 vml000080 smf-spf[26416]: | ||
+ | Natürlich wird ein Fehler beim Überprüfen des SPF-records auch im maillog vermerkt. | ||
+ | Dec 15 14:39:49 vml000080 smf-spf[1501]: | ||
+ | Im Mailheader der empfangenen eMail findet sich dann auch die entsprechenden Einträge: | ||
+ | | ||
- | FIXME | + | Zum Testen des SPF-Records kann man auch auf Dienste im WWW zurückgreifen. So kann man seinen SPF-Record z.B. über den **[[http:// |
+ | {{ : | ||
+ | Alternativ dazu bietet sich auch kitterman' | ||
===== SRS - Sender Rewriting Scheme ===== | ===== SRS - Sender Rewriting Scheme ===== | ||
Zu Beginn dieses Artikels wurde bereits darauf hingewiesen, | Zu Beginn dieses Artikels wurde bereits darauf hingewiesen, | ||
- | FIXME | + | ====== Links ====== |
+ | * **⇐ [[centos: | ||
+ | * **⇒ [[centos: | ||
+ | * **[[centos: | ||
+ | * **[[wiki: | ||
+ | * **[[http:// | ||
+ | ~~AUTOTWEET: | ||