SSL Verschlüsselung für POP3, IMAP und SMTP |
Lars
Moderator
  

Dabei seit: 20.12.2005
Beiträge: 996
Herkunft: Leipzig
 |
|
Hallo,
da PD-Admin von Haus aus keine Verschlüsselung mitbringt möchte ich hier einen Weg zur Verschlüsselung mit Hilfe des Programmes "Stunnel" aufzeigen. Stunnel ist ein Wrapper mit dem man so ziemlich alles Verschlüsseln kann. Hier im Forum gibt es noch ein anderes HowTo (SSL-Verschlüsselung für Imap, Pop3, smtp), welches mir persönlich aber nicht so zusagte.
Getestet wurde das ganze nur unter CentOS, sollte aber auf anderen Distributionen ähnlich laufen.
1. Stunnel installieren: yum install stunnel oder apt-get install stunnel
2. Anlegen des Zertifikates per Skript: vi sshgen.sh --> i drücken --> Code einfügen --> :xall
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
|
#!/bin/sh
echo 'creating key'
openssl req -new -nodes -out req.pem -keyout key.pem
openssl rsa -in key.pem -out $1.pem
openssl x509 -in req.pem -out ca-cert -req -signkey $1.pem -days 1825
cat ca-cert >> $1.pem
# remove temp files
echo 'removing temp files'
rm ca-cert
rm key.pem
rm req.pem
echo 'done'
echo 'do not forget to move the new key to the correct location'
echo 'and do the corresponding chown' |
|
2.1. chmod +x ssgen.sh
3. Skript ausführen: ./sshgen.sh mail --> Daten korrekt angeben
4. cp mail.pem /usr/local/pd-admin2/share/
4.1. chown qmaild:nofiles /usr/local/pd-admin2/share/mail.pem
4.2. chmod 440 /usr/local/pd-admin2/share/mail.pem
5. Stunnel Konfigurations-Files anlegen:
vi /etc/stunnel/imaps --> i drücken --> Code *1 einfügen --> :xall
vi /etc/stunnel/pop3s --> i drücken --> Code *2 einfügen --> :xall
vi /etc/stunnel/smtps --> i drücken --> Code *3 einfügen --> :xall
*1:
code: |
1:
2:
3:
4:
|
[imaps]
accept = 993
connect = 143
cert = /usr/local/pd-admin2/share/mail.pem |
|
*2:
code: |
1:
2:
3:
4:
|
[pop3s]
accept = 995
connect = 110
cert = /usr/local/pd-admin2/share/mail.pem |
|
*3:
code: |
1:
2:
3:
4:
5:
|
[smtps]
accept = 465
connect = 587
local = Server-IP Adresse einfügen
cert = /usr/local/pd-admin2/share/mail.pem |
|
6. Testing:
Zum Test mal den POP3 Tunnel mit /usr/sbin/stunnel /etc/stunnel/pop3s starten. Mit netstat -an solltet ihr nun den Port 995 lauschen sehen. Nun könnt Ihr euch mal mit einem Client auf den Port 995 (SSL) verbinden und schauen ob es geht.
7. Zum automatischen Start mit Systemboot habe ich das in /etc/rc.local oder bei Debian /etc/rc.d/rc.local, eingetragen:
/usr/sbin/stunnel /etc/stunnel/pop3s
/usr/sbin/stunnel /etc/stunnel/imaps
/usr/sbin/stunnel /etc/stunnel/smtps
Ich hoffe geholfen zu haben.
Grüße, Lars
|
|
15.02.2008 19:54 |
|
|
incunabulum
Mitglied
 
Dabei seit: 01.10.2006
Beiträge: 165
 |
|
Moin Lars,
Zitat: |
Original von Lars
Wrapper mit dem man so ziemlich alles Verschlüsseln kann. Hier im Forum gibt es noch ein anderes HowTo (SSL-Verschlüsselung für Imap, Pop3, smtp), welches mir persönlich aber nicht so zusagte.
|
Was gefiel dir denn an meiner Anleitung nicht so? Die Patcherei der run-Skripte?
Schöne Anleitung. Wird so auch sichergestellt, dass Authentifizierung etc. per Pop3s und SMTPS erforderlich ist? Oder kann es hierbei vorkommen, dass eine SMPTS Verbindung von extern durch stunnel so umgeleitet wird, dass diese für den smtp als localhost connection erscheint?
Zitat: |
7. Zum automatischen Start mit Systemboot habe ich das in /etc/rc.local oder bei Debian /etc/rc.d/rc.local, eingetragen:
/usr/sbin/stunnel /etc/stunnel/pop3s
/usr/sbin/stunnel /etc/stunnel/imaps
/usr/sbin/stunnel /etc/stunnel/smtps
|
Jetzt noch eine daemontools basierende Lösung, und alle Dienste nach Aussen würden über eine gemeinsame Schnittstelle (svc) gehandelt :-) Das könnte der Übersicht förderlich sein.
cu, mz
|
|
16.02.2008 09:53 |
|
|
Lars
Moderator
  

Dabei seit: 20.12.2005
Beiträge: 996
Herkunft: Leipzig
Themenstarter
 |
