User Tools

Site Tools


exim-und-smtp-authentication-via-imap

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
exim-und-smtp-authentication-via-imap [2017/08/21 08:35] – created baumiexim-und-smtp-authentication-via-imap [2017/08/22 08:22] (current) baumi
Line 1: Line 1:
 +~~META:
 +date created = 2013-01-22 16:41
 +&date modified = 2013-01-22 16:41
 +~~
 ====== EXIM und SMTP Authentication via IMAP ====== ====== EXIM und SMTP Authentication via IMAP ======
-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.+Nachdem der externe Zugriff auf die IMAP Boxen [[imaps-proxy-mit-perdition|eingerichtet]] ist, ging es nun darum, wie man den Externen den Mailversand über den öffentlichen Mailserver ermöglichen konnte.
  
 ===== Folgende Dinge sollten dabei erreicht werden: ===== ===== Folgende Dinge sollten dabei erreicht werden: =====
Line 12: Line 16:
   - exim4 verwendet dc_use_split_config   - exim4 verwendet dc_use_split_config
  
-Diese [[https://github.com/Exim/exim/wiki/AuthenticatedSmtpUsingIMAP|Anleitung]]Anleitung von GitHub (The Perl Solution) war der Ausgangspunkt für das folgende+Diese [[https://github.com/Exim/exim/wiki/AuthenticatedSmtpUsingIMAP|Anleitung]] von GitHub (The Perl Solution) war der Ausgangspunkt für das folgende 
 + 
 +===== Kochrezept ===== 
 +  - Tausch der exim-Installation gegen exim4-daemon-heavy wg. der integrierten Perl Unterstützung<code># aptitude install exim4-daemon-heavy</code> 
 +  - Zertifikat erzeugen und installieren 
 +    - Variante 1 – komplett neues Zertifikat:<code> 
 +# 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/ 
 +</code> 
 +    - Variante 2 – vorhandenes Zertifikate verwenden – dann weiß man eh was zu tun ist 
 +  - perl.pl aus der Exim-Doku nach /etc/exim4/perl.pl abspeichern 
 +  - TLS und Perl Funktionen aktivieren – dazu in /etc/exim4/conf.d/main/000_localmacros folgendes eintragen<code> 
 +MAIN_TLS_ENABLE = yes 
 +perl_startup = do '/etc/exim4/perl.pl' 
 +perl_at_start 
 +</code> 
 +  - SMTP-Authentication konfigurieren – dazu folgenden Code als /etc/exim4/conf.d/auth/10_exim4-config_imap speichern (auch das ist de-facto eine 1:1.5 Kopie von GitHub)<code> 
 +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 
 +</code> 
 +  - exim4 Config aktualisieren und exim neustarten<code> 
 +# update-exim4.conf 
 +# /etc/init.d/exim4 restart 
 +</code> 
 +  - Testen, ob das alles funktioniert 
 +    - Generelles Setup<code> 
 +# 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</code>Es müssen die STARTTLS und die AUTH extensions als Antwort auf den extendend HELO (EHLO) angeboten werden. 
 +    - TLS <code> 
 +# 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</code>Wenn auf “220 TLS go ahead” keine komischen Meldungen in /var/log/exim4/mainlog auftauchen, ist auch dieses Teilziel geschafft 
 +    - Authentication – das ist ein wenig diffiziler, denn UserID und Passwort werden als base64 string erwartet – printf und openssl helfen, diese Strings zu erhalten: <code> 
 +# printf 'user' | openssl base64 -e 
 +dXNlcg== 
 +# printf 'password' | openssl base64 -e 
 +cGFzc3dvcmQ=</code>Dann kann getestet werden:<code> 
 +# 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.</code>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. 
 + 
 +{{tag>kb linux exim4 smtp imap mailserver}}
  
exim-und-smtp-authentication-via-imap.1503297357.txt.gz · Last modified: 2017/08/21 08:35 by baumi

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki