Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
centos:mail_c7:zeyple [09.08.2016 07:34. ] – [PGP-Keys der Empfänger importieren] django | centos:mail_c7:zeyple [18.11.2024 19:08. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
Verschlüsselung vertraulicher Daten dürfte in sensiblen Bereichen kaum mehr weg zu diskutieren sein. Sehr oft werden eMails genutzt, um einen Systemadministrator über Stati, (Fehl-)Funktionen und aussergewöhnliche Situationen zu informieren. | Verschlüsselung vertraulicher Daten dürfte in sensiblen Bereichen kaum mehr weg zu diskutieren sein. Sehr oft werden eMails genutzt, um einen Systemadministrator über Stati, (Fehl-)Funktionen und aussergewöhnliche Situationen zu informieren. | ||
+ | <WRAP center round tip 90%> | ||
Besser als der Programm-Author //Cédric Félizard// des Encyption-Daemons **[[http:// | Besser als der Programm-Author //Cédric Félizard// des Encyption-Daemons **[[http:// | ||
- | <WRAP center round alert 90%> | + | <WRAP center round alert 100%> |
- | \\ | + | **//Why should I care? If you are a sysadmin who receives emails from various monitoring tools like Logwatch, Monit, Fail2ban, Smartd, Cron, whatever - it goes without saying that those emails contain lots of information about your servers. Information that may be intercepted by some malicious hacker sniffing SMTP traffic, your email provider, <insert your (paranoid) reason here>... Why would you take that risk - encrypt them all!//** |
- | //Why should I care? If you are a sysadmin who receives emails from various monitoring tools like Logwatch, Monit, Fail2ban, Smartd, Cron, whatever - it goes without saying that those emails contain lots of information about your servers. Information that may be intercepted by some malicious hacker sniffing SMTP traffic, your email provider, <insert your (paranoid) reason here>... Why would you take that risk - encrypt them all!// | + | |
\\ | \\ | ||
</ | </ | ||
+ | </ | ||
+ | |||
- | In unserem Anwendungsbeispiel wollen wir alle eMails, die unsere Monitoring-Umgebeung | + | In unserem Anwendungsbeispiel wollen wir alle eMails, die unsere Monitoring-Umgebung |
===== Kommunikationsablauf ===== | ===== Kommunikationsablauf ===== | ||
Zeile 20: | Zeile 22: | ||
Nachfolgende Übersichsskizze zeigt diese Verarbeitungsschritte. | Nachfolgende Übersichsskizze zeigt diese Verarbeitungsschritte. | ||
- | < | + | <uml> |
skinparam defaultFontName Courier | skinparam defaultFontName Courier | ||
Zeile 53: | Zeile 55: | ||
note left | note left | ||
From: icinga < | From: icinga < | ||
- | To: django@mailserver.guru | + | To: django@nausch.org |
Subject: icinga 2 Service-Notification | Subject: icinga 2 Service-Notification | ||
Date: Friday 17:25:30 | Date: Friday 17:25:30 | ||
Zeile 113: | Zeile 115: | ||
note right of sendmail | note right of sendmail | ||
From: icinga < | From: icinga < | ||
- | To: django@mailserver.guru | + | To: django@nausch.org |
Subject: icinga 2 Service-Notification | Subject: icinga 2 Service-Notification | ||
Date: Friday 17:25:30 | Date: Friday 17:25:30 | ||
Zeile 139: | Zeile 141: | ||
</ | </ | ||
- | ===== GutHub | + | ===== GitHub |
==== Download ==== | ==== Download ==== | ||
Bevor wir uns nun dieses Projekt auf unseren Rechner clonen, wechseln wir in das Prokekt-Verzeichnis unseres Servers. | Bevor wir uns nun dieses Projekt auf unseren Rechner clonen, wechseln wir in das Prokekt-Verzeichnis unseres Servers. | ||
Zeile 180: | Zeile 182: | ||
Nun können wir die öffentlichen PGP-Schlüssel der potentiellen Empfänger importieren. Haben wir den PGP public key in einer Datei lokal auf dem Server benutzen wir folgenden Aufruf. | Nun können wir die öffentlichen PGP-Schlüssel der potentiellen Empfänger importieren. Haben wir den PGP public key in einer Datei lokal auf dem Server benutzen wir folgenden Aufruf. | ||
- | # sudo -u zeyple gpg --homedir / | + | # sudo -u zeyple gpg --homedir / |
< | < | ||
Zeile 201: | Zeile 203: | ||
gpg: Total number processed: 1 | gpg: Total number processed: 1 | ||
gpg: | gpg: | ||
+ | |||
+ | ==== zeyple Konfigurationsdatei ==== | ||
+ | Damit nun der zeyple encryption deamon weiss, wo er sein Schlüsselmaterial findet und wie dieser mit dem SMTP-Relayhost kommunizieren soll, müssen wir ihm ein paar Informationen bereitstellen. Hierzu wird die Konfigurationsdatei // | ||
+ | # cp / | ||
+ | |||
+ | Änderungen an dieser Datei sind in aller Regel nicht nötig. | ||
+ | <file bash / | ||
+ | log_file = / | ||
+ | |||
+ | [gpg] | ||
+ | home = / | ||
+ | |||
+ | [relay] | ||
+ | host = localhost | ||
+ | port = 10026 | ||
+ | </ | ||
+ | |||
+ | ==== zeyple Logdatei ==== | ||
+ | Damit **zeyple** sein logfile auch beschreiben kann, müsseen wir dieses nun noch anlegen und mit den zugehörigen Rechten versehen. | ||
+ | # touch / | ||
+ | # chown zeyple: / | ||
+ | |||
+ | |||
+ | |||
+ | ==== Postfix Integration ==== | ||
+ | Zur Einbindung des //zeyple encyption gateway// in unseren Postfix MTA sind nun zwei Dinge erforderlich. Zur Übergabe an **zeyple** benötigen wir eine Content-Filter definition und zur Rückleitung einen SMTP-Daemon, | ||
+ | |||
+ | Diese beiden Definitionen nehmen wir nun als erstes in der Postfix Konfigurationsdatei // | ||
+ | # vim / | ||
+ | <file bash / | ||
+ | |||
+ | # Django : 2016-06-30 - Content-Scanner zur Übergabe der unverschlüsselten Nachrichten an das | ||
+ | # encryption gateway zeyple | ||
+ | zeyple | ||
+ | user=zeyple argv=/ | ||
+ | |||
+ | # Django : 2016-06-30 - SMTP-Daemon (Rückkanal) bei dem das encyrption gateway zeyple die | ||
+ | # verschlüsselten Nachrichten wieder dem MTA zur weiteren Verarbeitung übergibt | ||
+ | localhost: | ||
+ | -o content_filter= | ||
+ | -o receive_override_options=no_unknown_recipient_checks, | ||
+ | -o smtpd_helo_restrictions= | ||
+ | -o smtpd_client_restrictions= | ||
+ | -o smtpd_sender_restrictions= | ||
+ | -o smtpd_recipient_restrictions=permit_mynetworks, | ||
+ | -o mynetworks=127.0.0.0/ | ||
+ | -o smtpd_authorized_xforward_hosts=127.0.0.0/ | ||
+ | </ | ||
+ | |||
+ | Anschließend informieren wir noch Postfix, dass dieser den neu definierten Contentfilter auch verwenden soll. Hierzu tragen wir am Ende folgende Zeilen ein. | ||
+ | # vim / | ||
+ | |||
+ | <file bash / | ||
+ | |||
+ | # Django : 2016-06-30 - Definition des encryption gateways zeyple als Content-Filter | ||
+ | content_filter = zeyple | ||
+ | </ | ||
+ | |||
+ | Zur Aktivierung der Konfigurationsänderung starten wir nun den Postfix-Daemon einmal durch. | ||
+ | # systemctl restart postfix.service | ||
+ | |||
+ | Den Status unseres Mailservers können wir wie gewohnt abfragen. | ||
+ | # systemctl status postfix.service -l | ||
+ | |||
+ | < | ||
+ | <font style=" | ||
+ | | ||
+ | | ||
+ | Process: 25123 ExecStop=/ | ||
+ | Process: 25141 ExecStart=/ | ||
+ | Process: 25138 ExecStartPre=/ | ||
+ | Process: 25133 ExecStartPre=/ | ||
+ | Main PID: 25215 (master) | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Aug 09 10:01:21 vml000117.dmz.nausch.org systemd[1]: Starting Postfix Mail Transport Agent... | ||
+ | Aug 09 10:01:21 vml000117.dmz.nausch.org postfix/ | ||
+ | Aug 09 10:01:21 vml000117.dmz.nausch.org postfix/ | ||
+ | Aug 09 10:01:21 vml000117.dmz.nausch.org systemd[1]: Started Postfix Mail Transport Agent. | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ===== Systemtest ===== | ||
+ | Nun ist es an der Zeit unsere Konfiguration zu testen. Als erstes schicken wir von der Konsole aus eine Testnachricht an eine Adresse, bei der wir zuvor den zugehörigen **[[/ | ||
+ | $ echo "very important top secret stuff" | mailx -s " | ||
+ | |||
+ | Im Logfile unseres Postfix MTA sehen wir die Abarbeitung dieser Nachricht. | ||
+ | < | ||
+ | Aug 9 10:39:40 vml000117 postfix/ | ||
+ | Aug 9 10:39:40 vml000117 postfix/ | ||
+ | Aug 9 10:39:40 vml000117 postfix/ | ||
+ | Aug 9 10:39:40 vml000117 postfix/ | ||
+ | Aug 9 10:39:40 vml000117 postfix/ | ||
+ | Aug 9 10:39:40 vml000117 postfix/ | ||
+ | Aug 9 10:39:40 vml000117 postfix/ | ||
+ | Aug 9 10:39:40 vml000117 postfix/ | ||
+ | Aug 9 10:39:40 vml000117 postfix/ | ||
+ | Aug 9 10:39:41 vml000117 postfix/ | ||
+ | Aug 9 10:39:41 vml000117 postfix/ | ||
+ | </ | ||
+ | |||
+ | Im Logfile des //**zeyple encryption daemon**// wird die Verarbeitung auch entsprechend dokumentiert. | ||
+ | < | ||
+ | 2016-08-09 10: | ||
+ | 2016-08-09 10: | ||
+ | 2016-08-09 10: | ||
+ | 2016-08-09 10: | ||
+ | 2016-08-09 10: | ||
+ | 2016-08-09 10: | ||
+ | |||
+ | Verschicken wir nun eine Nachricht an einen Empfänger für den wir keinen PGP-Schlüssel haben, kann diese natürlich __nicht__ verschlüsselt werden. | ||
+ | $ echo "very important top secret stuff" | mailx -s " | ||
+ | |||
+ | Im Logfile des //**zeyple encryption daemon**// wird die Verarbeitung auch entsprechend dokumentiert. | ||
+ | < | ||
+ | 2016-08-09 10: | ||
+ | 2016-08-09 10: | ||
+ | 2016-08-09 10: | ||
+ | 2016-08-09 10: | ||
+ | 2016-08-09 10: | ||
+ | 2016-08-09 10: | ||
+ | 2016-08-09 10: | ||
+ | |||
+ | In der Postfix Logdatei wird der ordnungsgemäße Verarbeitungsablauf wie gewohnt festgehalten. | ||
+ | < | ||
+ | Aug 9 10:43:16 vml000117 postfix/ | ||
+ | Aug 9 10:43:16 vml000117 postfix/ | ||
+ | Aug 9 10:43:16 vml000117 postfix/ | ||
+ | Aug 9 10:43:16 vml000117 postfix/ | ||
+ | Aug 9 10:43:16 vml000117 postfix/ | ||
+ | Aug 9 10:43:16 vml000117 postfix/ | ||
+ | Aug 9 10:43:16 vml000117 postfix/ | ||
+ | Aug 9 10:43:16 vml000117 postfix/ | ||
+ | Aug 9 10:43:16 vml000117 postfix/ | ||
+ | Aug 9 10:43:17 vml000117 postfix/ | ||
+ | Aug 9 10:43:17 vml000117 postfix/ | ||
+ | |||
+ | ====== Links ====== | ||
+ | * **[[centos: | ||
+ | * **[[wiki: | ||
+ | * **[[http:// | ||
+ | |||
+ |