mailserver - Hochschule Merseburg

Download Report

Transcript mailserver - Hochschule Merseburg

Mailserver unter Linux

Martin Klisch 08689 http://www.klitec.de

Übersicht

 1 Die elektronische Post      1.1 Was ist elektronische Post 1.2 Geschichte der E-Mail 1.3 Abläufe des E-Mail-Transportsystems im Internet 1.4 Adressierung einer E-Mail 1.5 Aufbau und Formatierung einer E-Mail  2 Protokolle   2.1 Simple Mail Transfer Protocol (SMTP) 2.2 Post Office Protocol Version 3 (POP3)

Übersicht

   2.3 Internet Message Access Protocol (IMAP) 2.4 Spam und Malware 3 Betrieb eines Mailservers    3.1 Anforderungen an einen modernen Mailserver 3.2 Was wird alles benötigt?

3.3 Spamfilter  4 Installation eines Mailservers   4.1 Vorraussetzungen 4.2 Installation der Programme  4.3 Anlegen von Benutzern

1 Die elektronische Post

1.1 Was ist elektronische Post?

     Vergleichbar mit normalen Brief Anschrift entspricht der Adresse Briefkasten entspricht einem Mailserver Abläufe im Postamt entsprechen Abläufe auf Mailserver Transport nicht mit Postauto, sondern mit Hilfe eines Netzwerkes (Internet)

1 Die elektronische Post

Anschrift Hallo, Wie geht es dir?

Mit freundlichen Grüßen Hochschule Merseburg Geusaer Straße 88 06217 Merseburg Brief Postkasten

1 Die elektronische Post

E-Mail Adresse Brief Server

1 Die elektronische Post

1.2 Geschichte der E-Mail

      Ursprung im ARPAnet in den 70er Jahren Unter Benutzung schon existierender Protokolle wie FTP, TELNET oder UUCP Anfang der 70er Jahre: „Mail Box Protocol“ Versand wurde über so genannte Relays durchgeführt 1982 Einführung des „Simple Mail Transfer Protocol“ (SMTP) Spätere Erweiterung des zum „Simple Mail Transfer Protocol Service Extensions“ (ESMTP)

1 Die elektronische Post

 Viele Jahrzehnte nur von Akademikern benutzt   Erst ab den 90er Jahren weite Verbreitung in der Öffentlichkeit Ist neben dem World-Wide-Web eine der wichtigsten Anwendungen im Internet  Mail-Aufkommen steigt exponentiell an

1 Die elektronische Post

1.3 Abläufe des E-Mail-Transportsystems im Internet

     Die meisten TCP/IP Protokolle dienen der direkten Kommunikation zwischen zwei Hosts Elektronische Post: Kommunikation direkt zwischen den Anwendern Kommunikation läuft asynchron ab Sehr große Verbreitung und Kompatibilität Verschiedenste Arten von Endgeräten

1 Die elektronische Post

  Gesamter Prozess besteht regulär aus fünf Schritten:   1. Erstellung 2. Übertragung  3. Zustellung  4. Empfang und Verarbeitung  5. Zugriff und Abfrage Erstellung und Übertragung sowie Empfang und Zugriff können auch zusammengefasst werden

1 Die elektronische Post

Mailserver von Benutzer A SMTP SMTP Internet Mailserver von Benutzer B Benutzer B Benutzer A

1 Die elektronische Post

  Kein einzelner Standard Bildet ein System aus verschiedenen Standards, die modular zusammengesetzt sind:      MTA (Mail Transfer Agent) Erledigt Transport und Verteilung der Mails  MDA (Mail Delivery Agent) Nimmt E Mails an und verteilt sie auf Empfänger-Mailboxen  MRA (Mail Retrieval Agent) Bietet gespeicherte E Mails für den Mail User Agent an  MUA (Mail User Agent) Programm, womit E-Mails gelesen, geschrieben, gesendet und verwaltet werden können

1 Die elektronische Post

     Empfänger und Sender müssen nicht direkt miteinander kommunizieren können Die beteiligten SMTP Server müssen sich jedoch direkt erreichen können Die POP3-/IMAP Server müssen durchgehend von den abrufenden Clients erreichbar sein > Vorteil des gesamten Systems: Empfänger und Sender einer E Mail müssen nicht durchgängig Online sein um E-Mails auszutauschen Empfänger sucht sich selber aus, wann er die E Mail abholen will

