Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:postfix_centos_7_-_openpgpkey_anbinden_openpgpkey-milter

Postfix CentOS 7 - OpenPGPKey anbinden (openpgpkey-milter)

OpenPGPKey speichert den vollständigen, öffentlichen Teil des PGP-Schlüssels in einer DNS-Zone. Dieser Teil wird der E-Mail-Adresse des Schlüsselbesitzers über einen OpenPGPKey Resource Record (RR) zugeordnet.

OpenPGPKey-milter ist ein Sendmail/Postfix-milter Dienst/Daemon, der versucht, vom MTA/MUA empfangene Klartext-E-Mails automatisch zu verschlüsseln, bevor die Nachricht weiter an den/die Empfänger weitergeleitet wird. Dies können Nachrichten sein, die vom Netzwerk empfangen oder lokal generiert werden.

Ab hier werden zur Ausführung nachfolgender Befehle root-Rechte benötigt. Um der Benutzer root zu werden, melden Sie sich bitte als root-Benutzer am System an, oder wechseln mit nachfolgendem Befehl zum Benutzer root:

$ su -
Password:

Voraussetzungen

Damit ein OpenPGPKey und auch der OpenPGPKey-milter zum Einsatz kommen können, ist es erforderlich, das ein

  1. PGP-Schlüsselpaar
  2. PGP-Schlüsselring

vorhanden ist.

Nachfolgender interne Link beschreibt, wie ein PGP-Schlüsselpaar in einem PGP-Schlüsselring erstellt und verwaltet werden kann:

Installation

hash-slinger

Das Programm-Paket hash-slinger von Paul Wouters enthält Programme zur Erstellung von verschiedenen DNS-Records, wie z.B. FC-4255 SSHFP und RFC-698 TLSA.

Nachfolgendes rpm-Paket ist zur Installation erforderlich:

  • hash-slinger - ist im epel-Repository des Drittanbieters EPEL enthalten

Zusätzlich wird nachfolgendes rpm-Paket als Abhängigkeit zusätzlich installiert:

  • libevent - ist im base-Repository von CentOS enthalten
  • m2crypto - ist im base-Repository von CentOS enthalten
  • python-dns - ist im base-Repository von CentOS enthalten
  • python-ipaddr - ist im base-Repository von CentOS enthalten
  • python2-gnupg - ist im epel-Repository des Drittanbieters EPEL enthalten
  • unbound-libs - ist im base-Repository von CentOS enthalten
  • unbound-python - ist im base-Repository von CentOS enthalten

Die Installation von hash-slinger, kann durch ausführen des nachfolgenden Befehls durchgeführt werden:

# yum install hash-slinger
Loaded plugins: changelog, priorities
301 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package hash-slinger.noarch 0:2.7-1.el7 will be installed
--> Processing Dependency: python-gnupg >= 0.3.7 for package: hash-slinger-2.7-1.el7.noarch
--> Processing Dependency: unbound-python for package: hash-slinger-2.7-1.el7.noarch
--> Processing Dependency: python-ipaddr for package: hash-slinger-2.7-1.el7.noarch
--> Processing Dependency: python-dns for package: hash-slinger-2.7-1.el7.noarch
--> Processing Dependency: m2crypto for package: hash-slinger-2.7-1.el7.noarch
--> Running transaction check
---> Package m2crypto.x86_64 0:0.21.1-17.el7 will be installed
---> Package python-dns.noarch 0:1.12.0-4.20150617git465785f.el7 will be installed
---> Package python-ipaddr.noarch 0:2.1.11-1.el7 will be installed
---> Package python2-gnupg.noarch 0:0.3.8-3.el7 will be installed
---> Package unbound-python.x86_64 0:1.6.6-1.el7 will be installed
--> Processing Dependency: unbound-libs(x86-64) = 1.6.6-1.el7 for package: unbound-python-1.6.6-1.el7.x86_64
--> Processing Dependency: libunbound.so.2()(64bit) for package: unbound-python-1.6.6-1.el7.x86_64
--> Processing Dependency: libevent-2.0.so.5()(64bit) for package: unbound-python-1.6.6-1.el7.x86_64
--> Running transaction check
---> Package libevent.x86_64 0:2.0.21-4.el7 will be installed
---> Package unbound-libs.x86_64 0:1.6.6-1.el7 will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package           Arch      Version                              Repository
                                                                           Size
================================================================================
Installing:
 hash-slinger      noarch    2.7-1.el7                            epel     38 k
Installing for dependencies:
 libevent          x86_64    2.0.21-4.el7                         base    214 k
 m2crypto          x86_64    0.21.1-17.el7                        base    429 k
 python-dns        noarch    1.12.0-4.20150617git465785f.el7      base    233 k
 python-ipaddr     noarch    2.1.11-1.el7                         base     35 k
 python2-gnupg     noarch    0.3.8-3.el7                          epel     34 k
 unbound-libs      x86_64    1.6.6-1.el7                          base    405 k
 unbound-python    x86_64    1.6.6-1.el7                          base    101 k

