Kurs2: Projekt IT-Security
5.x Absicherung der Maildienste

Der smtp-MailTransferAgent PostFix (Sequenzdoku 9.x)
5.1
  • Starte den MailTransferAgent-Dienst
    - Teste zunächst den lokalen Maildienst, indem per "telnet://localhost:25" oder dem mail-Kommando eine Mail verschick wird.
    - http://www.rfc-editor.org/rfc/rfc821.txt (Example of the SMTP Procedure)
    S: MAIL FROM:<Smith@Alpha.ARPA>
    R: 250 OK
    S: RCPT TO:<Jones@Beta.ARPA>
    R: 250 OK
    S: RCPT TO:<Green@Beta.ARPA>
    R: 550 No such user here
    S: RCPT TO:<Brown@Beta.ARPA>
    R: 250 OK
    S: DATA
    R: 354 Start mail input; end with .
    S: Blah blah blah...
    S: ...etc. etc. etc.
    S: <CRLF>.<CRLF>
    R: 250 OK
    smtp-Beispiel ohne Serverantworten (Wikipedia)
    HELO foobar.example.net
    MAIL FROM:<sender@example.org>
    RCPT TO:<receiver@example.com>
    DATA
    From: <sender@example.org>
    To: <receiver@example.com>
    Subject: Testmail
    Date: Thu, 26 Oct 2006 13:10:50 +0200
    
    Lorem ipsum dolor sit amet, consectetur adipisici elit,
    sed eiusmod tempor incidunt ut labore et dolore magna aliqua.
    .
    QUIT

    • Welche Absenderangaben (bei gegebener Netzkonfiguration) sind möglich?
    • Wie werden die IP-Adressen der MailTransferAgent's für z.B. webmaster@siemens.com ermittelt?
      - siehe: nslookup (set q=mx) oder dig FQDN MX
  • Falls (noch) kein Mailboxdienst zur Verfügung steht können die Mails nur lokal gelesen werden (mail bzw. /var/spool/mail/)
  • Teste den Zugriff auf den smtp-Port deines Nachbarrechners
    Passe für ext. Zugriffe (falls erforderlich) die MTA-Konfiguration (über YAST oder conf-Datei) an
    Die Interfaces für ext. Zugriffe und der Server-FQDN werden von yast nur in die main.cf (nicht exim.conf) eingetragen
    #vi /etc/sysconfig/postfix
        POSTFIX_LISTEN="Netzwerkinterface[s]"
        POSTFIX_MYHOSTNAME="Server-FQDN"
    Nach dem Dienste-Neustart werden die Änderungen in /etc/postfix/main.cf (inet_interfaces und myhostname) übernommen
    #vi /etc/postfix/main.cf
        inet_interfaces=Netzwerkinterface[s]
        myhostname=Server-FQDN
    Nun sollte auch ein hostübergreifender Mailversand (im lokalen Netz) möglich sein
    Kontrolliere die Einträge im Mailheader (Thunderbird, MailRechtsOben, AndereAktionen, Quelltext)

