Mailserver auf Debian mit Imap, Smarthost und Filter: Unterschied zwischen den Versionen

Aus MySlug
Zur Navigation springen Zur Suche springen
(Der Seiteninhalt wurde durch einen anderen Text ersetzt: „Dieses Tutorial wurde auf Gargi.org verschoben: https://www.gargi.org/index.php?title=Mailserver_auf_Debian_mit_Imap,_Smarthost_und_…“)
Markierung: Ersetzt
 
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
<div style="text-align=right; float: right; clear: none; background: none; padding-left:20px">
Dieses Tutorial wurde auf Gargi.org verschoben: https://www.gargi.org/index.php?title=Mailserver_auf_Debian_mit_Imap,_Smarthost_und_Filter
__TOC__
</div><noinclude>
 
Wir wollen uns nun für den Hausgebrauch einen kleinen Mailserver einrichten, der für uns einige Aufgaben erledigt. Was wollen wir eigentlich mit unserem Mailserver? Wir haben nun einige Mailboxen extern bei unseren Internetprovidern, Webdiensten oder eigene Webauftritte extern liegen. Diese Mails rufen wir dann normalerweise mit einem Mailprogramm auf unserem Rechner ab. Haben wir nun mehrere Rechner, so muss dies für jede Maschine mühevoll eingerichtet werden. Hier kommt nun unser kleiner Server ins Spiel, der bei uns daheim steht. Hierzu muss dieser natürlich ständig mit dem Internet verbunden sein, wo hier definitiv nur eine echte Flatrate in Frage kommt. Alles andere wäre auch nicht bezahlbar. Zudem wollen wir von extern mit einem Webmailer unsere Mails einsehen können und auch versenden. Dies setzt voraus, dass auf unserem Webserver ein Apache läuft. Entsprechende Sicherheitsmaßnahmen wie Firewall und einem IP Filter wie Fail2ban sollten natürlich aktiviert sein. Als Basis verwende ich dann zudem ein Linux Debian 7 (Wheezy), funktioniert aber genauso auf Debian 8 (Jessie).<br>
<br>
Wir werden in diesem Tutorial lernen, wie wir E-Mails von unseren externen Mailboxen in einem kurzen Intervall regelmäßig abrufen, diese auf Viren und Spam überprüfen, dann über ein Verteilsystem in unsere lokalen Mailboxen vorsortieren und schon nach jeweiligen Inhalten (Werbung, Privates etc.) aufteilen können, ohne dass entsprechende Filterregeln von lokalen Mailprogrammen erst bemüht werden müssen.
Desweiteren müssen wir unserem Server beibringen, auch Mails über einen externen Mailserver (Smarthost) zu versenden und wir richten uns einen kleinen Webmailer ein. <br>
<br>
Den Weg einer Mail auf unserem Server habe ich einmal über ein Schema verdeutlicht, das uns zeigen soll, welche Bausteine wir benötigen, um eine Mail bei uns daheim sauber in die Kiste zu bringen:<br>
<br>
[[Bild:mail_schema.jpg|center]]
<br /><br />
Hier also einmal den Ablauf: Eine Mail landet auf dem Server unseres Providers und liegt dort in seiner Mailbox. Sie wartet daruf, dass wir diese zunächst mit '''getmail''' abrufen. Hier wird bereits dann die Mail mit '''Spamassassin''' geprüft, ob diese eine Spam Mail ist. Die Mail wird dann an den '''Procmail''' übergeben, der zum einen entscheidet, in welches Postfach und in welchen Ordner des Postfachs die Mail landen wird. Hierbei wird noch überprüft, ob die Mails frei von Viren sind. Dazu wird das Virenprogramm '''ClamAV''' mit '''Clamassassin''' verwendet. Herr der Mailboxen und den Verzeichnissen dann ist der IMAP Server '''Dovecot''', der allen Mailprogrammen die Verzeichnisse im Netz intern und extern zur Verfügung stellt. Wer dann von außerhalb über einen Browser auf seine Mails zugreifen möchte, der kann das dann mit einem Webmailer auf dem Apache Webserver bewerkstelligen. Als Webmailer nehmen wir dann den '''Squirrelmail''', der unsere Schnittstelle nach außen darstellt. Es kann natürlich sein, dass Ihr gerade über den Webailer eine Mail wieder versenden wollt. Das übernimmt dann der MTA (Mail Transport Agent) '''Exim4''', der diese Mail dann an einen externen SMTP Server des Providers (Smarthost) weitergibt und dieser dann dafür sorgt, dass die Mail auch seinen Empfänger erreicht.<br>
<br>
Ihr seht, wir haben einiges vor, dann legen wir doch gleich einmal los!
<br>
<br>
==Installation von Getmail und die Konfiguration==
Wir installieren zuerst getmail mit einem
<code><pre>apt-get install getmail4</pre></code>
Wir legen nun eine neuen User getmail an, der für uns in Zukunft die Sache erledigen wird:
<pre>adduser getmail</pre>
Vergebt hier das Passwort. Da das kein Standarduser sein soll und falls Ihr einen ftp am Laufen habt, dann schließt bitte diesen User vom ftp- Zugriff aus. Dies erledigt Ihr, indem Ihr den User getmail in die Datei '''/etc/ftpusers''' eintragt.
<code><pre>nano /etc/ftpusers</pre></code>
Startet nach einer Änderung den proftp neu:
<code><pre>/etc/init.d/proftpd restart</pre></code>
Gleiches machen wir nun mit einem User postfach1. Ihr könnt den Namen frei auswählen, denn das werden dann die Mailnutzer werden, die dann via IMAP ihre Mails abrufen können. Legt auch diese mit '''adduser''' an und schließt diese aus dem ftp-Zugriff aus.<br>
<br>
Jetzt wollen wir auch nicht, dass eventuell über ssh auf die Mailboxen zugegriffen werden kann. Wenn Ihr einen ssh Clienten nach außen offen habt, dann ist das sicherlich auch ratsam. Ihr könnt das Anmelden (auch damit lokal am Rechner) unterbinden, indem Ihr in der '''/etc/passwd''' für den jeweiligen User hinten das '''/bin/bash''' in '''/bin/false''' abändert. Dann ist auch das Anmelden nicht mehr möglich.<br>
<br>
Um jetzt auch ganz sicher zu sein, dass Ihr das richtig konfiguriert habt versucht Euch jeweils mittels ftp und dann nochmal via ssh an beide User anzumelden. Erst wenn sichergestellt ist, dass beide Verbindungen nicht möglich sind können wir weiter machen.<br>
<br>
Um später aber einen Test mit getmail durch zu führen muss die Änderung in der '''/etc/passwd''' nochmal rückgängig gemacht werden. Aber auch hier gehe ich dann im Bedarfsfall darauf ein.<br>
<br>
Wenn das erledigt ist müssen wir aber immer daran denken, dass wir die als root angelegten Dateien später immer dann den jeweiligen User zuweisen, damit es kein Rechteproblem gibt. Darauf gehe ich dann aber noch ein, wenn es soweit ist.<br>
<br>
Nun wechseln wir in das Verzeichnis '''/home/getmail''' :<br>
<code><pre>cd /home/getmail</pre></code>
und legen ein neues verstecktes Verzeichnis an:
<code><pre>mkdir .getmail</pre></code>
Dort erstellen wir nun eine Konfigurationsdatei:
<code><pre>touch .getmail/mailbox1.conf</pre></code>
Diese befüllen wir nun mit folgenden Inhalt:
<code><pre>
[options]
verbose = 0                       
delete = true                          # true= mails werden auf Server gelöscht false= Mails werden nicht gelöscht
read_all = false                        # true= alle Mails werden abgeholt false= nur neue Mails werden abgeholt
message_log = ~/.getmail/mailbox1.log  # Fehler beim Abholen werden in die Logdatei mailbox1 geschrieben
 
[retriever]
type = SimplePOP3Retriever     
server = mail.euerprovider.de          # Die Adresse des Mailserversers Eures Providers
username = username                    # Der Username des Mailservers
password = euerpasswort                # Passwort, Achtung, kann gelesen werden, wer auf den Server kommt
 
[destination]
type = MDA_external                    # Das sagt aus, dass ein externes Programm die Mails übernimmt
path = /usr/bin/procmail                # Procmail nimmt alles in die Hand
arguments = ("-dpostfach1", )          # Der Nutzer postfach1 bekommt die Mails überstellt
</pre></code>
('''''HINWEIS:''''' Bitte entfernt die Kommentare hinten an den Zeilen - alles was mit '''#''' losgeht)<br>
<br>
Wenn Ihr nun mehrere externe Mailboxen besitzt legt dann für jede Mailbox eine eigene Konfigurationsdatei an. Bennent jede Konfigurationsdatei eindeutig, damit Ihr diese später auseinanderhalten könnt. Zudem legt in jeder Datei fest, welcher Nutzer die Mails dann bekommen soll. Das wird im Bereich
<code><pre>arguments = ("-dxyz", )</pre></code>
festgelegt. '''xyz''' = der jeweilige Nutzer, der die Mails bekommen soll.<br>
<br>
Damit nur getmail die Datei lesen darf regelt die Zugriffsrechte nun wie folgt:
Aus dem Verzeichnis '''/home/getmail''' heraus gebt nun folgende Befehle ab:
<code><pre>cd /home/getmail
chown getmail:getmail -R .getmail
chmod 640 .getmail/*</pre></code>
Im Grunde haben wir nun unseren kleinen Dämonen schon fertig, der später regelmäßig all unsere Mailboxen nach neuen E-Mails abklappert. Bedenkt aber, wenn Ihr ein firewall- Skript am Laufen habt, dass Ihr den '''Port 110 (TCP_OUT)''' freischaltet, sonst kann Euer Server nicht auf den externen POP3 zugreifen.
<br>
<br>
 
==Installation von Procmail und die Konfiguration==
Procmail bekommt ja nun die Mails alle in einen Topf geschmissen und verteilt die Mails nun nach entsprechenden Schematas in die einzelnen Postfächer der Mailnutzer. Es kann sein, dass procmail bereits schon auf Eurem System vorhanden ist. Um hier sicher zu gehen setzt als root schnell mal ein
<code><pre>apt-get install procmail</pre></code>
ab. Jetzt wechselt in das Verzeichnis des Users '''postfach1''':
<code><pre>cd /home/postfach1</pre></code>
Dort legt nun eine Konfigurationsdatei an:
<code><pre>touch .procmailrc</pre></code>
Zudem zwei neue Verzeichnisse:
<code><pre>mkdir mail
mkdir log</pre></code>
Nun befüllt die .procmailrc mit folgenden Inhalt:
<code><pre>
MAILDIR=$HOME/mail              # Hier kommen die Mails rein
LOGFILE=$HOME/log/procmail.log  # Fehlermeldungen werden in der log gespeichert
VERBOSE=on                     
 
:0                             
* ^TO_.*beispiel.de              # Mails dern Empfänger auf beispiel.de enden
.test/                          # landen in INBOX.test
 
:0
* ^From: .*spammer@domain.com    # Mails von einer bestimmten Adresse werden gelöscht
/dev/null
 
:0                             
* ^TO_.*test2@beispiel.de        # alle Mails an eine bestimmte Adresse werden in
.test2/                          # in die INBOX.test2 einsortiert
 
:0                             
./                              # Alles andere an direkten Posteingang</pre></code>
Folgendes ist hier wichtig: Hinten müssen die Kommentare wieder entfernt werden, sonst werden diese in die Suchkriterien mit eingezogen und es gibt entsprechende Missmatches. Den Ordner ./ auf jeden Fall anlegen! Alternativ vielleicht auch .INBOX.missmatches/ benennen. Denn wenn mal was nicht in den Regeln zutreffen sollte, dann landet die Mail immer erst hier. Dann kann man in der Logfile nachsehen, warum die Mail nicht zugeordnet wurde und entsprechend die Regeln in der .procmailrc anpassen.<br>
<br>
Das ^ am Anfang einer Regel bedeutet, dass das Wort am Zeilenanfang gesucht wird. Ein TO oder From im Header steht immer vorne. Mit einem .* vor einem Suchbegriff kann man mögliche zusätzliche Leerzeichen mit einschließen und vermeidet Missmatches bei zusätzlichen Leerzeichen.
<br>
 
Damit zum Schluss alle Zugriffsrechte passen, führen wir dann ein
<code><pre>chown -R postfach1:postfach1 /home/postfach1/</pre></code>
aus. Prüft mit einem '''ls -la''' innerhalb des Verzeichnisses dann nach, ob die Dateien und Verzeichnisse dem User '''postfach1''' gehören.
<br>
<br>
 
==Erster Test==
Um nun zu überprüfen, ob die ersten Regeln funktionieren und auch von der Mailbox abgerufen werden kann müsst Ihr Euch als User '''getmail''' einloggen. Hierfür müssen wir unsere Sperre in der '''/etc/passwd''' rückgängig machen. In der Zeile des Users '''getmail''' ändert dort wieder das '''/bin/false''' auf '''/bin/bash''' ab. Jetzt funktioniert die Anmeldung:
<code><pre>su getmail</pre></code>
Ändert zum Testen auch in Eurer Getmail Config das
<code><pre>delete = true</pre></code>
auf
<code><pre>delete = false</pre></code>
ab, da Ihr garantiert das öfters testen müsst, bis es passt! <br>
<br>
Führt nun den Abruf aus:
<code><pre>getmail -v --rcfile ~/.getmail/mailbox1.conf</pre></code>
Wenn Ihr mehrere Boxen abruft, dann einfach diese zusätzlich anhängen:
<code><pre>getmail -v --rcfile ~/.getmail/mailbox1.conf --rcfile ~/.getmail/mailbox2.conf</pre></code>
Wenn alles gut läuft bekommt Ihr eine entsprechende Meldung:
<code><pre>
getmail -v --rcfile ~/.getmail/mailbox1.conf
getmail version 4.7.8
Copyright (C) 1998-2007 Charles Cazabon.  Licensed under the GNU GPL version 2.
SimplePOP3Retriever:blah@mail.beispiel.de:110:
  msg  1/14 (2428090 bytes) delivered
  msg  2/14 (3415 bytes) delivered
  msg  3/14 (3253 bytes) delivered
  msg  4/14 (2940 bytes) delivered
  msg  5/14 (4124 bytes) delivered
  msg  6/14 (3687 bytes) delivered
  msg  7/14 (4498 bytes) delivered
  msg  8/14 (5705 bytes) delivered
  msg  9/14 (5377 bytes) delivered
  msg 10/14 (3863 bytes) delivered
  msg 11/14 (4275 bytes) delivered
  msg 12/14 (5422 bytes) delivered
  msg 13/14 (3715 bytes) delivered
  msg 14/14 (4015 bytes) delivered
  14 messages (2482379 bytes) retrieved, 0 skipped
</pre></code>
Loggt Euch wieder aus:
<code><pre>exit</pre></code>
Nun geht in das Homverzeichnis des Postfach1 und seht unter /mail nach, ob Ihr Mails dort unter new liegen habt. Wenn diese im Spam Ordner gelandet sind, dann stimmt was mit der procmail Regel nicht und müsst diese anpassen. Zum erneuten Test löscht dann unter /mail alle Verzeichnisse und wiederholt das so lange, bis die Mails korrekt einsortiert werden. Es wird sicherlich hin und wieder Mails geben, die nicht sauber einsortiert werden. Für diese Gelegenheiten müsst Ihr dann Eure Regeln entsprechend anpassen. Die procmailrc wird Euch somit noch lange begleiten bis alles wie gewünscht funktioniert.<br>
<br>
Nun werden wir den Mailabruf automatisieren. Dazu öffnet noch als user getmail angemeldet die crontab mit
<code><pre>crontab -e</pre></code>
Dort fügt nun Euren Getmail-Aufruf ein und ergänzt die Zeile wie folgt:
<code><pre>*/5 * * * * /usr/bin/getmail -v --rcfile ~/.getmail/mailbox1.conf --rcfile ~/.getmail/mailbox2.conf > /dev/null 2>&1</pre></code>
Das ruft den Prozess nun alle 5 Minuten ab. D.h. alle 5 Minuten werden Eure externen Mailboxen auf neue E-Mails überprüft und dem procmail übergeben, der Weiteres für Euch erledigt, indem er filtert und in Mailboxen verteilt.<br>
<br>
Wenn alles glatt läuft, dann meldet Euch als getmail ab und sperrt wieder den Zugriff auf den '''getmail''' in der '''/etc/passwd''' und setzt dort den User wieder auf '''/bin/false'''.
<br>
<br>
==Getmail mit SSL Verbindung==
Die Übertragung der Dateien sollte natürlich auch verschlüsselt erfolgen. Die meisten Provider sollten das auch zur Verfügung stellen. Wenn unser Test erfolgreich war, dann stellen wir noch die Konfiguration entsprechend um. Editiert dazu die entsprechende Getmail Konfigurationsdatei:
<code><pre>nano /home/getmail/.getmail/mailbox1.conf</pre></code>
Die Zeile<br><br>
'''type = SimplePOP3Retriever'''<br><br>
tauscht in
<br><br>
'''type = SimplePOP3SSLRetriever'''<br><br>
aus. Solltet Ihr ein Firewallscript verwenden, dann müsst Ihr als '''TCP_OUT''' den Port '''995''' eintragen.<br>
Führt dann nochmal einen Test wie oben beschrieben durch und prüft damit, ob der Abruf klappt.
<br>
<br>
==Imap mit Dovecot==
Beim Imap Server möchte ich es Euch recht einfach machen. Ihr benötigt hierfür einen Installationsbefehl und ein paar Kleinigkeiten zum Editieren. <br>
<br>
Editiert zunächst die '''/etc/hosts'''
<code><pre>nano /etc/hosts</pre></code>
Die ersten zwei Zeilen sehen ungefähr so aus:
<code><pre>127.0.0.1    localhost
127.0.0.1  meinserver.example.org   meinserver</pre></code>
Damit es später keinen Huddel gibt beim Erstellen der Sicherheitszertifikate ändert diese auf
<code><pre>127.0.0.1    localhost
192.168.1.77 192.168.1.77  meinserver</pre></code>
ab. Die Änderung speichert Ihr ab. Jetzt könnt Ihr die benötigten Programme installieren:
<code><pre>apt-get install dovecot-common dovecot-imapd</pre></code>
 
Wenn Ihr dann bei der Installation in dem Moment, in dem der Dovecot gestartet wird, eine Meldung<br><br>
'''Fatal: Failed to start listeners'''<br>
'''failed!'''
<br><br>
erhaltet, dann kracht es an einer Stelle mit dem IPv6, d.h. wird von Eurem Server nicht unterstützt.<br>
Editiert deshalb die '''dovecot.conf''':
<code><pre>nano /etc/dovecot/dovecot.conf</pre></code>
Schreibt unter die Zeile
<br><br>
'''#listen = *, ::'''
<br><br>
folgende Zeile:
<br><br>
'''listen = *'''
<br><br>
Startet dann nochmal den Dovecot:
<code><pre>/etc/init.d/dovecot restart</pre></code>
Der Fehler sollte jetzt weg sein und der Dovecot laufen.
<br><br>
Während er Installation werden automatisch die Zertifikate<br>
<br>
'''/etc/dovecot/dovecot.pem'''<br>
'''/etc/dovecot/private/dovecot.pem'''<br>
<br>
für 10 Jahre angelegt. Solltet Ihr diese aus irgendeinem Grund neu generieren wollen dann löscht beide dovecot.pem Dateien und generiert diese wieder mit einem:
<code><pre>dpkg-reconfigure dovecot-common</pre></code>
Wir editieren noch drei Dovecot Konfigurationsdateien:
<code><pre>nano /etc/dovecot/conf.d/10-mail.conf</pre></code>
Hier muss das Standardverzeichnis '''/var/mail''' für die reinkommenden E-Mails von /var/mail auf das Homeverzeichnis umgestellt werden. Ändert deswegen die Mail Location wie folgt ab: <br>
 
<br>
'''mail_location = maildir:~/mail'''<br>
<br>
 
<code><pre>nano /etc/dovecot/conf.d/10-auth.conf</pre></code>
Sollte man Plaintext Auth verhindern wollen: <br>
 
<br>
'''#disable_plaintext_auth = yes'''<br>
<br>
in
<br><br>
'''disable_plaintext_auth = yes'''<br>
<br>
<code><pre>nano /etc/dovecot/conf.d/10-ssl.conf</pre></code>
<br>
'''#ssl = yes'''
<br><br>
in
<br><br>
'''ssl = yes'''
<br><br>
Das war es dann auch schon. Speichert die Änderung und startet Euren Imap Server neu.
<code><pre>/etc/init.d/dovecot restart</pre></code>
An der stelle könnt Ihr Euch schon an den IMAP Server mittels Euren Mail Clienten wie den Thunderbird einloggen. Alternativ installieren wir jetzt noch den Webmailer Squirrelmail:
<br>
<br>
 
==Squirrelmail Webmailer==
Auf einem Debian Webserver (Apache2, php, MySQL) ist [http://www.squirrelmail.org/ Squirrelmail] recht schnell installiert.<br>
<br>
Zunächst installieren wir Squirrelmail an der Konsole:
<code><pre>apt-get install squirrelmail</pre></code>
Solltet Ihr noch das Shared Kalender Plugin verwenden wollen, müssen noch zwei zusätzliche Pakete installiert werden:
<code><pre>apt-get install php-db php-pear</pre></code>
Squirrel verteilt sich entsprechend im Dateisystem. Die Files selbst liegen im Verzeichnis '''/usr/share/squirrelmail''' . Damit der Apache diese auch findet, richten wir einfach einen virtuellen Host ein. Editiert dazu die '''/etc/apache2/sites-enabled/000-default''' und fügt unter dem ersten Alias Abschnitt folgenden Abschnitt mit ein (bitte INNERHALB des virtual host Abschnitts!!!):
<code><pre>    Alias /squirrelmail /usr/share/squirrelmail
      <Directory /usr/share/squirrelmail>
      Options Indexes
      AllowOverride All
      DirectoryIndex index.php
      Order allow,deny
      allow from all
    </Directory></pre></code>
Damit wird wenn Ihr an Eure URL '''/squirrelmail''' mit anfügt der Webmailer aufgerufen, da er über die Alias dann in das Verzeichnis /usr/share/squirrelmail geroutet werdet.<br>
<br>
Konfiguriert nun Euren Webmailer mit
<code><pre>squirrelmail-configure</pre></code>
Ihr seht nun das Hauptmenü:
<code><pre>
SquirrelMail Configuration : Read: config_default.php (1.4.0)
---------------------------------------------------------
Main Menu --
1.  Organization Preferences
2.  Server Settings
3.  Folder Defaults
4.  General Options
5.  Themes
6.  Address Books
7.  Message of the Day (MOTD)
8.  Plugins
9.  Database
10. Languages
 
D.  Set pre-defined settings for specific IMAP servers
 
C  Turn color on
S  Save data
Q  Quit
 
Command >>
</pre></code>
Wählt hier '''D''' aus. Danach seht Ihr folgendes Menü:
<code><pre>
Please select your IMAP server:
    bincimap    = Binc IMAP server
    courier    = Courier IMAP server
    cyrus      = Cyrus IMAP server
    dovecot    = Dovecot Secure IMAP server
    exchange    = Microsoft Exchange IMAP server
    hmailserver = hMailServer
    macosx      = Mac OS X Mailserver
    mercury32  = Mercury/32
    uw          = University of Washington's IMAP server
 
    quit        = Do not change anything
Command >>
</pre></code>
Wir nehmen hier natürlich den '''dovecot'''.<br>
<br>
Danach müssen die Serversettings eingestellt werden (Im Hauptmenü Punkt '''2'''):
<code><pre>
Server Settings
 
General
-------
1.  Domain                : example.com
2.  Invert Time            : false
3.  Sendmail or SMTP      : SMTP
 
A.  Update IMAP Settings  : localhost:143 (dovecot)
B.  Update SMTP Settings  : localhost:25
 
R  Return to Main Menu
C  Turn color on
S  Save data
Q  Quit
 
Command >>
</pre></code>
Stellt hier unter '''1.)''' Euren Domain Namen ein. Dann geht in den Unterpunkt '''A.)''':
<code><pre>
IMAP Settings
--------------
4.  IMAP Server            : localhost
5.  IMAP Port              : 143
6.  Authentication type    : login
7.  Secure IMAP (TLS)      : false
8.  Server software        : dovecot
9.  Delimiter              : detect
 
B.  Update SMTP Settings  : localhost:25
H.  Hide IMAP Server Settings
 
R  Return to Main Menu
C  Turn color on
S  Save data
Q  Quit
 
Command >>
</pre></code>
Hier müssen die Settings entsprechend angepasst werden. Euer domain Name wo der Imap zu finden ist (localhost normalerweise). Zudem den Port auf '''993''' für SSL umstellen und Secure Imap auf '''True''' umstellen.<br>
<br>
Im Unterpunkt '''10''' des Hauptmenüs könnt Ihr noch das '''en_US'''
<code><pre>
Language preferences
1.  Default Language      : en_US
2.  Default Charset        : iso-8859-1
3.  Enable lossy encoding  : false
 
R  Return to Main Menu
C  Turn color on
S  Save data
Q  Quit
 
Command >>
</pre></code>
... in '''de_DE''' umstellen. Speichert die Änderungen mit '''S''' ab und beendet das Konfigurationsprogramm mit '''Q''' .
 
Falls auf Lenny der Squirrel nicht auf Deutsch geht, obwohl Ihr das '''de_DE''' eingestellt habt, dann fehlt Euch noch "'''de_DE iso-8859-1'''" in den '''locales''', da bei einer deutschen Installation standardmäßig nur de_DE UTF-8 ausgewählt wurde. Also führt
<code><pre>dpkg-reconfigure locales</pre></code>
aus und fügt bei den Sprachen de_DE iso 8859-1 mit hinzu. Den Rest lasst ihr einfach wie voreingestellt.<br>
<br>
Danach startet den Apachen neu:
<code><pre>/etc/init.d/apache2 restart</pre></code>
Ruft nun Euren Webmailer über
<code><pre>http://EURE_URL/squirrelmail</pre></code>
auf.
<br>
<br>
Jetzt wollen wir nur noch eine Verbindung über https zulassen. Dazu müssen wir dem Apache https als Erweiterung beibringen. Wechselt dazu in Euer Root Home:
<code><pre>cd /root</pre></code>
Danach legen wir unser Serverzertifikat an:
<code><pre>openssl genrsa -out server.key 4096
openssl req -new -key server.key -out server.csr</pre></code>
Jetzt werdet Ihr einige Angaben abgefragt:
<br>
<br>
Country Name (Ländercode): = '''DE'''<br>
State or Province Name (Bundesland): = zB '''Bayern'''<br>
Locality Name, eg. City (Stadt): = zB '''Nuernberg'''<br>
Organization Name (Firmenname): = '''hier irgendwas eingeben wie privat, zuhause etc.'''<br>
Organizational Unit Name (Abteilung) = '''bleibt leer'''<br>
Common Name, eg. YOUR Name: = '''Euer Servername'''<br>
Email Adress: = '''eine E-Mail Adresse'''<br>
A challenge password: = '''bleibt leer'''<br>
An optional company name: = '''bleibt leer'''<br>
<br>
Jetzt generieren wir das Zertifikat. Ich mache das gleich mal für 10 Jahre, dann ist Ruhe:
<code><pre>openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt</pre></code>
Noch ein paar Rechte festlegen:
<code><pre>chmod 400 server.key</pre></code>
Jetzt müssen wir noch ein paar Änderungen in einigen Apache Konfigurationsdateien vornehmen:
<code><pre>nano /etc/apache2/sites-enabled/000-default</pre></code>
Am Ende der Konfigurationsdatei ergänzt folgende neue Sektion:
<code><pre><VirtualHost *:443>
    DocumentRoot /var/www
    ServerName EUER_SERVERNAME
    SSLEngine on
    SSLCertificateFile /root/server.crt
    SSLCertificateKeyFile /root/server.key
 
  Alias /squirrelmail /usr/share/squirrelmail
      <Directory /usr/share/squirrelmail>
      Options Indexes
      AllowOverride All
      DirectoryIndex index.php
      Order allow,deny
      allow from all
    </Directory>
 
</VirtualHost>
</pre></code>
'''EUER_SERVERNAME''' muss noch entsprechend eingetragen werden. Speichert die Änderung und editiert die '''ports.conf'''
<code><pre>nano /etc/apache2/ports.conf</pre></code>
und fügt ganz zum Schluss folgende Zeile ein:
<br><br>
'''NameVirtualHost *:443'''
<br><br>
Nun aktivieren wir das SSL Modul:
<code><pre>a2enmod ssl</pre></code>
Der Apache muss jetzt neu gestartet werden:
<code><pre>/etc/init.d/apache2 restart</pre></code>
Beachtet, dass das natürlich kein gekauftes Zertifikat ist. Euer Browser wird hier eine entsprechende Warnmeldung bringen. Aber Ihr wisst damit, warum diese Meldung kommt.<br><br>
Wenn Ihr generell auf https umleiten wollt, auch wenn die Adresse über http abgerufen wird, müsst Ihr im Apache das Modul Rewrite aktivieren:
<code><pre>
a2enmod rewrite
/etc/init.d/apache2 restart</pre></code>
Legt dann eine '''.htaccess''' Datei in '''/usr/share/squirrelmail''' an:
<code><pre>nano /usr/share/squirrelmail/.htaccess</pre></code>
Füllt diese mit folgenden Zeilen:
<code><pre>Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]</pre></code>
Nun werden sämtliche Anfragen auf das verschlüsselte https Protokoll umgeleitet.
<br><br>
Zu guter Letzt wollen wir generell verhindern, dass man von außen einfach einen Zugriff auf das Login des Squirrelmail bekommt. Wir blockieren das deshalb mit '''.htaccess''' und aktivieren eine darüberliegende Passwortabfrage.
<br><br>
Fügt deshalb in der '''.htaccess''' noch folgendes ein:
<code><pre>AuthType Basic
AuthName squirrelmail
AuthUserFile /usr/share/squirrelmail/.htpasswd
require valid-user</pre></code>
Ihr seht, dass der Pfad zu dem dann erzeugtem Passwort im Dokumentenroot der Webanwendung liegt. Um das einwenig sicher zu machen, könnt Ihr durchaus dieses in ein anderes Verzeichnis legen, das außerhalb des Dokumentenroot liegt.
<br><br>
Das Passwort legt Ihr dann in diesem Verzeichnis (mittels '''cd''' dorthin wechseln!) mit einem
<code><pre>htpasswd -c .htpasswd username</pre></code>
an. Beim Befehl den Usernamen entsprechend Euren Vorstellungen ändern! Jetzt werdet Ihr zusätzlich nach einem Passwort gefragt.
<br><br>
 
==E-Mails via Exim4 verschicken==
Jetzt wollen wir noch E-Mails über den Server versenden können. Da wir keinen eigenen smtp Server einrichten wollen nehmen wir einfach den unseres Providers als smarthost (Ihr solltet Euch vergewissern, dass Euer Provider da nichts dagegen hat, allerdings merkt er nicht, ob ein Homeserver oder ein normaler Mail Client versendet. Solltet Euer Rechner als Spamschleuder missbraucht werden wird früher oder später Euer Provider auf den Plan treten ;-)<br>
<br>
Installiert den Exim4 mit einem
<code><pre>apt-get install exim4</pre></code>
 
Um einen Smarthost einzurichten startet die Konfiguration mit einem
<code><pre>dpkg-reconfigure exim4-config</pre></code>
''Folgende Konfigurationsschritte:''<br>
1.) Versand über Sendezentrale (Smarthost); '''Empfang mit SMTP oder Fetchmail'''<br>
<br>
2.) Email Name des Systems: '''Lasst einfach den voreingestellten Domänen Name stehen'''<br>
<br>
3.) IP-Adressen, dan denen eingehende SMTP-Verbindungen erwartet werden: '''127.0.0.1'''<br>
<br>
4.) Weitere Ziele, für die die E-Mails angenommen werden sollen: '''Auch hier den default Domän Namen stehen lassen'''<br>
<br>
5.) Rechner für die die E-Mails weitergeleitet werden sollen (Relay): '''Leer lassen, wenn nicht ein weiterer Rechner DIESEN Rechner als Smarthost verwendet. Also normal leer lassen.'''<br>
<br>
6.) IP Adresse oder Rechnername der Sendezentrale für ausgehende E-Mails:
'''Hier und genau hier kommt die IP Adresse oder der Rechnername (mail/smtp.xyz) Eures ISP rein!'''
<br><br>
7.) Lokalen E-Mail Namen in ausgehende Mails verbergen: '''Ja'''<br>
<br>
8.) DNS Anfrage minimieren: '''Ja'''<br>
<br>
9.) Versandart bei lokaler Mailzustellung: M'''box Format in /var/mail/'''<br>
<br>
10.) Einstellungen auf kleine Dateien aufteilen: '''Nein'''<br>
<br>
11.) 11.) Empfänger an die Benutzer "root" und "postmaster": '''leer lassen'''<br>
<br>
Danach startet der MTA neu. Jetzt kann es auch sein, dass Euer Smarthost eine Authentifizierung abverlangt. Diese hinterlegt in der folgenden Datei: '''/etc/exim4/passwd.client'''<br>
<br>
Hier das Passwort wie folgt hinterlegen:
<code><pre>IP_des_Mailserver_oder_Name:LOGIN:PASSWORT</pre></code>
Die Datei sollte nur lesbar für root sein.<br>
<br>
Startet danach den MTA neu:
<code><pre>/etc/init.d/exim4 restart</pre></code>
Solltet Ihr eine Fehlermeldung '''exim paniclog /var/log/exim4/paniclog has non-zero size''' erhalten, dann greift Exim4 auf IPv6 zu, ohne dass IPv6 zur Verfügung steht. Entfernt zunächst die '''paniclog''':
<code><pre>rm /var/log/exim4/paniclog</pre></code>
Lasst nochmal die Konfiguration durchlaufen:
<code><pre>dpkg-reconfigure exim4-config</pre></code>
Beim Punkt 3 '''IP-Adressen, dan denen eingehende SMTP-Verbindungen erwartet werden''' entfernt hinten das '''; ::1''' . Übernehmt den Rest und startet exim4 wieder neu:
<code><pre>/etc/init.d/exim4 restart</pre></code>
Jetzt könnt Ihr auch Mails verschicken.
<br>
<br>
 
