Download ppt - Mailserver unter Linux

Transcript
Page 1: Mailserver unter Linux

Mailserver unter Linux

Martin Klisch

08689

http://www.klitec.de

Page 2: Mailserver unter Linux

Ü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)

Page 3: Mailserver unter Linux

Ü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

Page 4: Mailserver unter Linux

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)

Page 5: Mailserver unter Linux

1 Die elektronische Post

Hallo,

Wie geht es dir?

Mit freundlichen Grüßen

Hochschule MerseburgGeusaer Straße 8806217 Merseburg

Hochschule MerseburgGeusaer Straße 8806217 Merseburg

Brief

Anschrift

Postkasten

Page 6: Mailserver unter Linux

1 Die elektronische Post

Brief

E-Mail Adresse

Server

Page 7: Mailserver unter Linux

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)

Page 8: Mailserver unter Linux

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

Page 9: Mailserver unter Linux

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

Page 10: Mailserver unter Linux

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

Page 11: Mailserver unter Linux

1 Die elektronische Post

Mailserver vonBenutzer A

Mailserver vonBenutzer B

Internet

Benutzer A Benutzer B

SMTP

SMTP SMTP

POP3 /

IMA

P

Page 12: Mailserver unter Linux

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

Page 13: Mailserver unter Linux

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

Page 14: Mailserver unter Linux

1 Die elektronische Post

1.4 Adressierung einer E-Mail E-Mail Adresse besteht immer aus zwei Teilen:

[email protected]

Lokaler Teil(Benutzernameoder Mailboxname)

DomainnameTrennzeichen

Page 15: Mailserver unter Linux

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

Page 16: Mailserver unter Linux

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:

Page 17: Mailserver unter Linux

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

Page 18: Mailserver unter Linux

1 Die elektronische Post

Date: 5 Dec 2005 21:23:39 +0100To: [email protected]: Test Received: from 85.116.204.35 (auth. user [email protected]@mail.campus-merseburg.de)by angst.verrissen.org with HTTP;Mon, 05 Dec 2005 20:23:39 +0000 Message-ID:<[email protected]>From: <[email protected]>

Dies ist ein test

Header

Body

Page 19: Mailserver unter Linux

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

Page 20: Mailserver unter Linux

1 Die elektronische Post

From Absender

Subject Betreff

To Empfänger

Received Zeigt den Weg, den eine Nachricht vom Sender zum Empfänger gegangen ist

Date Datum der Erstellung

Message-ID Ist eine eindeutige Identifikationsnummer einer E-Mail

CC Carbon Copy – weitere Empfängeradressen

BCC Blind Carbon Copy – weitere „unsichtbare“ Empfängeradressen

Page 21: Mailserver unter Linux

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

Page 22: Mailserver unter Linux

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)

Page 23: Mailserver unter Linux

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

Page 24: Mailserver unter Linux

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

Page 25: Mailserver unter Linux

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

Page 26: Mailserver unter Linux

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

Page 27: Mailserver unter Linux

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

Page 28: Mailserver unter Linux

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

Page 29: Mailserver unter Linux

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

Page 30: Mailserver unter Linux

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

Page 31: Mailserver unter Linux

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

Page 32: Mailserver unter Linux

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

Page 33: Mailserver unter Linux

3 Betrieb eines Mailservers

Weitere benutzerfreundliche Features Webmail Mailinglisten

Page 34: Mailserver unter Linux

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

Page 35: Mailserver unter Linux

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

Page 36: Mailserver unter Linux

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

Page 37: Mailserver unter Linux

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

Page 38: Mailserver unter Linux

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

Page 39: Mailserver unter Linux

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

Page 40: Mailserver unter Linux

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

Page 41: Mailserver unter Linux

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)

Page 42: Mailserver unter Linux

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_50X-Spam-Flag: YESX-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

Page 43: Mailserver unter Linux

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

Page 44: Mailserver unter Linux

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

Page 45: Mailserver unter Linux

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)

Page 46: Mailserver unter Linux

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.* tovpopmail@localhost identified by 'blah123'; mysql> flush privileges; mysql> quit

SMTP-Server von Qmail konfigurieren, dass SMTP-AUTH mit VPOPMAIL geht:

Page 47: Mailserver unter Linux

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

Page 48: Mailserver unter Linux

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.0rewrite_header Subject ****SPAM****use_bayes 1bayes_auto_learn 1bayes_auto_learn_threshold_nonspam 1.5bayes_auto_learn_threshold_spam 6.0use_dcc 1use_pyzor 1

Als Daemon starten

Page 49: Mailserver unter Linux

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## localhost127.0.0.:allow,RELAYCLIENT="",RBLSMTPD=""# Don't relay from other IPs. Scan with qmail-scanner:allow,QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue"

Page 50: Mailserver unter Linux

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


Recommended