Nachdem der externe Zugriff auf die IMAP Boxen eingerichtet ist, ging es nun darum, wie man den Externen den Mailversand über den öffentlichen Mailserver ermöglichen konnte.
Diese Anleitung von GitHub (The Perl Solution) war der Ausgangspunkt für das folgende
# aptitude install exim4-daemon-heavy
# cd /tmp # openssl req -new -x509 -newkey rsa:2048 -nodes -out exim.crt -keyout exim.key -days 730 # mv exim.crt /etc/exim4/ # mv exim.key /etc/exim4/
MAIN_TLS_ENABLE = yes perl_startup = do '/etc/exim4/perl.pl' perl_at_start
imap_plain: driver = plaintext public_name = PLAIN server_condition = ${perl{imapLogin}{172.16.1.9}{$2}{$3}} server_set_id = $2 imap_login: driver = plaintext public_name = LOGIN server_prompts = "Username:: : Password::" server_condition = ${perl{imapLogin}{172.16.1.9}{$1}{$2}} server_set_id = $1
# update-exim4.conf # /etc/init.d/exim4 restart
# telnet 192.168.1.7 25 Trying 192.168.1.7... Connected to 192.168.1.7. Escape character is '^]'. 220 psserver1.as1ext.local ESMTP Exim 4.72 Tue, 22 Jan 2013 17:04:03 +0100 EHLO . 250-psserver1.as1ext.local Hello . [192.168.1.254] 250-SIZE 52428800 250-PIPELINING 250-AUTH PLAIN LOGIN 250-STARTTLS 250 HELP QUIT
Es müssen die STARTTLS und die AUTH extensions als Antwort auf den extendend HELO (EHLO) angeboten werden.
# telnet 192.168.1.7 25 Trying 192.168.1.7... Connected to 192.168.1.7. Escape character is '^]'. 220 psserver1.as1ext.local ESMTP Exim 4.72 Tue, 22 Jan 2013 17:08:13 +0100 EHLO . 250-psserver1.as1ext.local Hello . [192.168.1.254] 250-SIZE 52428800 250-PIPELINING 250-AUTH PLAIN LOGIN 250-STARTTLS 250 HELP STARTTLS 220 TLS go ahead
Wenn auf “220 TLS go ahead” keine komischen Meldungen in /var/log/exim4/mainlog auftauchen, ist auch dieses Teilziel geschafft
# printf 'user' | openssl base64 -e dXNlcg== # printf 'password' | openssl base64 -e cGFzc3dvcmQ=
Dann kann getestet werden:
# telnet 192.168.1.7 25 Trying 192.168.1.7... Connected to 192.168.1.7. Escape character is '^]'. 220 psserver1.as1ext.local ESMTP Exim 4.72 Tue, 22 Jan 2013 17:15:00 +0100 EHLO . 250-psserver1.as1ext.local Hello . [192.168.1.254] 250-SIZE 52428800 250-PIPELINING 250-AUTH PLAIN LOGIN 250-STARTTLS 250 HELP AUTH LOGIN 334 VXNlcm5hbWU6 dXNlcg== 334 UGFzc3dvcmQ6 cGFzc3dvcmQ= 235 Authentication succeeded QUIT 221 psserver1.as1ext.local closing connection Connection closed by foreign host.
Auf die erste kryptische 334er-Aufforderung reagiert man mit dem User, die zweite wird mit dem Passwort beantwortet und wenn alles klappt wird der Test mit der Meldung “235 Authentication succeeded” belohnt.