==Viren mit ClamAV herausfiltern==
Viren haben nichts auf unseren Servern und schon gar nichts in unseren Mailboxen zu suchen. Deswegen installieren wir einen Mailscanner, der damit beauftragt wird, die einströmenden Mails auf Viren zu prüfen. Viren können als normale Datei anhängen oder als gepackte Versionen. Deswegen muss unser Server auch in der Lage sein, gepackte Dateien zu prüfen. Wir benötigen dazu einen ganzen Bündel an neuen Files. Dazu müssen wir erstmal unsere '''sources.list''' erweitern:
<code><pre>nano /etc/apt/sources.list</pre></code>
Bei unseren Standard Repositories setzen wir dann noch die Source Reopsitiries dazu:
<code><pre>
deb http://ftp.de.debian.org/debian/ wheezy main contrib non-free
deb-src http://ftp.de.debian.org/debian/ wheezy main contrib non-free
 
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free
</pre></code>
Wir frischen nun die Repositories auf:
<code><pre>apt-get update</pre></code>
Jetzt müssen wir uns insgesamt 3 Pakete bauen:<br><br>
'''unrar-nonfree'''<br>
'''lha'''<br>
'''libclamunrar6'''<br><br>
Falls noch nicht geschehen müssen noch die build-essentials installiert werden:
<code><pre>apt-get install build-essential</pre></code>
Danach legen wir uns ein Arbeitsverzeichnis an und wechslen dorthin:
<code><pre>mkdir work
cd work
</pre></code>
Wir beginnen mit '''unrar''':
<code><pre>mkdir unrar-nonfree
cd unrar-nonfree
apt-get build-dep unrar-nonfree
apt-get source -b unrar-nonfree
</pre></code>
Das fertiggestellte Paket seht Ihr als *.deb Paket mit einem '''ls -la'''. Installiert das Paket entsprechend seiner Versionsnummer (ggf. anpassen):
<code><pre>dpkg -i unrar_4.1.4-1.deb
cd ..</pre></code>
Danach das Paket '''lha''':
<code><pre>mkdir lha
cd lha
apt-get build-dep lha
apt-get source -b lha
</pre></code>
Das fertiggestellte Paket seht Ihr als *.deb Paket mit einem '''ls -la'''. Installiert das Paket entsprechend seiner Versionsnummer (ggf. anpassen):
<code><pre>dpkg -i lha_.1.14i-10.deb
cd ..</pre></code>
 
