PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dummy-Anleitung qpopper mit ssl



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]