Verschlüsselung der POP3 Mailbox-Kommunikation (Sequenzdoku 9.x)
5.2
  • Starte zunächst einen Mailboxdienst der über die locale UNIX-Mbox zugreift (qpopper oder imap)
    Software (Paket)MaildiensteMailbox-Format
    qpopperpop3UNIX-Mbox
    imappop2,pop3,imap4UNIX-Mbox
    courierpop3,imap4eigenes Format
    cyruspop3,imap4eigenes Format
  • Starte zunächst einen pop3 Mailboxdienst der über die locale UNIX-Mbox zugreift
    Bei xinetd-abhängigen Diensten muss das "disable=yes" aus der /etc/xinetd.d/DATEI entfernt werden und xinetd gestartet sein.
  • Nun soll auch das Lesen der Mailbox per SSL verschlüsselt werden
    Bei Verwendung des imap-2007e_suse Mailservers können (mit folgender Befehlsfolge) die erforderlichen Zertifikate erzeugt werden
    siehe: /usr/share/doc/packages/imap/README.SuSE
    cd /etc/ssl/certs
      openssl req -new -x509 -nodes -out imapd.pem -keyout imapd.pem
      cp imapd.pem ipop3d.pem
      ODER: Das vorhandenen Webserverzertifikat in die /etc/ssl/certs/imapd.pem und ipop3d.pem kopieren
    cd /etc/ssl/certs/
    cat /etc/apache2/ssl.key/FQDN-server.key /etc/apache2/ssl.crt/FQDN-server.crt > imapd.pem
    cp imapd.pem ipop3d.pem
    - Für cyrus -> /usr/share/doc/packages/cyrus-imapd/doc/install-configure.html (SSL, TLS, and OpenSSL)
    cd /var/imap/
    cat /etc/apache2/ssl.key/FQDN-server.key /etc/apache2/ssl.crt/FQDN-server.crt > server.pem
    chown cyrus server.pem
    vi /etc/imapd.conf
        tls_cert_file: /var/imap/server.pem
        tls_key_file: /var/imap/server.pem
    Nun sollte auch ein hostübergreifender (SSL/TLS-verschlüsselter) Mailempfang möglich sein

    - Worin unterscheidet sich der TLS vom SSL(pop3s/imaps)-Verbindungsaufbau?
  • Teste den POP3-Server, indem per Telnet-Client Mails gelesen werden.
    http://de.wikipedia.org/wiki/Pop3 (POP3-Header)
    Falls keine Klartextkommunikation erlaubt ist kann mit:
    "openssl s_client -connect localhost:995" der Pop3s-Port angesprochen werden
    USER wiki@example.com 
    PASS passwort_im_klartext                                          
    STAT 
    LIST 
    RETR 1 
    DELE 1 
    QUIT


IMAP4s-Server Optimierung (Sequenzdoku 9.x)
5.3
  • Starte einen IMAP-Mailboxdienst (imap oder cyrus)
    - Beachte das Cyrus nicht über die locale UNIX-Mbox zugreift
    vi /etc/postfix/main.cf
        mailbox_transport = lmtp:unix:/var/imap/socket/lmtp
  • Teste den IMAP4-Server, indem per Telnet Mails gelesen werden (Imap).
    http://de.wikipedia.org/wiki/imap (IMAP4-Header)
    Falls keine Klartextkommunikation erlaubt ist kann mit:
    "openssl s_client -connect localhost:993" der Imaps-Port angesprochen werden
    a001 login mrc secret
    a002 select inbox                                                   
    a003 fetch 12 full
    a004 fetch 12 body[header]
    a005 store 12 +flags \deleted 
    a006 logout

Absicherung beim Mailversand (S/MIME) (Sequenzdoku 10.x)
5.4
  • Als End2End-Verschlüsselung bietet sich nun der S/MIME-Test an
    - Vertraue dazu den Trustcentern der Kommunikationspartner (http://172.20.x.y/ca.crt)
    - Sende anschließend eine signierte Mail (auf die nun verschlüsselt geantwortet werden kann)

    Trustcenter signieren SMIME/Client-Zertifikate meist mit einer der folgenden Klassen
    - Bei Klasse 1 wird nur die Echtheit der E-Mail-Adresse vom TC überprüft
    - Bei Klasse 2 wird zusätzlich durch Dritte Ausweis, Name und Organisation/Firma überprüft
    - Bei Klasse 3 muss der Antragsteller sich persönlich ausweisen
  • (optional) Erlaube Remotezugriffe nur per smtp-Authentifikation
    - siehe: /usr/share/doc/packages/postfix-doc/README.SuSE
    - siehe: /usr/share/doc/packages/postfix-doc/html/SASL_README.html
    # POSTFIX_SMTP_AUTH_SERVER="yes" -> /etc/sysconfig/postfix
    
    vi /etc/postfix/main.cf smtpd_sasl_auth_enable = yes
  • (optional) Nun soll der Mailversand SSL/TLS verschlüsselt werden (smtps).
    - siehe: /usr/share/doc/packages/postfix-doc/html/TLS_README.html (Setting up the certificates)
    # POSTFIX_SMTP_TLS_SERVER="yes" -> /etc/sysconfig/postfix
    
    vi /etc/postfix/main.cf smtpd_use_tls = yes smtpd_tls_cert_file = /etc/postfix/server.pem smtpd_tls_key_file = $smtpd_tls_cert_file

Meinlf Mühlenjost 2022