Supervise Run Skripte für SSL verschlüsselten Zugriff auf Pop3, Imap, Smtp
Leider bringt pdadmin von Hause aus keine Unterstützung für pop3s, Imaps sowie ssmtp (smtps) mit. Dies kann aber einfach und mit wenig Aufwand nachgerüstet werden.
Der Imap-Server Courier, der bei Pd-Admin teil der Standardumgebung ist, kann entsprechend konfiguriert Imaps. Smtps sowie Pop3s werden über stunnel realisiert.
Vorbereitungen
- stunnel installieren (apt-get install stunnel unter Debian)
- Zertifikat erstellen. Wir verwenden hierfür folgendes Script. Der Name des Zertifikats wird als Parameter übergeben:
#!/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 999 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'
- Das entsprechende Zertifikat in /usr/local/pd-admin2/etc/imapd-ssl eintragen
Run Skripte
Im folgenden Run-Skripte für den Betrieb von Imaps, Pop3s sowie Smtps.
Imaps
Das Scipt envconv wird vom normalen Imap Run-Verzeichnis übernommen.:
#!/bin/sh HOSTNAME=`hostname --fqdn` rm -rf ./env/*; mkdir -p env cd env cat /usr/local/pd-admin2/etc/imapd | ../envconv cat /usr/local/pd-admin2/etc/imapd-ssl | ../envconv cd .. exec 2>&1 exec /usr/local/bin/envdir ./env/ \ /usr/local/bin/softlimit -m 9000000 \ /usr/local/bin/tcpserver -v -R -H -l $HOSTNAME 0 993 \ /usr/local/pd-admin2/bin/couriertls -server -tcpd \ /usr/local/pd-admin2/sbin/imaplogin \ /usr/local/pd-admin2/bin/imapd Maildir
Pop3s:
#!/bin/bash QMAILDUID=`id -u qmaild` NOFILESGID=`id -g qmaild` HOSTNAME=`hostname -f` exec /usr/local/bin/softlimit -m 30000000 \ /usr/local/bin/tcpserver -v -R -H -l 0 0 995 \ /usr/sbin/stunnel -f -p /usr/local/pd-admin2/certs/mail.pem \ -l /var/qmail/bin/qmail-popup $HOSTNAME \ /var/qmail/bin/tcp-env /usr/sbin/logpopauth-pre /bin/checkpoppasswd \ /usr/bin/logpopauth-post /var/qmail/bin/qmail-pop3d Maildir
Smtps:
#!/bin/bash QMAILDUID=`id -u qmaild` NOFILESGID=`id -g qmaild` HOSTNAME=`hostname -f` if [ "$HOSTNAME" == "" ]; then echo "Kein Hostname gesetzt." exit 11 fi exec /usr/local/bin/softlimit -m 80000000 \ /usr/local/bin/tcpserver -x /etc/tcp.smtp.cdb -H -P -R -u $QMAILDUID -g $NOFILESGID -c 40 -v 0 \ ssmtp /usr/sbin/stunnel -f -p /usr/local/pd-admin2/share/imapd.pem -l \ /var/qmail/bin/tcp-env relaylock /var/qmail/bin/qmail-smtpd $HOSTNAME \ /usr/local/pd-admin2/bin/checksmtppasswd /bin/true 2>&1 | /var/qmail/bin/splogger smtpd 3