Transaction Summary
================================================================================
Install  1 Package (+7 Dependent packages)

Total download size: 1.5 M
Installed size: 5.6 M
Is this ok [y/d/N]: y
Downloading packages:
(1/8): hash-slinger-2.7-1.el7.noarch.rpm                   |  38 kB   00:00     
(2/8): libevent-2.0.21-4.el7.x86_64.rpm                    | 214 kB   00:00     
(3/8): m2crypto-0.21.1-17.el7.x86_64.rpm                   | 429 kB   00:00     
(4/8): python-dns-1.12.0-4.20150617git465785f.el7.noarch.r | 233 kB   00:00     
(5/8): python-ipaddr-2.1.11-1.el7.noarch.rpm               |  35 kB   00:00     
(6/8): unbound-libs-1.6.6-1.el7.x86_64.rpm                 | 405 kB   00:00     
(7/8): unbound-python-1.6.6-1.el7.x86_64.rpm               | 101 kB   00:00     
(8/8): python2-gnupg-0.3.8-3.el7.noarch.rpm                |  34 kB   00:00     
--------------------------------------------------------------------------------
Total                                              2.2 MB/s | 1.5 MB  00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : libevent-2.0.21-4.el7.x86_64                                 1/8 
  Installing : unbound-libs-1.6.6-1.el7.x86_64                              2/8 
  Installing : unbound-python-1.6.6-1.el7.x86_64                            3/8 
  Installing : python2-gnupg-0.3.8-3.el7.noarch                             4/8 
  Installing : python-dns-1.12.0-4.20150617git465785f.el7.noarch            5/8 
  Installing : python-ipaddr-2.1.11-1.el7.noarch                            6/8 
  Installing : m2crypto-0.21.1-17.el7.x86_64                                7/8 
  Installing : hash-slinger-2.7-1.el7.noarch                                8/8 
  Verifying  : m2crypto-0.21.1-17.el7.x86_64                                1/8 
  Verifying  : python-ipaddr-2.1.11-1.el7.noarch                            2/8 
  Verifying  : hash-slinger-2.7-1.el7.noarch                                3/8 
  Verifying  : libevent-2.0.21-4.el7.x86_64                                 4/8 
  Verifying  : unbound-python-1.6.6-1.el7.x86_64                            5/8 
  Verifying  : python-dns-1.12.0-4.20150617git465785f.el7.noarch            6/8 
  Verifying  : unbound-libs-1.6.6-1.el7.x86_64                              7/8 
  Verifying  : python2-gnupg-0.3.8-3.el7.noarch                             8/8 

Installed:
  hash-slinger.noarch 0:2.7-1.el7                                               

Dependency Installed:
  libevent.x86_64 0:2.0.21-4.el7                                                
  m2crypto.x86_64 0:0.21.1-17.el7                                               
  python-dns.noarch 0:1.12.0-4.20150617git465785f.el7                           
  python-ipaddr.noarch 0:2.1.11-1.el7                                           
  python2-gnupg.noarch 0:0.3.8-3.el7                                            
  unbound-libs.x86_64 0:1.6.6-1.el7                                             
  unbound-python.x86_64 0:1.6.6-1.el7                                           

Complete!

Die Installation von hash-slinger, kann durch ausführen des nachfolgenden Befehls durchgeführt werden:

# rpm -qil hash-slinger
Name        : hash-slinger
Version     : 2.7
Release     : 1.el7
Architecture: noarch
Install Date: Fri 31 Aug 2018 12:25:57 PM CEST
Group       : Applications/Internet
Size        : 88902
License     : GPLv2+
Signature   : RSA/SHA256, Sun 03 Jan 2016 04:05:07 AM CET, Key ID 6a2faea2352c64e5
Source RPM  : hash-slinger-2.7-1.el7.src.rpm
Build Date  : Sun 03 Jan 2016 01:34:40 AM CET
Build Host  : buildppcle-05.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://people.redhat.com/pwouters/hash-slinger/
Summary     : Generate various DNS records such as RFC-4255 SSHFP and RFC-698 TLSA
Description :
This package contains various tools to generate special DNS records:

sshfp       Generate RFC-4255 SSHFP DNS records from known_hosts files
            or ssh-keyscan
tlsa        Generate RFC-6698  TLSA DNS records via TLS
openpgpkey  Generate draft-ietf-dane-openpgpkey DNS records from OpenPGP
            keyrings
ipseckey    Generate RFC-4025 IPSECKEY DNS records on Libreswan
            IPsec servers

This package supersedes 'sshfp' and 'swede'
/usr/bin/ipseckey
/usr/bin/openpgpkey
/usr/bin/sshfp
/usr/bin/tlsa
/usr/share/doc/hash-slinger-2.7
/usr/share/doc/hash-slinger-2.7/BUGS
/usr/share/doc/hash-slinger-2.7/CHANGES
/usr/share/doc/hash-slinger-2.7/COPYING
/usr/share/doc/hash-slinger-2.7/README
/usr/share/man/man1/ipseckey.1.gz
/usr/share/man/man1/openpgpkey.1.gz
/usr/share/man/man1/sshfp.1.gz
/usr/share/man/man1/tlsa.1.gz