Wir bleiben im work Verzeichnis und installieren die folgenden Pakete:
 
<code><pre>apt-get install clamav clamav-base clamav-daemon clamav-freshclam unzip</pre></code>
Fehlermeldungen wegen einer nicht aktuellen Virendatenbank ignorieren wir zunächst.<br>
Danach bauen wir uns noch den '''libclamunrar6''':
<code><pre>mkdir libclamunrar6
cd libclamunrar6
apt-get build-dep libclamunrar6
apt-get source -b libclamunrar6
</pre></code>
Das fertiggestellte Paket seht Ihr als *.deb Paket mit einem '''ls -la'''. Installiert das Paket entsprechend seiner Versionsnummer (ggf. anpassen):
<code><pre>dpkg -i libclamunrar6_0.98.5.deb</pre></code>
 
Jetzt aktualisieren wir den ClamAV:
<code><pre>freshclam</pre></code>
Und nun starten wir den ClamAV durch:
<code><pre>/etc/init.d/clamav-daemon start</pre></code>
 
<br><br>
'''Variante A) getmail'''<br>
<br>
Fügt nun in jeder getmail Konfig Eures getmail Users noch folgenden Abschnitt mit ein:
<code><pre>
[filter-virus]
type = Filter_classifier
path = /usr/bin/clamdscan
arguments = ("--stdout", "--no-summary", "-")
exitcodes_drop = (1, )
</pre></code>
Das filtert nun nach dem ClamAV erkannte Virenmails heraus. Viren die in gepackten Dateien enthalten sind werden auch nach aktuellen Stand der Datenbank aussortiert. <br>
<br>
Wenn Ihr wollt könnt Ihr Euch von heise Security aus Testviren (harmlos!) zusenden lassen. Diese könnt Ihr unter folgender URL anfordern: [http://www.heise.de/security/dienste/emailcheck/demos/go.shtml?kategorie=virendummies http://www.heise.de/security/dienste...e=virendummies]
Lasst Euch hier eine normale Testmail und eine mit einem zip Paket zuschicken. Wenn alles klappt wird die Testmail Eure Mailbox nie erreichen, da diese kommentarlos gedropped (gelöscht) wird. Ob dies tatsächlich der Fall ist seht Ihr entweder in der .getmail/xyz.log , dort wird ausgegeben, welche Mail mit welchen Absender gedropped wurde. Ebenso seht Ihr unter /var/log/clamav/clamav.log, ob Viren gefunden wurden.<br>
<br>
'''Variante B) procmail'''<br>
<br>
Eine meiner Meinung nach etwas schönere Lösung gibt es über den Procmail mittels clamassassin. Das Script kann in den procmail integriert werden, markiert den Titel einer infizierten Mail mit einer entsprechenden Warnung und schiebt dies dann in einen eigenen Ordner. Auf diesem Weg werden keine Falschmeldungen einfach gelöscht und man hat die Mail nochmal vor Augen. Der User sollte diese dann tunlichst löschen, wenn er diese vielleicht noch mit einem Scanner auf seinem Rechner geprüft hat.<br>
<br>
Als erstes installieren wir den clamassassin aus den Repositories:
<code><pre>apt-get install clamassassin</pre></code>
Dieser arbeitet out of the box allerdings anscheinend nur mit dem clamscan und nicht über den deutlich schnelleren Weg des clamdscan Deamons. Von daher müssen wir den clamassassin aus den Quellen nochmal neu kompilieren. Hierzu bitte die build-essentials installieren und ein Arbeitsverzeichnis erstellen, in das wir dann gleich wechseln:
<code><pre>cd /
mkdir work
apt-get install build-essential
cd /work</pre></code>
Jetzt laden wir uns die Quellen herunter
<code><pre>apt-get source clamassassin</pre></code>
und wechseln in das Hauptverzeichnis des Quellcodes:
<code><pre>cd clamassassin-1.2.4</pre></code>
Jetzt muss der Übersetzungsvorgang vorbereitet werden. Hierzu folgendes eingeben
<code><pre>./configure --bindir=/usr/bin --enable-clamdscan --enable-subject-rewrite=***INFECTED***</pre></code>
Damit haben wir Folgendes geregelt:<br>
<br>
-Die übersetzte Datei wird nach /usr/bin installiert<br>
-clamassassin wird clamdscan verwenden, wenn dieser läuft<br>
-Die Mailüberschrift wird mit ***INFECTED*** markiert<br>
<br>
Jetzt installieren wir das Script:
<code><pre>make install</pre></code>
Das sollte ohne Fehler durchlaufen. <br>
<br>
In der ~/.procmailrc schreiben wir dann als erste Regeln (das muss ja auf alle eingehenden Mails angewandt werden) folgende:
<code><pre>
0 fw
| /usr/bin/clamassassin
 
:0:
* ^X-Virus-Status: Yes
.virus/
</pre></code>
Danach werden alle Mails, in denen ein Virus entdeckt wurde, in den Ordner virus in Eurer Mailbox erschoben. Prüft nach, ob der Clamassassin auch tatsächlich filtert, indem Ihr Euch eine Testmail schickt. Im Header dieser Mail solltet Ihr dann folgende Zeile relativ weit unten finden:<br>
'''X-Virus-Checker-Version: clamassassin 1.2.4 with clamdscan...'''
<br><br>
[[Bild:virentest.jpg|virentest]]<br>
''Eine entdeckte Virentestmail''
<br><br>
 
==Spam tilgen mit Spamassassin==
Jetzt widmen wir uns der schlimmsten Mailplage im Netz, dem Spam. Auch hier gibt es einige Möglichkeiten, gegen Spam anzutreten. Unter Linux hat sich derweilen als Filter das Programm Spammassassin etabliert. Wir wollen nun unseren Mailserver so konfigurieren, dass er eingehende Mails auf Spam untersucht und sollte er der Meinung sein, dass es sich um Spam handelt, dieser die Mails als Spam markiert und in einen eigenen Ordner Junk verschiebt. Der User hat dann die Möglichkeit, den Ordner weiterhin auf "Falsepositives" zu untersuchen und löscht einfach den Rest raus. Hier sind zumindest die Mails vorsortiert und man geht dabei nicht das Risiko ein, dass vielleicht irgendwo noch erwünschte Mails einen generellen Löschvorgang zum Opfer fallen.<br>
<br>
Zuerst installieren wir den Spamassassin:
<code><pre>apt-get install spamassassin</pre></code>
Dies liefert uns noch wietere zahlreiche Pakete hauptsächlich aus dem Bereich "perl". Wenn die Pakete installiert sind, dann bauen wir erstmal eine einfache Grundkonfiguration auf, die natürlich noch durch viele weitere ausgeklügelte Filtermaßnahmen erweitert werden können. Wir editieren zuerst einmal die Datei
<code><pre>nano /etc/spamassassin/local.cf</pre></code>
Hier bitte bei folgende Zeilen das "#" entfernen um diese zu aktivieren:
<code><pre>
rewrite_header Subject *****SPAM*****
 
required_score 5.0
 
use_bayes 1
 
bayes_auto_learn 1
 
bayes_ignore_header X-Bogosity
bayes_ignore_header X-Spam-Flag
bayes_ignore_header X-Spam-Status
</pre></code>
Unter die drei '''bayes_ignore''' Zeilen schreibt dann bitte noch folgende Zeilen:
<code><pre>bayes_ignore_header X-getmail-filter-classifier</pre></code>
Das verhindert, dass Headererweiterungen des Getmail irgendwann als Spam ausgewertet und gekennzeichnet werden.<br>
<br>
Jetzt editiert bitte die Datei '''/etc/default/spamassassin'''<br>
<br>
Dort stellt den Eintrag<br>
<code><pre>ENABLED=0</pre></code>
auf
<code><pre>ENABLED=1</pre></code>
Dies stellt sicher, dass der Filter beim Booten des Servers automatisch gestartet wird. Da dieser eben nach der Installation nicht angefahren wird können wir den Spamfilter auch manuell scharf machen ohne erst dafür unseren Server neu zu starten:
<code><pre>/etc/init.d/spamassassin start</pre></code>
Damit das alles über den Getmail läuft, geht dann noch in Eure jeweilige Getmail Konfiguration unter .getmail und fügt zum Schluss der Konfigurationsdatei folgende Filterregel ein:
<code><pre>
[filter]
type = Filter_external
path = /usr/bin/spamc
</pre></code>
Über Procmail lassen wir nun noch nach der Headererweiterung *****SPAM***** suchen. Dazu fügen wir folgende Regel (am besten als erste Regel unterhalb der Virenregeln) in der ~/.procmailrc ein:
<code><pre>
:0
* ^Subject:.******SPAM*****
.Junk/
</pre></code>
Das sollte nun alle vom Spamassassin mit SPAM gekennzeichnete Mails in den Junk - Ordner schieben.<br>
<br>
'''Hinweis:''' Da der Procmail als Platzhalter ein Sternchen * verwendet, ist es auch ratsam, die Subject Markierung auf ein anderes Symbol zu setzen, beispielsweise +++++SPAM+++++ . Ändert dies dann in der '''/etc/spamassassin/local.cf''' ab und in der '''.procmailrc'''. Danach natürlich den Spamassassin neu starten:
<code><pre>/etc/init.d/spamassassin restart</pre></code>
Woran sehe ich nun, ob der Spamfilter läuft? Hierzu schickt Euch einfach mal eine Testmail. Als Betreff dann gleich die entsprechende Änderung, die eben der Spamassassin einfügen würdee, wenn Spam erkannt werden würde (also beispielsweise +++++SPAM+++++). Das zeigt uns dann erstmal, ob der Procmail dann auch sauber filtern würde und die Mail in unseren Junk Ordner verschiebt. Wenn Ihr Eure Mail dann im Junk Ordner liegen habt, dann seht Euch den Quelltext an. Im Header der Mail solltet Ihr dann in etwa Folgendes lesen können:
<code><pre>X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on myserver
X-Spam-Level: *
X-Spam-Status: No, score=1.5 required=5.0 tests=AWL,SPF_FAIL autolearn=no
version=3.2.5</pre></code>
Hier seht Ihr, dass der Spamassassin aktiv war und seinen Score ( 1.5 ) eingetragen hat. Daneben steht der benötigte Score, damit die Mail als Spam markiert wird. Ihr könnt hier jetzt nur abwarten und zusehen, ob die Geschichte auf Dauer Euch in der Form genügt, oder Ihr noch ein paar "Goodies" einbauen wollt.
<br>
<br>
 
==Scripterweiterungen==
An der Stelle werde ich noch ein paar Konfigurationserweiterungen für Spamassassin, procmail und getmail bringen.<br>
<br>
'''a) Razor und Pyzor anwenden''' <br>
Eine Erweiterung für den Spamassassin stellt '''razor''' und '''pyzor''' dar. Via einer Checksumme werden Mails dann mit einer Datenbank verglichen. Wurde eine Spammail von mehreren Usern gemeldet, dann wird eine empfangene Spammail als solche auf Basis dieser Meldungen auf dem lokalen Server von Spamassassin erkannt.<br>
Stellt zunächst einmal fest, dass die '''UDP Ports 24441''' (in + out für pyzor) und '''TCP Port 2703''' (out für razor) offen sind und passt gegebenfalls Eure Firewall an.<br>
<br>
Jetzt installiert die beiden Pakete;
<code><pre>apt-get install razor pyzor</pre></code>
Die Spamassassin Konfiguration wird automatisch angepasst. Führt nun noch folgende Befehle aus, um den razor zu aktivieren:
<code><pre>razor-admin -d -home=/etc/razor -create
razor-admin -d -home=/etc/razor -register</pre></code>
Testet noch, ob pyzor nach außen funken kann:
<code><pre>pyzor ping
pyzor --homedir /etc/spamassassin discover</pre></code>
Ein '''public.pyzor.org:24441  (200, 'OK')''' deutet darauf hin, dass die Kommunikation funktioniert. Ändert dann die '''/etc/spamassassin/local.cf''' und fügt unter den Bayes Bereich noch folgendes mit ein:
<code><pre>use_pyzor 1
pyzor_path /usr/bin/pyzor
 
use_razor2 1
razor_config /etc/razor/razor-agent.conf</pre></code>
Startet Euren Spamassassin neu:
<code><pre>/etc/init.d/spamassassin restart</pre></code>
Schaut Euch dann die gefilterten Spam Mails an. Wenn alles klappt, dann findet Ihr Pyzor und Razor Punkte entsprechend gelistet.<br>
z.B. Razor:
<code><pre> 2.4 RAZOR2_CF_RANGE_E8_51_100 Razor2 gives engine 8 confidence level
                            above 50%
                            [cf: 100]
0.4 RAZOR2_CF_RANGE_51_100 Razor2 gives confidence level above 50%
                            [cf: 100]
1.7 RAZOR2_CHECK          Listed in Razor2 (http://razor.sf.net/)</pre></code>
z.B. Pyzor:
<code><pre>2.0 PYZOR_CHECK            Listed in Pyzor (http://pyzor.sf.net/)</pre></code>
<br>
<br>
'''b) Mails mit speziellen Anhängen filtern'''<br>
Manche Anhänge einer Mail sind potentielle Risiken. Hier kann man um die Aufmerksamkeit einwenig zu heben solche Mails gleich von Haus aus in einen speziellen Ordner (Bsp.: dangerous) schieben. Der User sieht dann gleich, dass man hier besondere Vorsicht walten lassen sollte im Umgang mit einer derartigen Mail. Der Code für die .procmailrc würde so aussehen:
<code><pre>
:0 B:
* name=.*\.(vbs\"|wsf\"|exe\"|vbe\"|src\"|rar\"|dll\*)
.dangerous/
</pre></code>
Dies könnt Ihr mit entsprechenden Erweiterungen noch versehen. Die Regel setzt am besten recht weit nach oben unter die Spamregel.
<br>
<br>
 
==Gargi's Schlusswort==
Das soll uns nun für einen Mailserver genügen, der sowohl von außen als auch vom internen Netz zu erreichen ist. Dass man hier noch einiges an Finetuning betreiben kann ist klar. Aber ein Gerüst für ein funktionierenden Mailverteiler ist das allemal und sollte im Homebereich und für kleine Büros sicher genügen. Einen echten SMTP aufzubauen wäre der nächste Schritt. Nur wird man sich nach wie vor schwer tun, einen Server ohne full qualified Domäne im Netz ernsthaft als Mailserver zu betreiben, da die Mails schneller auf den Spamlisten landen als Ihr Spam aussprechen könnt. Aber das ist auch nicht nötig, denn für den Hausgebrauch reicht das dicke!<br>
<br>
Viel Spaß!<br>
Euer<br>
Gargi<br>
<br>
<br>
'''''Quellen'''''<br>
[http://www.dovecot.org Dovecot]<br>
[http://pyropus.ca/software/getmail Getmail]<br>
[http://www.procmail.org Procmail]<br>
[http://spamassassin.apache.org Spamassassin]<br>
[http://sourceforge.net/projects/pyzor/ Pyzor]<br>
[http://www.clamav.net ClamAV]<br>
[http://jameslick.com/clamassassin ClamAssassin]<br>
[http://www.squirrelmail.org Squirrelmail]<br>
[http://www.debian.org Debian]<br>
<br>
'''''Literatur'''''<br>
[http://www.amazon.de/Open-Source-Tools-Spam-Viren-bek%C3%A4mpfen/dp/389721377X/ref=sr_1_1?ie=UTF8&s=books&qid=1240062399&sr=8-1 Spam & Viren bekämpfen]<br>
[http://www.amazon.de/Linux-Server-umfassende-Handbuch-Praxisbuch-Versionen/dp/3826615875/ Debian Server]<br>
[http://www.amazon.de/Postfix-sicherer-leicht-verwaltender-Unix/dp/3897213729/ Postfix]<br>
[http://www.amazon.de/Linux-Server-Hacks-Rob-Flickenger/dp/0596004613/ Linux Server Hacks]<br>
[http://www.amazon.de/100-neue-Linux-Server-Hacks/dp/389721461X/ 100 neue Linux Server Hacks]<br>
 
 
<br>
<br>
{{Frage|Bei Fragen zu diesem Tutorial verweise ich auf mein Forum zu diesem Beitrag unter  [http://www.gargi.org/showthread.php?1387-Mailserver-auf-Debian-mit-Imap-Smarthost-und-Filter Mailserver auf Debian mit Imap, Smarthost und Filter]}}
<br /><br />
<metakeywords>IMAP,Linux,Mailserver,Debian,Spamassassin,E-Mail,Clamav</metakeywords>

Aktuelle Version vom 30. Juni 2018, 12:24 Uhr