mightymike99
23.08.02, 01:29
Moin auch,
ich durfte mich die letzten Tagen mit diesem Thema beschäftigen und habe parallel ein Stück Doku geschrieben. Diese möge in Zukunft allen Interessierten helfen. Bei mir läuft das über OutlookExpress. Einziger Wehrmutstropfen ist, dass bei jedem Start von OE eine Warnmeldung kommt, dass das Zertifikat als nicht vertraulich eingestuft wird (logisch, weil ich es mir selbst bestätigt habe). Man kann das dann mit JA bestätigen. Die Verschlüsselung, um sich Mails abzuholen, also auch die des Passwortes, ist dann aktiv (kann man mit Ethereal prüfen). - Übrigens, irgendwo habe ich hier gelesen, dass jemand mit Kmail über Port 995 Mails abholen konnte, mit OE aber nicht. Wenn die Zertifikate nicht korrekt angelegt wurden, holt Kmail die Mails UNverschlüsselt ab (laut Etheral) - sehr unschön.
OK, hier gehts los.
------Schnipp Anleitung
Einrichten eines SSL/TSL-POP3 Servers
1. Von www.openssl.org Version openssl-0.9.5a.tar.gz downloaden
(Diese Version läuft unter SuSE 7.4 fehlerfrei durch)
2. Von www.qpopper.com Version qpopper4.0.4.tar.gz downloaden
3. mit ftp beide Dateien zum Emai Server kopieren
4. enpacken mit
gunzip -f qpopper4.0.4.tar.gz
tar -xf qpopper4.0.4.tar
gunzip -f openssl-0.9.5a.tar.gz
tar -xf openssl-0.9.5a.tar
5. openssl installieren mit
./config
make
make test
make install
Es dürfen Keine Errors erscheinen
6. qpopper installieren mit
./configure �with-openssl
make
make install
Es dürfen Keine Errors erscheinen
popper muss jetzt in /usr/local/sbin sein
ggf. chmod 755 popper
7. /etc/inetd Eintrag ergänzen (ggf. pop3 ausklammern)
spop3 stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/popper -s -f /etc/mail/pop/qpopper.config
8. ggf. /etc/services Eintrag ergänzen
pop3s 995/tcp spop3 # pop3 protocol over TLS/SSL
pop3s 995/udp spop3 # pop3 protocol over TLS/SSL
9. Verzeichniss anlegen
mkdir /etc/mail/certs
mkdir /etc/mail/pop
chmod 600 /etc/mail/certs
chmod 600 /etc/mail/pop
10. in das Verzeichnis /etc/mail/pop wechseln
Datei qpopper.config anlegen mit
vi qpopper.config
Einträge darin:
set tls-support = alternate-port
set tls-server-cert-file = /etc/mail/certs/cert.pem
set tls-private-key-file = /etc/mail/certs/privatekey.pem
11. Zertifikate anlegen ( in /etc/mail/pop)
CA Schlüssel einrichten:
openssl genrsa -des3 -out ca.key 1024
CA Zertifikat einrichten:
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
Common Name (eg, YOUR name) []:linux01.domäne.de
ACHTUNG: ganzen Rechnernamen eintragen
Testzertifikat einrichten:
openssl req -new -nodes -key ca.key -out req.pem -keyout cert.pem
Common Name (eg, YOUR name) []:linux01.domäne.de
ACHTUNG: ganzen Rechnernamen eintragen
Zertifikat bestätigen:
openssl x509 -req -CA ca.crt -CAkey ca.key -days 3650 -in req.pem -out cert.pem -CAcreateserial
zu Testzwecken: Zertifikat anschauen
openssl x509 -noout -text -in cert.pem
zu Testzwecken: Zertifikat in DER-Format umwandeln
openssl x509 -in cert.pem -out cert.der -outform DER
Aus den verschlüsselten privaten Schlüssel einen unverschlüsselten machen:
openssl rsa -in ca.key -out privatekey.pem
zu Testzwecken: Zertifikat mit privaten Schlüssel vergleichen (Zahlenkombination muss gleich sein, ansonsten gehören sie nicht zusammen)
openssl x509 -noout -modulus -in cert.pem | openssl md5
openssl rsa -noout -modulus -in ca.key | openssl md5
openssl rsa -noout -modulus -in privatekey.pem | openssl md5
12. privtekey.pem und cert.pem nach /etc/mail/certs kopieren und absichern:
cp privatekey.pem ../certs/
cp cert.pem ../certs/
cd ../certs
chmod 600 *
ls �l
13. ined neustarten
rcinedt restart
14. zu Testzwecken: Test, ob Verbindung hergestellt werden kann
( von /etc/mail/pop)
openssl s_client -key ca.key -cert cert.pem -ssl2 -connect linux01:spop3
Antwort sieht so aus:
root@linux01:/etc/mail/pop > openssl s_client -key ca.key -cert cert.pem -ssl2 -connect linux01:spop3
Enter PEM pass phrase:
CONNECTED(00000003)
depth=0 /C=DE/ST=Deutschland/L=Oldenburg/O=XXXX
XXXX/CN=linux01.XXXX.de/Email=HolgerXXXX
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /C=DE/ST=Deutschland/L=Oldenburg/O=XXXX
XXXX/CN=linux01.XXXX.de/Email=HolgerXXXX
verify error:num=27:certificate not trusted
verify return:1
depth=0 /C=DE/ST=Deutschland/L=Oldenburg/O=XXXX
XXXX/CN=linux01.XXXX.de/Email=HolgerGXXX
verify error:num=21:unable to verify the first certificate
verify return:1
---
Server certificate
-----BEGIN CERTIFICATE-----
XXXX
-----END CERTIFICATE-----
subject=/C=DE/ST=Deutschland/L=Oldenburg/O=XXXX
XXXX/CN=linux01.XXXXX.de/Email=HolgerXXXX
issuer=/C=DE/ST=Deutschland/L=Oldenburg (Oldbg.)/O=XXXX
XXXX/CN=linux01.XXXX.de/Email=HolgerXXXX
---
No client certificate CA names sent
---
Ciphers common between both SSL endpoints:
RC4-MD5 EXP-RC4-MD5 RC2-CBC-MD5
EXP-RC2-CBC-MD5 DES-CBC-MD5 DES-CBC3-MD5
RC4-64-MD5
---
SSL handshake has read 882 bytes and written 239 bytes
---
New, SSLv2, Cipher is DES-CBC3-MD5
Server public key is 1024 bit
SSL-Session:
Protocol : SSLv2
Cipher : DES-CBC3-MD5
Session-ID: 97C4BF3C1ED7A739480B00768B03056F
Session-ID-ctx:
Master-Key: D87E4A95BA88C906192E8C1F7246294FE9BEECF074CE55CB
Key-Arg : 35A5C8129B4F45C2
Start Time: 1029933562
Timeout : 300 (sec)
Verify return code: 21 (unable to verify the first certificate)
---
+OK Qpopper (version 4.0.4) at linux01.XXXX.de starting.
Wer will, kann noch n bisschen auf den popper rumkaspern:
user NAME
pass PASSWORT
list
quit
ggf. noch auf Clientrechnern die host-Einträge auf linux01.XXXX.de und die services auf überprüfen:
pop3s 995/tcp spop3 # pop3 protocol over TLS/SSL
pop3s 995/udp spop3 # pop3 protocol over TLS/SSL
Dann OE einrichten
------ Schnipp Anleitung Ende
Ciao,
Holger[username=31holgi]
ich durfte mich die letzten Tagen mit diesem Thema beschäftigen und habe parallel ein Stück Doku geschrieben. Diese möge in Zukunft allen Interessierten helfen. Bei mir läuft das über OutlookExpress. Einziger Wehrmutstropfen ist, dass bei jedem Start von OE eine Warnmeldung kommt, dass das Zertifikat als nicht vertraulich eingestuft wird (logisch, weil ich es mir selbst bestätigt habe). Man kann das dann mit JA bestätigen. Die Verschlüsselung, um sich Mails abzuholen, also auch die des Passwortes, ist dann aktiv (kann man mit Ethereal prüfen). - Übrigens, irgendwo habe ich hier gelesen, dass jemand mit Kmail über Port 995 Mails abholen konnte, mit OE aber nicht. Wenn die Zertifikate nicht korrekt angelegt wurden, holt Kmail die Mails UNverschlüsselt ab (laut Etheral) - sehr unschön.
OK, hier gehts los.
------Schnipp Anleitung
Einrichten eines SSL/TSL-POP3 Servers
1. Von www.openssl.org Version openssl-0.9.5a.tar.gz downloaden
(Diese Version läuft unter SuSE 7.4 fehlerfrei durch)
2. Von www.qpopper.com Version qpopper4.0.4.tar.gz downloaden
3. mit ftp beide Dateien zum Emai Server kopieren
4. enpacken mit
gunzip -f qpopper4.0.4.tar.gz
tar -xf qpopper4.0.4.tar
gunzip -f openssl-0.9.5a.tar.gz
tar -xf openssl-0.9.5a.tar
5. openssl installieren mit
./config
make
make test
make install
Es dürfen Keine Errors erscheinen
6. qpopper installieren mit
./configure �with-openssl
make
make install
Es dürfen Keine Errors erscheinen
popper muss jetzt in /usr/local/sbin sein
ggf. chmod 755 popper
7. /etc/inetd Eintrag ergänzen (ggf. pop3 ausklammern)
spop3 stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/popper -s -f /etc/mail/pop/qpopper.config
8. ggf. /etc/services Eintrag ergänzen
pop3s 995/tcp spop3 # pop3 protocol over TLS/SSL
pop3s 995/udp spop3 # pop3 protocol over TLS/SSL
9. Verzeichniss anlegen
mkdir /etc/mail/certs
mkdir /etc/mail/pop
chmod 600 /etc/mail/certs
chmod 600 /etc/mail/pop
10. in das Verzeichnis /etc/mail/pop wechseln
Datei qpopper.config anlegen mit
vi qpopper.config
Einträge darin:
set tls-support = alternate-port
set tls-server-cert-file = /etc/mail/certs/cert.pem
set tls-private-key-file = /etc/mail/certs/privatekey.pem
11. Zertifikate anlegen ( in /etc/mail/pop)
CA Schlüssel einrichten:
openssl genrsa -des3 -out ca.key 1024
CA Zertifikat einrichten:
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
Common Name (eg, YOUR name) []:linux01.domäne.de
ACHTUNG: ganzen Rechnernamen eintragen
Testzertifikat einrichten:
openssl req -new -nodes -key ca.key -out req.pem -keyout cert.pem
Common Name (eg, YOUR name) []:linux01.domäne.de
ACHTUNG: ganzen Rechnernamen eintragen
Zertifikat bestätigen:
openssl x509 -req -CA ca.crt -CAkey ca.key -days 3650 -in req.pem -out cert.pem -CAcreateserial
zu Testzwecken: Zertifikat anschauen
openssl x509 -noout -text -in cert.pem
zu Testzwecken: Zertifikat in DER-Format umwandeln
openssl x509 -in cert.pem -out cert.der -outform DER
Aus den verschlüsselten privaten Schlüssel einen unverschlüsselten machen:
openssl rsa -in ca.key -out privatekey.pem
zu Testzwecken: Zertifikat mit privaten Schlüssel vergleichen (Zahlenkombination muss gleich sein, ansonsten gehören sie nicht zusammen)
openssl x509 -noout -modulus -in cert.pem | openssl md5
openssl rsa -noout -modulus -in ca.key | openssl md5
openssl rsa -noout -modulus -in privatekey.pem | openssl md5
12. privtekey.pem und cert.pem nach /etc/mail/certs kopieren und absichern:
cp privatekey.pem ../certs/
cp cert.pem ../certs/
cd ../certs
chmod 600 *
ls �l
13. ined neustarten
rcinedt restart
14. zu Testzwecken: Test, ob Verbindung hergestellt werden kann
( von /etc/mail/pop)
openssl s_client -key ca.key -cert cert.pem -ssl2 -connect linux01:spop3
Antwort sieht so aus:
root@linux01:/etc/mail/pop > openssl s_client -key ca.key -cert cert.pem -ssl2 -connect linux01:spop3
Enter PEM pass phrase:
CONNECTED(00000003)
depth=0 /C=DE/ST=Deutschland/L=Oldenburg/O=XXXX
XXXX/CN=linux01.XXXX.de/Email=HolgerXXXX
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /C=DE/ST=Deutschland/L=Oldenburg/O=XXXX
XXXX/CN=linux01.XXXX.de/Email=HolgerXXXX
verify error:num=27:certificate not trusted
verify return:1
depth=0 /C=DE/ST=Deutschland/L=Oldenburg/O=XXXX
XXXX/CN=linux01.XXXX.de/Email=HolgerGXXX
verify error:num=21:unable to verify the first certificate
verify return:1
---
Server certificate
-----BEGIN CERTIFICATE-----
XXXX
-----END CERTIFICATE-----
subject=/C=DE/ST=Deutschland/L=Oldenburg/O=XXXX
XXXX/CN=linux01.XXXXX.de/Email=HolgerXXXX
issuer=/C=DE/ST=Deutschland/L=Oldenburg (Oldbg.)/O=XXXX
XXXX/CN=linux01.XXXX.de/Email=HolgerXXXX
---
No client certificate CA names sent
---
Ciphers common between both SSL endpoints:
RC4-MD5 EXP-RC4-MD5 RC2-CBC-MD5
EXP-RC2-CBC-MD5 DES-CBC-MD5 DES-CBC3-MD5
RC4-64-MD5
---
SSL handshake has read 882 bytes and written 239 bytes
---
New, SSLv2, Cipher is DES-CBC3-MD5
Server public key is 1024 bit
SSL-Session:
Protocol : SSLv2
Cipher : DES-CBC3-MD5
Session-ID: 97C4BF3C1ED7A739480B00768B03056F
Session-ID-ctx:
Master-Key: D87E4A95BA88C906192E8C1F7246294FE9BEECF074CE55CB
Key-Arg : 35A5C8129B4F45C2
Start Time: 1029933562
Timeout : 300 (sec)
Verify return code: 21 (unable to verify the first certificate)
---
+OK Qpopper (version 4.0.4) at linux01.XXXX.de starting.
Wer will, kann noch n bisschen auf den popper rumkaspern:
user NAME
pass PASSWORT
list
quit
ggf. noch auf Clientrechnern die host-Einträge auf linux01.XXXX.de und die services auf überprüfen:
pop3s 995/tcp spop3 # pop3 protocol over TLS/SSL
pop3s 995/udp spop3 # pop3 protocol over TLS/SSL
Dann OE einrichten
------ Schnipp Anleitung Ende
Ciao,
Holger[username=31holgi]