openpgpkey-milter

OpenPGPKey-milter ist ein Sendmail/Postfix-milter Dienst/Daemon, der versucht, vom MTA/MUA empfangene Klartext-E-Mails automatisch zu verschlüsseln, bevor die Nachricht weiter an den/die Empfänger weitergeleitet wird. Dies können Nachrichten sein, die vom Netzwerk empfangen oder lokal generiert werden.

Nachfolgendes rpm-Paket ist zur Installation erforderlich:

  • openpgpkey-milter - ist im epel-Repository des Drittanbieters EPEL enthalten

Zusätzlich wird nachfolgendes rpm-Paket als Abhängigkeit zusätzlich installiert:

  • python-pydns - ist im epel-Repository des Drittanbieters EPEL enthalten
  • python-pymilter - ist im epel-Repository des Drittanbieters EPEL enthalten
  • sendmail-milter - ist im base-Repository von CentOS enthalten
  • python-setproctitle - ist im base-Repository von CentOS enthalten

:!: HINWEIS - Die Installation muss aktuell auf dem gleichen Server auf dem auch der Postfix-Dienst/Daemon läuft erfolgen !!!

Die Installation von openpgpkey-milter, kann durch ausführen des nachfolgenden Befehls durchgeführt werden:

# yum install openpgpkey-milter
Loaded plugins: changelog, priorities
301 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package openpgpkey-milter.noarch 0:0.5-1.el7 will be installed
--> Processing Dependency: python-pymilter for package: openpgpkey-milter-0.5-1.el7.noarch
--> Running transaction check
---> Package python-pymilter.x86_64 0:1.0-1.el7 will be installed
--> Processing Dependency: python-pydns for package: python-pymilter-1.0-1.el7.x86_64
--> Processing Dependency: libmilter.so.1.0()(64bit) for package: python-pymilter-1.0-1.el7.x86_64
--> Running transaction check
---> Package python-pydns.noarch 0:2.3.6-2.el7 will be installed
---> Package sendmail-milter.x86_64 0:8.14.7-5.el7 will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package                  Arch          Version               Repository   Size
================================================================================
Installing:
 openpgpkey-milter        noarch        0.5-1.el7             epel         23 k
Installing for dependencies:
 python-pydns             noarch        2.3.6-2.el7           epel         40 k
 python-pymilter          x86_64        1.0-1.el7             epel         98 k
 sendmail-milter          x86_64        8.14.7-5.el7          base         71 k

Transaction Summary
================================================================================
Install  1 Package (+3 Dependent packages)

Total download size: 231 k
Installed size: 518 k
Is this ok [y/d/N]: y
Downloading packages:
(1/4): openpgpkey-milter-0.5-1.el7.noarch.rpm              |  23 kB   00:00     
(2/4): python-pydns-2.3.6-2.el7.noarch.rpm                 |  40 kB   00:00     
(3/4): python-pymilter-1.0-1.el7.x86_64.rpm                |  98 kB   00:00     
(4/4): sendmail-milter-8.14.7-5.el7.x86_64.rpm             |  71 kB   00:00     
--------------------------------------------------------------------------------
Total                                              598 kB/s | 231 kB  00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : sendmail-milter-8.14.7-5.el7.x86_64                          1/4 
  Installing : python-pydns-2.3.6-2.el7.noarch                              2/4 
  Installing : python-pymilter-1.0-1.el7.x86_64                             3/4 
  Installing : openpgpkey-milter-0.5-1.el7.noarch                           4/4 
  Verifying  : python-pydns-2.3.6-2.el7.noarch                              1/4 
  Verifying  : sendmail-milter-8.14.7-5.el7.x86_64                          2/4 
  Verifying  : python-pymilter-1.0-1.el7.x86_64                             3/4 
  Verifying  : openpgpkey-milter-0.5-1.el7.noarch                           4/4 

Installed:
  openpgpkey-milter.noarch 0:0.5-1.el7                                          

Dependency Installed:
  python-pydns.noarch 0:2.3.6-2.el7        python-pymilter.x86_64 0:1.0-1.el7   
  sendmail-milter.x86_64 0:8.14.7-5.el7   

Complete!

Die Installation von openpgpkey-milter, kann durch ausführen des nachfolgenden Befehls durchgeführt werden:

# rpm -qil openpgpkey-milter
Name        : openpgpkey-milter
Version     : 0.5
Release     : 1.el7
Architecture: noarch
Install Date: Fri 31 Aug 2018 02:20:39 PM CEST
Group       : System Environment/Daemons
Size        : 50233
License     : GPLv3+
Signature   : RSA/SHA256, Mon 04 Jan 2016 04:56:06 PM CET, Key ID 6a2faea2352c64e5
Source RPM  : openpgpkey-milter-0.5-1.el7.src.rpm
Build Date  : Mon 04 Jan 2016 01:08:27 AM CET
Build Host  : bvirthost02-nfs.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : ftp://ftp.nohats.ca/openpgpkey-milter
Summary     : OPENPGPKEY basd automatic encryption of emails using the milter API
Description :
The openpgpkey-milter package provides a milter plugin for sendmail or postfix
that will automatically encrypt plaintext emails if the target recipient is
publishing an OPENPGPKEY record protected with DNSSEC. This is currently an
IETF draft (draft-wouters-dane-openpgp)
/etc/tmpfiles.d/openpgpkey-milter.conf
/usr/lib/systemd/system/openpgpkey-milter.service
/usr/sbin/openpgpkey-milter
/usr/share/doc/openpgpkey-milter-0.5
/usr/share/doc/openpgpkey-milter-0.5/LICENSE
/usr/share/doc/openpgpkey-milter-0.5/README
/var/run/openpgpkey-milter
/var/run/openpgpkey-milter/openpgpkey-milter.sock
/var/spool/openpgpkey-milter

Die Installation von python-setproctitle, kann durch ausführen des nachfolgenden Befehls durchgeführt werden:

# yum install python-setproctitle
Loaded plugins: changelog, priorities
301 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package python-setproctitle.x86_64 0:1.1.6-5.el7 will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package                    Arch          Version             Repository   Size
================================================================================
Installing:
 python-setproctitle        x86_64        1.1.6-5.el7         base         15 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 15 k
Installed size: 29 k
Is this ok [y/d/N]: y
Downloading packages:
python-setproctitle-1.1.6-5.el7.x86_64.rpm                 |  15 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : python-setproctitle-1.1.6-5.el7.x86_64                       1/1 
  Verifying  : python-setproctitle-1.1.6-5.el7.x86_64                       1/1 

Installed:
  python-setproctitle.x86_64 0:1.1.6-5.el7                                      

Complete!

Die Installation von python-setproctitle, kann durch ausführen des nachfolgenden Befehls durchgeführt werden:

# rpm -qil python-setproctitle
Name        : python-setproctitle
Version     : 1.1.6
Release     : 5.el7
Architecture: x86_64
Install Date: Fri 31 Aug 2018 03:42:12 PM CEST
Group       : Unspecified
Size        : 30189
License     : BSD
Signature   : RSA/SHA256, Fri 04 Jul 2014 06:41:49 AM CEST, Key ID 24c6a8a7f4a80eb5
Source RPM  : python-setproctitle-1.1.6-5.el7.src.rpm
Build Date  : Tue 10 Jun 2014 10:01:15 AM CEST
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://pypi.python.org/pypi/setproctitle
Summary     : Python module to customize a process title
Description :
Python module allowing a process to change its title as displayed by
system tool such as ps and top.

It's useful in multiprocess systems, allowing to identify tasks each forked
process is busy with. This technique has been used by PostgreSQL and OpenSSH.

It's based on PostgreSQL implementation which has proven to be portable.
/usr/lib64/python2.7/site-packages/setproctitle-1.1.6-py2.7.egg-info
/usr/lib64/python2.7/site-packages/setproctitle.so
/usr/share/doc/python-setproctitle-1.1.6
/usr/share/doc/python-setproctitle-1.1.6/COPYRIGHT
/usr/share/doc/python-setproctitle-1.1.6/README.rst

Dienst/Deamon-Start einrichten

Um einen OpenPGPKey-milter, welcher als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server mit gestartet werden, was mit nachfolgendem Befehl realisiert werden kann:

# systemctl enable openpgpkey-milter.service
Created symlink from /etc/systemd/system/multi-user.target.wants/openpgpkey-milter.service to /usr/lib/systemd/system/openpgpkey-milter.service.

Eine Überprüfung, ob beim Neustart des Server der openpgpkey-milter-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:

# systemctl list-unit-files --type=service | grep -e openpgpkey-milter.service
openpgpkey-milter.service                     enabled
bzw.
# systemctl is-enabled openpgpkey-milter.service
enabled

iptables Regel

OpenPGPKey-milterauch über den Postfix - openpgpgkey-milter erreichbar ist und nicht das Empfangen der IP-Paket vom Paketfilter iptables blockiert wird, muss nachfolgende Regel zum iptables-Regelwerk hinzugefügt werden.

Um die aktuellen iptables-Regeln erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann:

# iptables -L -nv --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
4        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22  
5        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Nachfolgender Befehl, fügt folgende iptables-Regel dem iptables-Regelwerk nach der Position 4 hinzu, ohne das der Paketfilter angehalten werden muss:

  • -A INPUT -p tcp --dport 8890 -j ACCEPT

und hier der Befehl:

# iptables -I INPUT 5 -p tcp --dport 8890 -j ACCEPT