1 Die elektronische Post

1.4 Adressierung einer E-Mail

 E-Mail Adresse besteht immer aus zwei Teilen: [email protected]

Lokaler Teil (Benutzername oder Mailboxname) Trennzeichen Domainname

1 Die elektronische Post

  Der lokale Teil:  Ist innerhalb der Domain eindeutig  Darf nur Buchstaben und Zahlen sowie einige bestimmte Zeichen enthalten  Der lokale Teil einer E-Mailadresse ist Case-Sensitive Der Domain-Teil:  Unterliegt den Regeln des DNS (a-z, 0-9,., -)  Domain muss existieren und sollte im Domain-Name System einen MX-Eintrag besitzen

1 Die elektronische Post

 MX-Eintrag   Legt fest zu welchem SMTP-Server eine E-Mail, die an eine bestimmte Domain adressiert ist, geliefert werden soll Beispiel:

1 Die elektronische Post

1.5 Aufbau und Formatierung einer E-Mail

   Folge von ASCII Zeichen Codierung in 7 Bit > Umlaute müssen anders dargestellt werden Eine E-Mail besitzt zwei Teile:

Header

,

Body

1 Die elektronische Post

Header Date: 5 Dec 2005 21:23:39 +0100 To: [email protected]

Subject: Test Received: from 85.116.204.35 (auth. user martin@campus [email protected]

) by angst.verrissen.org with HTTP; Mon, 05 Dec 2005 20:23:39 +0000 Message-ID: < [email protected]

> From: Dies ist ein test Body

1 Die elektronische Post

 Header:  Die Kopfzeilen der E-Mail  Besteht aus einer Folge von Feldern, jedes Feld entspricht einer Zeile – „Feldname: Feldinhalt“    Beinhaltet alle wichtigen Informationen um eine E-Mail zu transportieren Kann Auskunft über den zurück gelegten Weg geben Beinhaltet in der jüngsten Zeit auch Informationen auf durchgeführte Spam- oder Virenscans

1 Die elektronische Post

From Subject To Received Date Message-ID CC BCC Absender Betreff Empfänger Zeigt den Weg, den eine Nachricht vom Sender zum Empfänger gegangen ist Datum der Erstellung Ist eine eindeutige Identifikationsnummer einer E-Mail Carbon Copy – weitere Empfängeradressen Blind Carbon Copy – weitere „unsichtbare“ Empfängeradressen

1 Die elektronische Post

 Body:  Folgt nach dem Header (durch eine Leerzeile getrennt)  Besteht nur aus Zeichen mit 7 Bit    Maximal 1000 Zeichen pro Zeile Sollen andere Zeichen, Umlaute oder binäre Anhänge benutzt werden, müssen diese extra kodiert werden Einschränkungen werden durch MIME (Multipurpose Internet Mail Extensions) größtenteils aufgehoben

2 Protokolle

2.1 Simple Mail Transfer Protocol (SMTP)

      Transport einer Mail vom Client zum Mailserver Transport einer Mail von Mailserver zu Mailserver SMTP Server läuft regulär auf Port 25 (TCP) Übertragung im Klartext (ASCII) Ursprünglich in RFC 821 dokumentiert, aktuellste Version ist RFC 2821 Offizieller Internet Standard  Erweiterung ist Simple Mail Transfer Protocol Service Extensions (ESMTP)

2 Protokolle

    War ursprünglich ein authentifizierungsfreies Protokoll Kann er eine Nachricht nicht direkt (lokal) zustellen, baut er eine Verbindung zu einem anderen Mailserver auf (SMTP Relay) Problem des Missbrauchs:  Jeder Nutzer könnte den SMTP-Server nutzen  Spammer nutzen diese Sicherheitslücke aus Lösung:  SMTP-Server akzeptiert Mails unbekannter Absender nur noch an lokale Benutzer  Echtes SMTP Relay ist weiterhin nach einer Authentifizierung möglich: SMTP-AUTH

2 Protokolle

  Weiteres Problem:   Übertragung der E-Mails laufen im Klartext ab Somit ist die Möglichkeit einer Spionage gegeben Lösung:  Schaffung eines sicheren Übertragungskanals  „Secure SMTP over SSL/TLS“ über Port 465

2 Protokolle

2.2 Post Office Protocol Version 3 (POP3)

      Abholen von E-Mails von einem Mailserver POP3 Server läuft regulär auf Port 110 (TCP) Übertragung in Klartext (ASCII) Authentifizierung nötig Sehr einfaches Protokoll:   Nachrichten werden vom Client abgeholt Auf Server gelöscht Entstand mit dem Aufkommen der Personal Computer in den 80er Jahren

2 Protokolle

  Problem:   Übertragung der E-Mails laufen im Klartext ab Somit ist die Möglichkeit einer Spionage gegeben Lösung:  Schaffung eines sicheren Übertragungskanals  „Secure POP3 over SSL/TLS“ über Port 995

2 Protokolle

2.3 Internet Message Access Protocol (IMAP)

       Zugriff und Verwaltung auf empfangene E-Mails IMAP Server läuft regulär auf Port 143 (TCP) Übertragung in Klartext (ASCII) Authentifizierung nötig Post bleibt auf Mailserver liegen Nachrichten können selektiv und partiell herunter geladen werden Unterstützung von Ordnern auf Mailserver

2 Protokolle

    Nachrichten können direkt auf Server gesucht und sortiert werden Auf IMAP-Postfach kann zugegriffen werden, als würden sich die Nachrichten auf lokalen Rechner befinden Problem:   Übertragung der E-Mails laufen im Klartext ab Somit ist die Möglichkeit einer Spionage gegeben Lösung:   Schaffung eines sicheren Übertragungskanals „Secure IMAP over SSL/TLS“ über Port 993

2 Protokolle

2.4 Spam und Malware

 Spam Mails sind massenhafte und unerwünschte Nachrichten, z.B. Werbung   Malware: „von Malicious Software“ – Böswillige Software, z.B. Viren, Trojaner, Würmer Der Großteil des E-Mail-Verkehrs besteht mittlerweile aus Spam und Malware    Urhebern droht meistens keine Strafe Der Grund für die Möglichkeiten von Spam und Malware ist im SMTP-Protokoll und in der Globalität des Internets zu suchen Ist nur durch komplexe Filter zu verhindern

3 Betrieb eines Mailservers

3.1 Anforderungen an einen modernen Mailserver

 Zuverlässigkeit :  Es dürfen keine E-Mails verloren gehen   Der Mailserver sollte immer erreichbar sein Zugriffsmöglichkeiten der Benutzer :  SMTP und SMTP-SSL/TLS zum Versenden von E-Mails  POP3 und POP3-SSL/TLS zum Empfangen von E-Mails  IMAP und IMAP-SSL/TLS zum Empfangen von E-Mails

3 Betrieb eines Mailservers

  Sicherheit :     Es darf niemand unbefugt Zugriff auf fremde E-Mails bekommen Es sollten verschlüsselte Protokolle unterstützt werden Mailserver darf nicht als SMTP-Relay benutzt werden SMTP Authentifizierung Einfache Administration    Erstellung eines Webfrontends um Benutzer hinzuzufügen oder zu löschen Einbindung in existierende Strukturen (Datenbank, Radius) Unterstützung verschiedener Domains

3 Betrieb eines Mailservers

  Spam- und Virenfilter   Es sollten leistungsfähige Spam- und Virenfilter installiert sein Die dazugehörigen Datenbanken sollten immer auf dem aktuellen Stand sein   Gute Treffer-Quote bei geringem False-Positive Ausschuss Leichte Bedienbarkeit Leistung und Performance   Das System sollte den Anforderungen des Mailaufkommens entsprechen Kurzzeitige Fluten von Malware sollten keine negativen Auswirkungen auf die Erreichbarkeit haben  Standortwahl

3 Betrieb eines Mailservers

 Weitere benutzerfreundliche Features  Webmail  Mailinglisten

3 Betrieb eines Mailservers

3.2 Was wird alles benötigt?

  Qmail  Modularer und sicherer Mail Transfer/Delivery Agent  Weit verbreitet   Viele Erweiterungen existent „SMTP over SSL/TLS“ fähig Courier-IMAP    Mail Retrieval Agent (MRA) „POP3 over SSL/TLS“ fähig „IMAP over SSL/TLS“ fähig

