Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
centos:mail_c7:zeyple [09.08.2016 07:48. ] – [Postfix Integration] djangocentos:mail_c7:zeyple [20.05.2021 06:05. ] (aktuell) django
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://blog.infertux.com/2015/10/25/announcing-zeyple/|ZEYPLE]]** kann man es nicht besser beschreiben: Besser als der Programm-Author //Cédric Félizard// des Encyption-Daemons **[[http://blog.infertux.com/2015/10/25/announcing-zeyple/|ZEYPLE]]** kann man es nicht besser beschreiben:
  
-<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!//+
 \\ \\
 </WRAP> </WRAP>
 +</WRAP>
 +
  
-In unserem Anwendungsbeispiel wollen wir alle eMails, die unsere Monitoring-Umgebeung **[[centos:web_c7:icinga:start|Icinga 2]]** verschickt automatisch verschlüsseln, sofern die Nachrichten den geschützen Bereich der eigenen Infrastruktur verlässt.+In unserem Anwendungsbeispiel wollen wir alle eMails, die unsere Monitoring-Umgebung **[[centos:web_c7:icinga:start|Icinga 2]]** verschickt automatisch verschlüsseln, sofern die Nachrichten den geschützen Bereich der eigenen Infrastruktur verlässt.
  
 ===== Kommunikationsablauf ===== ===== Kommunikationsablauf =====
Zeile 20: Zeile 22:
 Nachfolgende Übersichsskizze zeigt diese Verarbeitungsschritte.  Nachfolgende Übersichsskizze zeigt diese Verarbeitungsschritte. 
  
-<uml width=900 title="Verarbeitungsschritte einer eMail">+<uml>
 skinparam defaultFontName Courier skinparam defaultFontName Courier
  
Zeile 139: Zeile 141:
 </uml> </uml>
  
-===== 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 203: Zeile 205:
  
 ==== zeyple Konfigurationsdatei ==== ==== zeyple Konfigurationsdatei ====
-Damit nun der zeyple encryption deamon weiß, 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 //**/tec/zeyple.conf**// verwendet. Wir kopieren uns daher die Beispielskonfigurationsdatei aus dem GitHUB-Projektverzeichnis nach //**/etc**//.+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 //**/etc/zeyple.conf**// verwendet. Wir kopieren uns daher die Beispielskonfigurationsdatei aus dem GitHUB-Projektverzeichnis nach //**/etc**//.
    # cp /usr/local/src/zeyple/zeyple/zeyple.conf.example /etc/zeyple.conf    # cp /usr/local/src/zeyple/zeyple/zeyple.conf.example /etc/zeyple.conf
  
-Änderungen an dieser datei sind in aller Regel nicht nötig.+Änderungen an dieser Datei sind in aller Regel nicht nötig.
 <file bash /etc/zeyple.conf>[zeyple] <file bash /etc/zeyple.conf>[zeyple]
 log_file = /var/log/zeyple.log log_file = /var/log/zeyple.log
Zeile 217: Zeile 219:
 port = 10026 port = 10026
 </file> </file>
 +
 +==== zeyple Logdatei ====
 +Damit **zeyple** sein logfile auch beschreiben kann, müsseen wir dieses nun noch anlegen und mit den zugehörigen Rechten versehen.
 +   # touch /var/log/zeyple.log 
 +   # chown zeyple: /var/log/zeyple.log
 +
 +
  
 ==== Postfix Integration ==== ==== Postfix Integration ====