Ein erneute Abfrage des iptables-Regelwerts, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:

# iptables -L -nv --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
4        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5        0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:8890 state NEW
6        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Die neue Zeile ist an Position 5 (INPUT) zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (nur relevanter Ausschnitt):

...
5        0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:8890 state NEW
...

Um diese iptables-Regel dauerhaft, auch nach einem Neustart des Server, weiterhin im iptables-Regelwerk zu speichern, muss nachfolgend dargestellter Befehl abschließend noch ausgeführt werden:

# /usr/sbin/iptables-save > /etc/sysconfig/iptables 

Konfiguration

DNS-Einträge

Nachfolgender Befehl erstellt unter nachfolgenden Voraussetzungen zwei DNS-Records, welche so dann auf dem entsprechenden DNS-Server in der entsprechenden DNS-Zone eingetragen werden müssen.

Die Voraussetzungen sind wie folgt:

  1. es muss ein PGP-Schlüsselring vorhanden sein, in dem
  2. ein PGP-Schlüsselpaar enthalten ist, welches
  3. vom Benutzer dem der PGP-Schlüsselring gehört
  4. mittels openpgpkey auf shell-Basis extrahiert werden kann

Nachfolgender Befehl extrahiert aus dem PGP-Schlüsselring den öffentlichen Schlüssel aus dem PGP-Schlüsselpaar und wandelt diese in die zwei DNS-Records, einmal TYPE 61 und einmal OPENPGPKEY, direkt um.

:!: HINWEIS - Der Befehl sollte als der Benutzer ausgeführt werden, dem der PGP-Schlüsselring gehört !!!