|
SMTPS geht nach meinen Tests nicht ohne Auth. Ich wäre aber dankbar wenn das noch mal jemand testen könnte.
Deine Anleitung ist super, aber irgendwie hat es bei mir nicht wie gewünscht funktioniert.
|
|
16.02.2008 17:30 |
|
|
Lars
Moderator
  

Dabei seit: 20.12.2005
Beiträge: 996
Herkunft: Leipzig
Themenstarter
 |
|
Das ist sicher nicht die gesamte Fehlermeldung. Ich tippe darauf das vorher noch was mit "Wrong permissions" kommt. Chmod/Chown wie in Punkt 4. beschrieben ausgeführt?
|
|
04.03.2009 17:42 |
|
|
iCon
Mitglied
 
Dabei seit: 04.03.2009
Beiträge: 2
 |
|
ne das hab ich gemacht...
Zitat: |
2009.03.05 19:44:43 LOG7[11174:3082684080]: Snagged 64 random bytes from /root/.rnd 2009.03.05 19:44:43 LOG7[11174:3082684080]: Wrote 1024 new random bytes to /root/.rnd 2009.03.05 19:44:43 LOG7[11174:3082684080]: RAND_status claims sufficient entropy for the PRNG 2009.03.05 19:44:43 LOG7[11174:3082684080]: PRNG seeded successfully 2009.03.05 19:44:43 LOG7[11174:3082684080]: Certificate: /etc/stunnel/stunnel.pem 2009.03.05 19:44:43 LOG7[11174:3082684080]: Certificate loaded 2009.03.05 19:44:43 LOG7[11174:3082684080]: Key file: /etc/stunnel/stunnel.pem 2009.03.05 19:44:43 LOG7[11174:3082684080]: Private key loaded 2009.03.05 19:44:43 LOG7[11174:3082684080]: SSL context initialized for service stunnel inetd mode must define a remote host or an executable |
iCon
|
|
05.03.2009 19:45 |
|
|
Lars
Moderator
  

Dabei seit: 20.12.2005
Beiträge: 996
Herkunft: Leipzig
Themenstarter
 |
|
Prüfe mal die Konfigurationen ob die auch so aussehen wie vorgegeben. Stimmt der Cert Name, wurde die IP Adresse bei smtps -> local korrekt angegeben.
Für mich sieht es aber so aus als ob Du entweder kein PD-Admin/SE einsetzt oder meiner Anleitung nicht korrekt gefolgt bist. Ansonsten würde z.b. das Zertifikat nicht unter /etc/stunnel/stunnel.pem zu finden sein.
Diese Anleitung bezieht sich auf ein PD-Admin System mit der Serverumgebung (SE) und wurde nur da getestet. Das sollte zwar ähnlich in anderen Umgebungen funktionieren aber dafür möchte ich keinen "Support" geben. Mit der Fehlermeldung bei Google findet sich übrigens schon einiges.
|
|
06.03.2009 11:36 |
|
|
dor_neue
Mitglied
 
Dabei seit: 31.03.2009
Beiträge: 36
Herkunft: 127.0.0.1
 |
|
Zitat: |
Original von Lars
6. Testing:
Zum Test mal den POP3 Tunnel mit /usr/sbin/stunnel /etc/stunnel/pop3s starten. Mit netstat -an solltet ihr nun den Port 995 lauschen sehen. |
Genau an dem Punkt hab ich ein Problem. Ich bekomme immer die Fehlermeldung:
Zitat: |
/etc/stunnel/stunnel.pem: No such file or directory (2) |
auch die Config-Datei unter /etc/stunnel/stunnel.conf hab ich schon angesehen und angepasst...
Kein Erfolg bisher...
Kann mir dabei vielleicht einer helfen?
__________________ Installierte pd-admin-Version: v4.10
Installierte Version d. Serverumgebung: 2-0.141
Lizenztyp: light30
System: Ubuntu 8.04 LTS Server
|
|
02.04.2009 23:52 |
|
|
incunabulum
Mitglied
 
Dabei seit: 01.10.2006
Beiträge: 165
 |
|
Gibt es denn /etc/stunnel/stunnel.pem? Wenn nicht, was passiert, wenn du stunnel mit einem Argument startest, dass auf deine .pem-Datei verweisst?
cu, mz
|
|
03.04.2009 09:18 |
|
|
dor_neue
Mitglied
 
Dabei seit: 31.03.2009
Beiträge: 36
Herkunft: 127.0.0.1
 |
|
Die Datei XXX gibt es nicht. Die will ich ja auch eigentlich nicht nutzen, denn dafür sind ja die Config-Files da.
Ich hab aber testweise mal die .pem-Datei kopiert und bekam dann folgende Meldung:
Zitat: |
inetd mode must define a remote host or an executable |
Dann hab ich das versucht:
Zitat: |
stunnel -p /usr/local/pd-admin2/share/mail.pem |
und bekam die selbe Fehlermeldung wie oben. Logisch, ihm fehlen die Config-Dateien und ich müsste jetzt alles per Parameter einstellen (was ich aber mit Config-Dateien ja eigentlich vermeiden wollte)
__________________ Installierte pd-admin-Version: v4.10
Installierte Version d. Serverumgebung: 2-0.141
Lizenztyp: light30
System: Ubuntu 8.04 LTS Server
|
|
03.04.2009 14:45 |
|
|
|
|
 |
Impressum | Team | Hilfe
|