-Die Einbindung des //zeyple encyption gateway// in unseren Postfix MTA +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, auf dem **zeyple** dann die verschlüsselten Nachrichten dem Postfix MTA wieder übergibt. 
 + 
 +Diese beiden Definitionen nehmen wir nun als erstes in der Postfix Konfigurationsdatei //**/etc/postfix/master.cf**// vor. Wir öffnen diese Datei mit dem Editor unserer Wahl und fügen am ende folgende Zeilen ein. 
 +   # vim /etc/postfix/master.cf 
 +<file bash /etc/postfix/master.cf>... 
 + 
 +# Django : 2016-06-30 - Content-Scanner zur Übergabe der unverschlüsselten Nachrichten an das 
 +#          encryption gateway zeyple 
 +zeyple    unix  -                               pipe 
 +      user=zeyple argv=/usr/local/src/zeyple/zeyple/zeyple.py ${recipient} 
 + 
 +# 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:10026 inet  n                         10      smtpd 
 +      -o content_filter= 
 +      -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks,no_milters 
 +      -o smtpd_helo_restrictions= 
 +      -o smtpd_client_restrictions= 
 +      -o smtpd_sender_restrictions= 
 +      -o smtpd_recipient_restrictions=permit_mynetworks,reject 
 +      -o mynetworks=127.0.0.0/8,10.0.0.117/32 
 +      -o smtpd_authorized_xforward_hosts=127.0.0.0/8,10.0.0.117/32 
 +</file> 
 + 
 +Anschließend informieren wir noch Postfix, dass dieser den neu definierten Contentfilter auch verwenden soll. Hierzu tragen wir am Ende folgende Zeilen ein. 
 +   # vim /etc/postfix/main.cf 
 + 
 +<file bash /etc/postfix/main.cf>... 
 + 
 +# Django : 2016-06-30 - Definition des encryption gateways zeyple als Content-Filter 
 +content_filter = zeyple 
 +</file> 
 + 
 +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 
 + 
 +<html><pre class="code"> 
 +<font style="color: rgb(29, 180, 29)"><b>●</b></font> postfix.service - Postfix Mail Transport Agent 
 +   Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor preset: disabled) 
 +   Active: <font style="color: rgb(29, 180, 29)"><b>active (running)</b></font> since Tue 2016-08-09 10:01:21 CEST; 1min 23s ago 
 +  Process: 25123 ExecStop=/usr/sbin/postfix stop (code=exited, status=0/SUCCESS) 
 +  Process: 25141 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS) 
 +  Process: 25138 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS) 
 +  Process: 25133 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS) 
 + Main PID: 25215 (master) 
 +   CGroup: /system.slice/postfix.service 
 +           ├─25215 /usr/libexec/postfix/master -w 
 +           ├─25216 pickup -l -t unix -u 
 +           └─25217 qmgr -l -t unix -u 
 + 
 +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/postfix-script[25212]: starting the Postfix mail system 
 +Aug 09 10:01:21 vml000117.dmz.nausch.org postfix/master[25215]: daemon started -- version 2.11.8, configuration /etc/postfix 
 +Aug 09 10:01:21 vml000117.dmz.nausch.org systemd[1]: Started Postfix Mail Transport Agent. 
 +</font></pre> 
 +</html> 
 + 
 +===== 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 **[[/centos:mail_c7:zeyple#pgp-keys_der_empfaenger_importieren|PGP-Schlüssel importiert]]** hatten. 
 +   $ echo "very important top secret stuff" | mailx -s "secured message" thomas@gelf.net 
 + 
 +Im Logfile unseres Postfix MTA sehen wir die Abarbeitung dieser Nachricht. 
 +<code>Aug  9 10:39:40 vml000117 postfix/pickup[27862]: 6172B1811270: uid=1000 from=<django> 
 +Aug  9 10:39:40 vml000117 postfix/cleanup[28680]: 6172B1811270: message-id=<20160809083940.6172B1811270@vml000117.dmz.nausch.org> 
 +Aug  9 10:39:40 vml000117 postfix/qmgr[27863]: 6172B1811270: from=<django@nausch.org>, size=484, nrcpt=1 (queue active) 
 +Aug  9 10:39:40 vml000117 postfix/smtpd[28710]: connect from localhost[127.0.0.1] 
 +Aug  9 10:39:40 vml000117 postfix/smtpd[28710]: 8A6AE183645E: client=localhost[127.0.0.1] 
 +Aug  9 10:39:40 vml000117 postfix/cleanup[28680]: 8A6AE183645E: message-id=<20160809083940.6172B1811270@vml000117.dmz.nausch.org> 
 +Aug  9 10:39:40 vml000117 postfix/qmgr[27863]: 8A6AE183645E: from=<django@nausch.org>, size=2343, nrcpt=1 (queue active) 
 +Aug  9 10:39:40 vml000117 postfix/smtpd[28710]: disconnect from localhost[127.0.0.1] 
 +Aug  9 10:39:40 vml000117 postfix/pipe[28682]: 6172B1811270: to=<thomas@gelf.net>, relay=zeyple, delay=0.21, delays=0.02/0/0/0.18, dsn=2.0.0, status=sent (delivered via zeyple service) 
 +Aug  9 10:39:40 vml000117 postfix/qmgr[27863]: 6172B1811270: removed 
 +Aug  9 10:39:41 vml000117 postfix/smtp[28712]: 8A6AE183645E: to=<thomas@gelf.net>, relay=10.0.0.87[10.0.0.87]:25, delay=0.99, delays=0.01/0/0.01/0.98, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 91DF3C00088) 
 +Aug  9 10:39:41 vml000117 postfix/qmgr[27863]: 8A6AE183645E: removed 
 +</code> 
 + 
 +Im Logfile des //**zeyple encryption daemon**// wird die Verarbeitung auch entsprechend dokumentiert. 
 +<code>2016-08-09 10:39:40,484 28857 INFO Zeyple ready to encrypt outgoing emails 
 +2016-08-09 10:39:40,486 28857 INFO Processing outgoing message <20160809083940.6172B1811270@vml000117.dmz.nausch.org> 
 +2016-08-09 10:39:40,486 28857 INFO Recipient: thomas@gelf.net 
 +2016-08-09 10:39:40,486 28857 INFO Trying to encrypt for thomas@gelf.net 
 +2016-08-09 10:39:40,514 28857 INFO Key ID: 5D3F54A8637EE91F 
 +2016-08-09 10:39:40,560 28857 INFO Sending message <20160809083940.6172B1811270@vml000117.dmz.nausch.org> 
 +2016-08-09 10:39:40,578 28857 INFO Message <20160809083940.6172B1811270@vml000117.dmz.nausch.org> sent</code> 
 + 
 +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 "secured message" bigchief@omni128.de 
 + 
 +Im Logfile des //**zeyple encryption daemon**// wird die Verarbeitung auch entsprechend dokumentiert. 
 +<code>2016-08-09 10:43:16,882 29254 INFO Zeyple ready to encrypt outgoing emails 
 +2016-08-09 10:43:16,884 29254 INFO Processing outgoing message <20160809084316.BCE621811270@vml000117.dmz.nausch.org> 
 +2016-08-09 10:43:16,884 29254 INFO Recipient: bigchief@omni128.de 
 +2016-08-09 10:43:16,885 29254 INFO Trying to encrypt for bigchief@omni128.de 
 +2016-08-09 10:43:16,909 29254 INFO Key ID: None 
 +2016-08-09 10:43:16,909 29254 WARNING No keys found, message will be sent unencrypted 
 +2016-08-09 10:43:16,910 29254 INFO Sending message <20160809084316.BCE621811270@vml000117.dmz.nausch.org> 
 +2016-08-09 10:43:16,949 29254 INFO Message <20160809084316.BCE621811270@vml000117.dmz.nausch.org> sent</code> 
 + 
 +In der Postfix Logdatei wird der ordnungsgemäße Verarbeitungsablauf wie gewohnt festgehalten. 
 +<code>Aug  9 10:43:16 vml000117 postfix/pickup[27862]: BCE621811270: uid=1000 from=<django> 
 +Aug  9 10:43:16 vml000117 postfix/cleanup[29251]: BCE621811270: message-id=<20160809084316.BCE621811270@vml000117.dmz.nausch.org> 
 +Aug  9 10:43:16 vml000117 postfix/qmgr[27863]: BCE621811270: from=<django@nausch.org>, size=488, nrcpt=1 (queue active) 
 +Aug  9 10:43:16 vml000117 postfix/smtpd[29267]: connect from localhost[127.0.0.1] 
 +Aug  9 10:43:16 vml000117 postfix/smtpd[29267]: E4D1E183645E: client=localhost[127.0.0.1] 
 +Aug  9 10:43:16 vml000117 postfix/cleanup[29251]: E4D1E183645E: message-id=<20160809084316.BCE621811270@vml000117.dmz.nausch.org> 
 +Aug  9 10:43:16 vml000117 postfix/qmgr[27863]: E4D1E183645E: from=<django@nausch.org>, size=685, nrcpt=1 (queue active) 
 +Aug  9 10:43:16 vml000117 postfix/smtpd[29267]: disconnect from localhost[127.0.0.1] 
 +Aug  9 10:43:16 vml000117 postfix/pipe[29253]: BCE621811270: to=<bigchief@omni128.de>, relay=zeyple, delay=0.21, delays=0.05/0.01/0/0.15, dsn=2.0.0, status=sent (delivered via zeyple service) 
 +Aug  9 10:43:16 vml000117 postfix/qmgr[27863]: BCE621811270: removed 
 +Aug  9 10:43:17 vml000117 postfix/smtp[29269]: E4D1E183645E: to=<bigchief@omni128.de>, relay=10.0.0.87[10.0.0.87]:25, delay=0.64, delays=0.01/0.01/0.07/0.54, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 0FE1EC00088) 
 +Aug  9 10:43:17 vml000117 postfix/qmgr[27863]: E4D1E183645E: removed</code> 
 + 
 +====== Links ====== 
 +  * **[[centos:mail_c7:start|Zurück zum Kapitel >>Mailserverinstallation unter CentOS 7<<]]** 
 +  * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]** 
 +  * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]** 
  
  • centos/mail_c7/zeyple.1470728923.txt.gz
  • Zuletzt geändert: 09.08.2016 07:48.
  • von django