$ openpgpkey --create --output both klaus@tachtler.net
; keyid: 2BD259DDC67F36D0
4894d50eed4fc7c94384e200023c171eb75f58cbed9a2507d180f420._openpgpkey.tachtler.net. IN OPENPGPKEY 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
; keyid: 2BD259DDC67F36D0
4894d50eed4fc7c94384e200023c171eb75f58cbed9a2507d180f420._openpgpkey.tachtler.net. IN TYPE61 \# 2218 99020d04523f5524011000c100c8fd0189095f5429bd55d957fe6b77a1529e94cd5d60e7d1a71ada6b7092bac82d9db837f540b2b21d0bf15cba36a8a5e1d9870475df9aa4481794845977e4eb9c685a78e2e2864954abd411d238184597ce0197df24eacc69f9220a3853f1861b688362e1990945a4f8bc4136ee0223f72fd76a7ab1f81b606b1d498176f6a415c952de3ad1614578957fc3721a1fc3510cfc9891228d7dad9b26777f85e2485cd46ed68c9dcaf622cfdb1583aeddd334b12986be11156fce68582d095175ccbe9ef7bf831b974ed12ae33b496ffe11dc6d54127eac844b86a81246bb48a803e44d06a5dabf432264d4c92a3eca8c6f47e50385b12fa0fd71950a31545e3e074ed9035d373073ed80533847c04a12b815b810fae0a21c334d05be37b0f464e6656f82502eb31f9619ea5c548def68f6da9d6e8d9d4bd9962dc21b03868509d12a51850f02ffe5b2e646db45be8d37dc4d84dde3b5024ed851d8da089de55d4e45e1a95046b65d0f92071fbafc95f9ff163efd8a8dd4053ce347ab92d20450697fdbd0fe45baf21dcdb60b99d3ba4077164c9b000084531135d708eab58948e1f8f72a71be9b009195fabb8ecc8e16279c8ab7a3855ced856f749ff3a4d066740211d2c32b741e63358c96eca69332a8eaabede3d9d1c8d44eda47578f7d85b3d6e71e077c2ab5640b589980af8799db7947b71d4d3ac7306749177cd6730011010001b42b4b6c6175732054616368746c657220286b6c61757329203c6b6c6175734074616368746c65722e6e65743e8902380413010200220502523f5524021b03060b090807030206150802090a0b0416020301021e01021780000a09102bd259ddc67f36d01bdd10008c0d2f9b33048ea5142eea6bd5467572ae5b8580a6201271cc77d2826f02a77cb92d85baecbe8d943780cfec1825837d5c37c7fddddf8eb5382d12c82c6c114b9cc2e2488c4ec09c59942c1de7c3e82a4eb6cc7b98e7a49ee5f9afede7ebed2e2efe6fcbe8b4646ac88aff35ac331d14d7983a48a51df996c6f3f8b3b57ea3f572cd3c97f70c83208f7a2c67b72a52c57edd23b16f9ca0598140eca26d66c6d75c13196a0f89f3bc131c7d72561b79c6e3cf37daa0ef68afac4acbafb1dc5418dc28a9ce0012ccb6dc6597883721625f6dbb45b2f6418ca9b9401393c5811ffd1d913d5f623ac5f45745270409e052a9c08a35bd0992311b0cac902d30b6fc85a88ef12da909b5963708567668fd45d185b6d12f4b6b625d2e342d511a2e06fce93b022b902cb5825c3392b656fb82d6ae5af2f44c923075dad874ee5699f7e79eedfd8382c501fa0106e86c9f93149ec8ef3a254e5f12be09daf4e4e9d8de6ac3fb0d13a0889a26cd526d48ddc7a4fc70ce5423673833eef9a36ed272fb8961eedb0eb201a2bf37a22cdb0e627e0646ea3031b8f0cb7c2cc5ebdb0623995dbcec4db6d56d6f5109899b9487452ffd05d828862dc0ae251855edc18a9ad5054fa0421462e7cce25fbdb61bea8015f84d1229772c2f335b5a22656852a1819d1751ebfe4539ced86a296f215e96c868103f8e7354e0fe3224eafeabd3e5275e25b9020d04523f5524011000ba87e0eb942f72f36515e2492e6e6227a64ee6be18dbe1daa9d13918ae07b8de7c840721a6fa5d0309a8e4375fc929963eb8f4c079eff42ba6489f6f2ddef895eab594baae55914d31dec16aadf3787766df0bfed87f0d216c10bc43594a36151b4a4a1c959e5eb782a088b3455b925f585db8b56f5cd2543b1681673503aa6c6062e3cd2644dcc71a8ac33232c2ba619a828abc5bd9c24961e1e312a8ce4fe6a0929b904de93856748ff1e2bb0155ba1893689a313b9cabcdbed2179f25c1a2ab1ca6fb1aadbf6b41ed377a45c8e83a7424c9fcc49b7304c1c6799214325d279270dd392b09138a6d2d648483dfe2bc6dc37ef69f315047e96c94b3ef13f481c9ca242ae3bec7ff42756e4caa38593c06e5241a7696aa237f7908bc26138f5ba7bdec59dd163118791d8cde1b5344fb9d5f6562e2b99b8182ca5edd3bae51f781badf2c46f76f7f9775dd44f63709246bf2155c3dbce72319ff72ecedc9ae621ea80b50548982cec35f6d1c26fd27de173b9f6a0eb242de254e87b64491cd1414479f4ee55ed9de1a358fe31ada7280d960daa1455656877e25277505ee5fa3e513ace357d470b438515aa9fb6a9901418e8cb4ce0d99d14a384e52a515085a99b13d60d216cf6b02fb4ae3413b001d6d9a17287a4ac582e796b6d87e75db17b4c16d11e94477719c3338a4d718fa88782f54b17abbdcd9b9f7763ba32ae4a5001101000189021f0418010200090502523f5524021b0c000a09102bd259ddc67f36d010760fff765f3189077225ce86cc9e638e8a8d16bfa5f001654e798a2bed756614b2dffc3c6da66fe29d09f44290ed118748c3c9868fcd3938963d5edec076d739344f5a6a07344ff81f9d63842803b1cfb2c8b0265cfa5ba4ed30af979ccc0304c6a497ea911db1572acfa9606c29ca0af0baa99a3ebbc8dd8ebbca50172b0ba3b64923878db47daa813f547a50d7c87b2536c888fc1c9733e454f102bd8a9f1ac1b5b007c6f65b4003706b3178f2e535ccacc2b9198d00862ac22bff36eb4165ecd9578900fed8e554b9802d4ca1a32657c93ff31e95b2cdf79e7c9571929e463d3eef848f548c52cf2ba4db3eb3749dc974910ff80511789ca813a086ed49b3cb30269fbeb10b412cab32b531f065036589849d4f6bd8364334cd6add50496483762e05fb123ab738d496671691e2bed60af9fbb46078f1c4cf9ab54ba9105a2864aaf259e6b1d63970c03e8d192563d30c06444a9e4f9a237081cd93bd2f0e2f6166629b9a2591f0c242a7063864797820639e53f4bbc10fd875f2c1e225593fbd35ec6e3d4fb278641085ad908d1f5dc4125611f20ef9419eb3ffa15702deaa68ca0113073c93c76a696c2c4e3fa56bec3c0c11b1a05f8afb91dd20521ef70dcb1fab4e39267efb48af5d37672cc775a97b71976d0c8e36e1374b9ee70e963fb91b245b400de78fbf8dad3a8e5b805da9fbe6d30fcfe1db57d5f4bf045621cae9ca

Die so erstellten zwei DNS-Records, einmal TYPE 61 und einmal OPENPGPKEY können nun auf dem entsprechenden DNS-Server in der entsprechenden DNS-Zone eingetragen werden.

Zur Überprüfung, ob der DNS-Record, entweder TYPE 61 oder OPENPGPKEY erfolgreich im DNS-Server hinetrlegt worden sind, kann nachfolgende Abfrage durchgeführt werden:

# openpgpkey --fetch --uid 'Klaus Tachtler (klaus) <klaus@tachtler.net>' klaus@tachtler.net
-----BEGIN PGP PUBLIC KEY BLOCK-----
Comment: klaus@tachtler.net key obtained from DNS
Comment: key transfer was protected by DNSSEC
Version: GnuPG v2.0.22 (GNU/Linux)

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
V9X0vwRWIcrpyg==
=5Nhw
-----END PGP PUBLIC KEY BLOCK-----

Ebenfalls zur Überprüfung, kann nachfolgender externe Link verwendet werden:

openpgpkey.info für klaus@tachtler.net

Zusätzlich gibt es auch noch eine einfache Möglichkeit der Überprüfung mit nachfolgendem Skript, welches von der unter nachfolgendem externen Link

zur Verfügung gestellt wird:

#!/bin/bash
# fetches an OPENPGPKEY and pipes the key into gpg
# based on a Twitter msg by Paul Wouters (https://twitter.com/letoams/status/560834359981539329)
# updated for draft-ietf-dane-openpgpkey-03
# 2015-05-14
 
maildomain=$(echo $1 | cut -d "@" -f 2)
localmail=$(echo $1 | cut -d "@" -f 1)
openpgpkeydomain=$(echo -n $localmail | openssl dgst -sha256 | cut -d "=" -f 2 | cut -c 1-57)._openpgpkey.$maildomain
echo "fetching ${openpgpkeydomain} ..."
dig +short +vc type61 $openpgpkeydomain | sed "s/ [^ ]*//;s/\W//g" | xxd -r -p | gpg

Nachfolgender allererste Aufruf, sollte in etwa nachfolgendes Ergebnis darstellen:

# sh openpgp-fetch.sh klaus@tachtler.net
fetching  4894d50eed4fc7c94384e200023c171eb75f58cbed9a2507d180f420._openpgpkey.tachtler.net ...
gpg: directory `/root/.gnupg' created
gpg: new configuration file `/root/.gnupg/gpg.conf' created
gpg: WARNING: options in `/root/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/root/.gnupg/secring.gpg' created
gpg: keyring `/root/.gnupg/pubring.gpg' created
pub  4096R/C67F36D0 2013-09-22 Klaus Tachtler (klaus) <klaus@tachtler.net>
sub  4096R/5E4A2AAD 2013-09-22

Erster Start OpenPGPKey-milter

Um den OpenPGPKey-milter zu starten kann nachfolgender Befehl angewandt werden:

# systemctl start openpgpkey-milter

Eine Überprüfung ob der Start des OpenDKIM erfolgreich war kann mit nachfolgendem Befehl durchgeführt werden, welcher eine Ausgabe in etwa wie nachfolgende erzeugen sollte:

# systemctl status openpgpkey-milter
● openpgpkey-milter.service - OPENPGPKEY auto encryption milter
   Loaded: loaded (/usr/lib/systemd/system/openpgpkey-milter.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2018-08-31 15:15:15 CEST; 4s ago
 Main PID: 31380 (openpgpkey-milt)
   CGroup: /system.slice/openpgpkey-milter.service
           ├─31380 /usr/bin/python /usr/sbin/openpgpkey-milter
           └─31381 /usr/bin/python /usr/sbin/openpgpkey-milter

Aug 31 15:15:15 vml70060.idmz.tachtler.net systemd[1]: Started OPENPGPKEY aut...
Aug 31 15:15:15 vml70060.idmz.tachtler.net systemd[1]: Starting OPENPGPKEY au...
Aug 31 15:15:15 vml70060.idmz.tachtler.net openpgpkey-milter[31380]: openpgpk...
Aug 31 15:15:15 vml70060.idmz.tachtler.net openpgpkey-milter[31380]: starting...
Hint: Some lines were ellipsized, use -l to show in full.

bzw. mit nachfolgendem Befehl, ob der Dienst/Daemon in der Prozessliste erscheint:

# ps aux | grep openpgpkey-milter
root     31380  0.7  0.6 235728 13052 ?        Ssl  15:15   0:00 /usr/bin/python /usr/sbin/openpgpkey-milter
root     31381  0.0  0.4 227532  9532 ?        S    15:15   0:00 /usr/bin/python /usr/sbin/openpgpkey-milter
root     31450  0.0  0.0 112704   940 pts/0    S+   15:15   0:00 grep --color=auto openpgpkey-milter

Konfiguration: Postfix

Nachfolgende Änderungen werden an den Konfigurationsdateien

  • /etc/postfix/main.cf
  • /etc/postfix/master.cf

durchgeführt, um eine Anbindung des Postfix an den OpenPGPKey zu realisieren.

Dabei soll die Anbindung von Postfix an den OpenPGPKey mit dem Verfahren

  • openpgpkey-milter erfolgen.

/etc/postfix/main.cf

Hier die Änderungen an der Konfigurationsdatei /etc/postfix/main.cf

(Nur relevanter Ausschnitt):

...
# OPENPGPKEY (openphpkey-milter)
openpgpkey_milter = inet:127.0.0.1:8890
...

/etc/postfix/master.cf

Hier die Änderungen an der Konfigurationsdatei /etc/postfix/master.cf

(Nur relevanter Ausschnitt):

# Tachtler - new -
# Outgoing traffic, BACK from amavisd-new from smtpd_proxy_filter.
192.168.0.60:10025     inet  n       -       n       -       -       smtpd
  -o content_filter=
  -o smtpd_proxy_filter=
#  -o smtpd_milters=
#  -o smtpd_milters=${opendkim_milter}
  -o smtpd_milters=${openpgpkey_milter},${opendkim_milter}
  -o smtpd_authorized_xforward_hosts=127.0.0.0/8,192.168.0.0/24,88.217.171.167/32
  -o smtpd_client_restrictions=
  -o smtpd_helo_restrictions=
  -o smtpd_sender_restrictions=
  -o smtpd_relay_restrictions=
  -o smtpd_recipient_restrictions=permit_mynetworks,reject
  -o smtpd_data_restrictions=
  -o mynetworks=0.0.0.0/32,127.0.0.0/8,192.168.0.0/24,88.217.171.167/32
  -o receive_override_options=no_unknown_recipient_checks
# Tachtler - new -
# Outgoing traffic, BACK from amavisd-new from content_filter.
192.168.0.60:10027     inet  n       -       n       -       -       smtpd
  -o content_filter=
  -o smtpd_proxy_filter=
#  -o smtpd_milters=
#  -o smtpd_milters=${opendkim_milter}
  -o smtpd_milters=${openpgpkey_milter},${opendkim_milter}
  -o smtpd_authorized_xforward_hosts=127.0.0.0/8,192.168.0.0/24,88.217.171.167/32
  -o smtpd_delay_reject=no
  -o smtpd_client_restrictions=
  -o smtpd_helo_restrictions=
  -o smtpd_sender_restrictions=
  -o smtpd_relay_restrictions=
  -o smtpd_recipient_restrictions=permit_mynetworks,reject
  -o smtpd_data_restrictions=reject_unauth_pipelining
  -o smtpd_end_of_data_restrictions=
  -o smtpd_restriction_classes=
  -o mynetworks=0.0.0.0/32,127.0.0.0/8,192.168.0.0/24,88.217.171.167/32
  -o smtpd_error_sleep_time=0
  -o smtpd_soft_error_limit=1001
  -o smtpd_hard_error_limit=1000
  -o smtpd_client_connection_count_limit=0
  -o smtpd_client_connection_rate_limit=0
#  -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters
  -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
  -o local_header_rewrite_clients=
...

Nachfolgend Erklärungen zu den WICHTIGSTEN Konfigurationen:

  •  -o smtpd_milters=${openpgpkey_milter},${opendkim_milter}

Die Option sorgt dafür, dass dem Parameter smtpd_milter der Inhalt des Parameters openpgpkey_milter übergeben wird. Falls mehrere MILTER zum Einsatz kommen, wird hier die Reihenfolge festgelegt, in der diese aufgerufen werden!

:!: ACHTUNG - Falls ein opendkim_milter ebenfalls zum Einsatz kommt, MUSS der openpgpkey_milter VOR dem opendkim_milter zum Einsatz kommen, da sonst die DKIM-Signatur zerstört wird !!!

Neustart MTA Postfix

Falls vorstehende Änderungen (natürlich an die jeweiligen Bedürfnisse angepasst) durchgeführt wurden, muss ein Neustart von Postfix durchgeführt werden.

Danach kann der postfix-Server mit nachfolgendem Befehle neu gestartet werden:

# systemctl restart postfix

Mit nachfolgendem Befehl kann der Status des abgefragt werden:

# systemctl status postfix
postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled)
   Active: active (running) since Thu 2015-10-15 11:11:26 CEST; 7s ago
  Process: 1128 ExecStop=/usr/sbin/postfix stop (code=exited, status=0/SUCCESS)
  Process: 1144 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS)
  Process: 1141 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS)
  Process: 1138 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS)
 Main PID: 1216 (master)
   CGroup: /system.slice/postfix.service
           ├─1216 /usr/libexec/postfix/master -w
           ├─1217 pickup -l -t unix -u -o content_filter=lmtp:[192.168.0.70]...
           └─1218 qmgr -l -t unix -u

Oct 15 11:11:26 server60.idmz.tachtler.net systemd[1]: Starting Postfix Mail...
Oct 15 11:11:26 server60.idmz.tachtler.net postfix/postfix-script[1214]: sta...
Oct 15 11:11:26 server60.idmz.tachtler.net postfix/master[1216]: daemon star...
Oct 15 11:11:26 server60.idmz.tachtler.net systemd[1]: Started Postfix Mail ...
Hint: Some lines were ellipsized, use -l to show in full.

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
tachtler/postfix_centos_7_-_openpgpkey_anbinden_openpgpkey-milter.txt · Zuletzt geändert: 2018/08/31 15:56 von klaus