3 Betrieb eines Mailservers

  Qmail-Scanner  Erweiterungsscript für Qmail  Scannt von Qmail angenommene Mails nach Viren und Malware SpamAssassin  Bekanntester Spamfilter  Wird von qmail-scanner aufgerufen    Nutzt zum erkennen von Spam: Distributed Checksum Clearinghouse (DCC) Vilpul‘s Razor

3 Betrieb eines Mailservers

    F-Prot  Anti-Viren-Programm  Wird von qmail-scanner aufgerufen VPOPMAIL  Verwaltung der Domains und Benutzer MySQL  Beinhaltet User- und Domaindatenbank Apache und PHP  Webserver für die Frontends

3 Betrieb eines Mailservers

3.3 Spamfilter

 3.3.1 Statische Regeln   Basieren auf reguläre Ausdrücke Bestimmte Eigenschaften (Wörter) einer E-Mail werden überprüft und dazu eine Punktzahl festgelegt  Es wird nach Fehlern im Header oder Body gesucht, die typisch für Spam sind  Gesamtpunktzahl wird zusammengerechnet  Z.B. SpamAssassin

3 Betrieb eines Mailservers

 3.3.2 „Collaborative Filtering Networks“   Es werden Checksummen von bestimmten Teilen einer Mail berechnet und an öffentlichen Datenbanken geschickt Wenn gleiche Checksummen innerhalb kürzester Zeit eintreffen, ist die Wahrscheinlichkeit hoch, dass es sich um Spam handelt  Z.B. Razor, Pyzor und DCC (laufen wegen Schnelligkeit mit UDP anstatt mit TCP)  Ergebnisse ergeben wiederum eine Punktzahl

3 Betrieb eines Mailservers

 3.3.3 „Realtime Blackhole Lists“ (RBL)  Überprüfung ob der SMTP-Server, der gerade versucht eine Mail abzusetzen, in einer öffentlichen schwarzen Liste mit „offenen“ Relay-Servern existiert  Unsicher, da auch Webmail-Anbieter wie GMX gelegentlich in solchen Listen auftauchen  Ergebnis bekommt auch wieder eine Punktezahl

3 Betrieb eines Mailservers

 3.3.4 Bayesscher Filter  Rechnet anhand des Vorkommens bestimmter Wörter die Wahrscheinlichkeit aus, ob eine Mail Spam ist  Selbstlernend  Lernt aus bereits als Spam erkannten E-Mails neue Wörter – funktioniert bei einer großen Menge an Mails sehr gut  Ergibt wieder eine bestimmte Punkteanzahl

3 Betrieb eines Mailservers

 3.3.5 Die Aufgabe von SpamAssassin   Die Aufgabe von SpamAssassin ist es nun die Ergebnisse aus allen Methoden so auszuwerten, dass Spam erkannt wird Ziel: Möglichst viele Spam-Mails sollen erkannt werden und möglichst wenig Mails sollen fälschlicherweise als Spam erkannt werden (False Positive)

 X-Spam-Status: Yes, hits=16.7 required=5.0

tests=CLICK_BELOW,DOMAIN_4U2,EXCUSE_10,EXCUSE_13,EXCUSE_14, GAPPY_TEXT,LINES_OF_YELLING,LINES_OF_YELLING_2, LINES_OF_YELLING_3,ONLY_COST,PLING_PLING,PRIORITY_NO_NAME, RCVD_IN_DSBL,RCVD_IN_RFCI,REMOVE_IN_QUOTES,REMOVE_SUBJ, REPLY_REMOVE_SUBJECT,SEE_FOR_YOURSELF,SPAM_PHRASE_13_21, SUBJ_DOLLARS,UPPERCASE_25_50 X-Spam-Flag: YES X-Spam-Level: **************** X-Spam-Checker-Version: SpamAssassin 2.43 (1.115.2.20-2002-10-15-exp) X-Spam-Report: 16.70 hits, 5 required; * 1.1 -- Subject starts with dollar amount * 0.8 -- BODY: List removal information * 0.7 -- BODY: See for yourself * 0.5 -- BODY: Gives an excuse for why message was sent * 0.5 -- BODY: List removal information * 0.4 -- BODY: Domain name containing a "4u" variant * 0.4 -- BODY: List removal information * 0.3 -- BODY: "if you do not wish to receive any more" * 0.3 -- BODY: Asks you to click below * 0.2 -- BODY: Tells you how to stop further spam * 0.2 -- BODY: Only $$$ * 0.0 -- BODY: Contains 'G.a.p.p.y-T.e.x.t' * 1.3 -- BODY: Spam phrases score is 13 to 21 (high) [score: 19] * 0.3 -- BODY: 3 WHOLE LINES OF YELLING DETECTED * 0.2 -- BODY: 2 WHOLE LINES OF YELLING DETECTED * 0.2 -- BODY: A WHOLE LINE OF YELLING DETECTED * 3.2 -- RBL: Received via a relay in list.dsbl.org

[RBL check: found 19.134.91.211.list.dsbl.org] * 2.3 -- RBL: Received via a relay in ipwhois.rfc-ignorant.org

[RBL check: found 19.134.91.211.ipwhois.rfc-ignorant.org., type: 127.0.0.6] * 1.0 -- Message has priority setting, but no X-Mailer * 1.5 -- Subject has lots of exclamation marks * 1.3 -- message body is 25-50% uppercase

4 Installation eines Mailservers

4.1 Vorraussetzungen

    Domain + Zugriff auf DNS Server mit statischer IP-Adresse Distribution: Gentoo Webserver: Apache 2.0.54

     PHP 4.4

MySQL 4.1.14

OpenSSL Daemontools PERL

4 Installation eines Mailservers

 4.2 Installation der Programme  4.2.1 QMAIL 1.03

  Paket installieren bzw. per Hand Compilen (Patches!) RSA Keys für SSL/TLS erstellen  Self-signed SSL-Zertifikat erstellen

4 Installation eines Mailservers

 4.2.2 Installation von Courier-IMAP  Courier Authentication Library als erstes installieren  Dann das eigentliche Paket installieren   Authlib kann unterschiedliche Backends zu Authentifizierung benutzen (z.B. MySQL, LDAP u.a.) Unsere Wahl: Authentifizierung der Benutzer über VPOPMAIL  Weitere Konfiguration (z.B. SSL/TLS)

4 Installation eines Mailservers

 4.2.3 Installation von VPOPMAIL  Paket installieren bzw. per Hand Kompilieren  Datenbank anlegen und konfigurieren mysql> create database vpopmail; mysql> grant select, insert, update, delete, create, drop on vpopmail.* to vpopmail@localhost identified by 'blah123'; mysql> flush privileges; mysql> quit  SMTP-Server von Qmail konfigurieren, dass SMTP AUTH mit VPOPMAIL geht:

4 Installation eines Mailservers

 4.2.4 Installation der SPAM-Datenbank-Clients und des Virenscanners  Razor  DCC (Distributed Clearinghouse Checksum)  F-Prot   Einrichten mit Default-Konfiguration Einen Eintrag in der Crontab, dass F Prot regelmäßig seine Virendatenbank updated

4 Installation eines Mailservers

 4.2.5 Installation von SpamAssassin  SpamAssassin soll mehrere „Collaborative Filtering Networks“ abfragen  SpamAssassin soll den internen Bayes Filter verwenden: required_hits 5.0

rewrite_header Subject ****SPAM**** use_bayes 1 bayes_auto_learn 1 bayes_auto_learn_threshold_nonspam 1.5

bayes_auto_learn_threshold_spam 6.0

use_dcc 1 use_pyzor 1  Als Daemon starten

4 Installation eines Mailservers

 4.2.6 Installation des Qmail-Scanners  Erkennt bei der Installation automatisch SpamAssassin und F-Prot  SMTP-Server muss wissen, dass er qmail-scanner nutzen soll (Ausschnitt aus „/etc/tcprules.d/tcp.qmail smtp“): #IPs allowed to relay - don't scan with qmail-scanner ## localhost 127.0.0.:allow,RELAYCLIENT="",RBLSMTPD="" # Don't relay from other IPs. Scan with qmail-scanner :allow,QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue"

4 Installation eines Mailservers

4.3 Anlegen von Benutzern

   4.3.1 Anlegen der Domain und des Postmasters im Mailsystem über die Shell 4.3.2 Anlegen einzelner Benutzer über ein Frontend 4.3.3 Benutzen von Webmail