{"id":124,"date":"2015-11-10T00:15:05","date_gmt":"2015-11-10T00:15:05","guid":{"rendered":"http:\/\/212.37.178.14\/wordpress\/?p=124"},"modified":"2019-03-18T11:11:58","modified_gmt":"2019-03-18T11:11:58","slug":"mailserver-auf-debian-mit-imap-smarthost-und-filter","status":"publish","type":"post","link":"https:\/\/wordpress.steffmaster.mooo.com\/?p=124","title":{"rendered":"Mailserver auf Debian mit Imap, Smarthost und Filter"},"content":{"rendered":"<p><a href=\"https:\/\/www.gargi.org\/index.php?title=Mailserver_auf_Debian_mit_Imap,_Smarthost_und_Filter\">Quelle<\/a><\/p>\n<p>Installation von Getmail und die Konfiguration<br \/>\nWir installieren zuerst getmail mit einem<\/p>\n<p>apt-get install getmail4<br \/>\nWir legen nun eine neuen User getmail an, der f\u00fcr uns in Zukunft die Sache erledigen wird:<\/p>\n<p>adduser getmail<br \/>\nVergebt hier das Passwort. Da das kein Standarduser sein soll und falls Ihr einen ftp am Laufen habt, dann schlie\u00dft bitte diesen User vom ftp- Zugriff aus. Dies erledigt Ihr, indem Ihr den User getmail in die Datei \/etc\/ftpusers eintragt.<\/p>\n<p>nano \/etc\/ftpusers<br \/>\nStartet nach einer \u00c4nderung den proftp neu:<\/p>\n<p>\/etc\/init.d\/proftpd restart<br \/>\nGleiches machen wir nun mit einem User postfach1. Ihr k\u00f6nnt den Namen frei ausw\u00e4hlen, denn das werden dann die Mailnutzer werden, die dann via IMAP ihre Mails abrufen k\u00f6nnen. Legt auch diese mit adduser an und schlie\u00dft diese aus dem ftp-Zugriff aus.<\/p>\n<p>Jetzt wollen wir auch nicht, dass eventuell \u00fcber ssh auf die Mailboxen zugegriffen werden kann. Wenn Ihr einen ssh Clienten nach au\u00dfen offen habt, dann ist das sicherlich auch ratsam. Ihr k\u00f6nnt das Anmelden (auch damit lokal am Rechner) unterbinden, indem Ihr in der \/etc\/passwd f\u00fcr den jeweiligen User hinten das \/bin\/bash in \/bin\/false ab\u00e4ndert. Dann ist auch das Anmelden nicht mehr m\u00f6glich.<\/p>\n<p>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\u00f6glich sind k\u00f6nnen wir weiter machen.<\/p>\n<p>Um sp\u00e4ter aber einen Test mit getmail durch zu f\u00fchren muss die \u00c4nderung in der \/etc\/passwd nochmal r\u00fcckg\u00e4ngig gemacht werden. Aber auch hier gehe ich dann im Bedarfsfall darauf ein.<\/p>\n<p>Wenn das erledigt ist m\u00fcssen wir aber immer daran denken, dass wir die als root angelegten Dateien sp\u00e4ter immer dann den jeweiligen User zuweisen, damit es kein Rechteproblem gibt. Darauf gehe ich dann aber noch ein, wenn es soweit ist.<\/p>\n<p>Nun wechseln wir in das Verzeichnis \/home\/getmail :<br \/>\ncd \/home\/getmail<br \/>\nund legen ein neues verstecktes Verzeichnis an:<\/p>\n<p>mkdir .getmail<br \/>\nDort erstellen wir nun eine Konfigurationsdatei:<\/p>\n<p>touch .getmail\/mailbox1.conf<br \/>\nDiese bef\u00fcllen wir nun mit folgenden Inhalt:<\/p>\n<p>[options]<br \/>\nverbose = 0<br \/>\ndelete = true                           # true= mails werden auf Server gel\u00f6scht false= Mails werden nicht gel\u00f6scht<br \/>\nread_all = false                        # true= alle Mails werden abgeholt false= nur neue Mails werden abgeholt<br \/>\nmessage_log = ~\/.getmail\/mailbox1.log   # Fehler beim Abholen werden in die Logdatei mailbox1 geschrieben<\/p>\n<p>[retriever]<br \/>\ntype = SimplePOP3Retriever<br \/>\nserver = mail.euerprovider.de           # Die Adresse des Mailserversers Eures Providers<br \/>\nusername = username                     # Der Username des Mailservers<br \/>\npassword = euerpasswort                 # Passwort, Achtung, kann gelesen werden, wer auf den Server kommt<\/p>\n<p>[destination]<br \/>\ntype = MDA_external                     # Das sagt aus, dass ein externes Programm die Mails \u00fcbernimmt<br \/>\npath = \/usr\/bin\/procmail                # Procmail nimmt alles in die Hand<br \/>\narguments = (&#8222;-dpostfach1&#8220;, )           # Der Nutzer postfach1 bekommt die Mails \u00fcberstellt<br \/>\n(HINWEIS: Bitte entfernt die Kommentare hinten an den Zeilen &#8211; alles was mit # losgeht)<\/p>\n<p>Wenn Ihr nun mehrere externe Mailboxen besitzt legt dann f\u00fcr jede Mailbox eine eigene Konfigurationsdatei an. Bennent jede Konfigurationsdatei eindeutig, damit Ihr diese sp\u00e4ter auseinanderhalten k\u00f6nnt. Zudem legt in jeder Datei fest, welcher Nutzer die Mails dann bekommen soll. Das wird im Bereich<\/p>\n<p>arguments = (&#8222;-dxyz&#8220;, )<br \/>\nfestgelegt. xyz = der jeweilige Nutzer, der die Mails bekommen soll.<\/p>\n<p>Damit nur getmail die Datei lesen darf regelt die Zugriffsrechte nun wie folgt: Aus dem Verzeichnis \/home\/getmail heraus gebt nun folgende Befehle ab:<\/p>\n<p>cd \/home\/getmail<br \/>\nchown getmail:getmail -R .getmail<br \/>\nchmod 640 .getmail\/*<br \/>\nIm Grunde haben wir nun unseren kleinen D\u00e4monen schon fertig, der sp\u00e4ter regelm\u00e4\u00dfig 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. <\/p>\n<p>Installation von Procmail und die Konfiguration<br \/>\nProcmail bekommt ja nun die Mails alle in einen Topf geschmissen und verteilt die Mails nun nach entsprechenden Schematas in die einzelnen Postf\u00e4cher 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<\/p>\n<p>apt-get install procmail<br \/>\nab. Jetzt wechselt in das Verzeichnis des Users postfach1:<\/p>\n<p>cd \/home\/postfach1<br \/>\nDort legt nun eine Konfigurationsdatei an:<\/p>\n<p>touch .procmailrc<br \/>\nZudem zwei neue Verzeichnisse:<\/p>\n<p>mkdir mail<br \/>\nmkdir log<br \/>\nNun bef\u00fcllt die .procmailrc mit folgenden Inhalt:<\/p>\n<p>MAILDIR=$HOME\/mail               # Hier kommen die Mails rein<br \/>\nLOGFILE=$HOME\/log\/procmail.log   # Fehlermeldungen werden in der log gespeichert<br \/>\nVERBOSE=on                       <\/p>\n<p>:0<br \/>\n* ^TO_.*beispiel.de              # Mails dern Empf\u00e4nger auf beispiel.de enden<br \/>\n.test\/                           # landen in INBOX.test <\/p>\n<p>:0<br \/>\n* ^From: .*spammer@domain.com    # Mails von einer bestimmten Adresse werden gel\u00f6scht<br \/>\n\/dev\/null<\/p>\n<p>:0<br \/>\n* ^TO_.*test2@beispiel.de        # alle Mails an eine bestimmte Adresse werden in<br \/>\n.test2\/                          # in die INBOX.test2 einsortiert<\/p>\n<p>:0<br \/>\n.\/                               # Alles andere an direkten Posteingang<br \/>\nFolgendes ist hier wichtig: Hinten m\u00fcssen 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.<\/p>\n<p>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\u00f6gliche zus\u00e4tzliche Leerzeichen mit einschlie\u00dfen und vermeidet Missmatches bei zus\u00e4tzlichen Leerzeichen.<br \/>\nDamit zum Schluss alle Zugriffsrechte passen, f\u00fchren wir dann ein<\/p>\n<p>chown -R postfach1:postfach1 \/home\/postfach1\/<br \/>\naus. Pr\u00fcft mit einem ls -la innerhalb des Verzeichnisses dann nach, ob die Dateien und Verzeichnisse dem User postfach1 geh\u00f6ren. <\/p>\n<p>Erster Test<br \/>\nUm nun zu \u00fcberpr\u00fcfen, ob die ersten Regeln funktionieren und auch von der Mailbox abgerufen werden kann m\u00fcsst Ihr Euch als User getmail einloggen. Hierf\u00fcr m\u00fcssen wir unsere Sperre in der \/etc\/passwd r\u00fcckg\u00e4ngig machen. In der Zeile des Users getmail \u00e4ndert dort wieder das \/bin\/false auf \/bin\/bash ab. Jetzt funktioniert die Anmeldung:<\/p>\n<p>su getmail<br \/>\n\u00c4ndert zum Testen auch in Eurer Getmail Config das<\/p>\n<p>delete = true<br \/>\nauf<\/p>\n<p>delete = false<br \/>\nab, da Ihr garantiert das \u00f6fters testen m\u00fcsst, bis es passt! <\/p>\n<p>F\u00fchrt nun den Abruf aus:<\/p>\n<p>getmail -v &#8211;rcfile ~\/.getmail\/mailbox1.conf<br \/>\nWenn Ihr mehrere Boxen abruft, dann einfach diese zus\u00e4tzlich anh\u00e4ngen:<\/p>\n<p>getmail -v &#8211;rcfile ~\/.getmail\/mailbox1.conf &#8211;rcfile ~\/.getmail\/mailbox2.conf<br \/>\nWenn alles gut l\u00e4uft bekommt Ihr eine entsprechende Meldung:<\/p>\n<p>getmail -v &#8211;rcfile ~\/.getmail\/mailbox1.conf<br \/>\ngetmail version 4.7.8<br \/>\nCopyright (C) 1998-2007 Charles Cazabon.  Licensed under the GNU GPL version 2.<br \/>\nSimplePOP3Retriever:blah@mail.beispiel.de:110:<br \/>\n  msg  1\/14 (2428090 bytes) delivered<br \/>\n  msg  2\/14 (3415 bytes) delivered<br \/>\n  msg  3\/14 (3253 bytes) delivered<br \/>\n  msg  4\/14 (2940 bytes) delivered<br \/>\n  msg  5\/14 (4124 bytes) delivered<br \/>\n  msg  6\/14 (3687 bytes) delivered<br \/>\n  msg  7\/14 (4498 bytes) delivered<br \/>\n  msg  8\/14 (5705 bytes) delivered<br \/>\n  msg  9\/14 (5377 bytes) delivered<br \/>\n  msg 10\/14 (3863 bytes) delivered<br \/>\n  msg 11\/14 (4275 bytes) delivered<br \/>\n  msg 12\/14 (5422 bytes) delivered<br \/>\n  msg 13\/14 (3715 bytes) delivered<br \/>\n  msg 14\/14 (4015 bytes) delivered<br \/>\n  14 messages (2482379 bytes) retrieved, 0 skipped<br \/>\nLoggt Euch wieder aus:<\/p>\n<p>exit<br \/>\nNun 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\u00fcsst diese anpassen. Zum erneuten Test l\u00f6scht 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\u00fcr diese Gelegenheiten m\u00fcsst Ihr dann Eure Regeln entsprechend anpassen. Die procmailrc wird Euch somit noch lange begleiten bis alles wie gew\u00fcnscht funktioniert.<\/p>\n<p>Nun werden wir den Mailabruf automatisieren. Dazu \u00f6ffnet noch als user getmail angemeldet die crontab mit<\/p>\n<p>crontab -e<br \/>\nDort f\u00fcgt nun Euren Getmail-Aufruf ein und erg\u00e4nzt die Zeile wie folgt:<\/p>\n<p>*\/5 * * * * \/usr\/bin\/getmail -v &#8211;rcfile ~\/.getmail\/mailbox1.conf &#8211;rcfile ~\/.getmail\/mailbox2.conf > \/dev\/null 2>&#038;1<br \/>\nDas ruft den Prozess nun alle 5 Minuten ab. D.h. alle 5 Minuten werden Eure externen Mailboxen auf neue E-Mails \u00fcberpr\u00fcft und dem procmail \u00fcbergeben, der Weiteres f\u00fcr Euch erledigt, indem er filtert und in Mailboxen verteilt.<\/p>\n<p>Wenn alles glatt l\u00e4uft, 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. <\/p>\n<p>Getmail mit SSL Verbindung<br \/>\nDie \u00dcbertragung der Dateien sollte nat\u00fcrlich auch verschl\u00fcsselt erfolgen. Die meisten Provider sollten das auch zur Verf\u00fcgung stellen. Wenn unser Test erfolgreich war, dann stellen wir noch die Konfiguration entsprechend um. Editiert dazu die entsprechende Getmail Konfigurationsdatei:<\/p>\n<p>nano \/home\/getmail\/.getmail\/mailbox1.conf<br \/>\nDie Zeile<\/p>\n<p>type = SimplePOP3Retriever<\/p>\n<p>tauscht in <\/p>\n<p>type = SimplePOP3SSLRetriever<\/p>\n<p>aus. Solltet Ihr ein Firewallscript verwenden, dann m\u00fcsst Ihr als TCP_OUT den Port 995 eintragen.<br \/>\nF\u00fchrt dann nochmal einen Test wie oben beschrieben durch und pr\u00fcft damit, ob der Abruf klappt. <\/p>\n<p>Imap mit Dovecot<br \/>\nBeim Imap Server m\u00f6chte ich es Euch recht einfach machen. Ihr ben\u00f6tigt hierf\u00fcr einen Installationsbefehl und ein paar Kleinigkeiten zum Editieren. <\/p>\n<p>Editiert zun\u00e4chst die \/etc\/hosts<\/p>\n<p>nano \/etc\/hosts<br \/>\nDie ersten zwei Zeilen sehen ungef\u00e4hr so aus:<\/p>\n<p>127.0.0.1    localhost<br \/>\n127.0.0.1   meinserver.example.org   meinserver<br \/>\nDamit es sp\u00e4ter keinen Huddel gibt beim Erstellen der Sicherheitszertifikate \u00e4ndert diese auf<\/p>\n<p>127.0.0.1    localhost<br \/>\n192.168.1.77 192.168.1.77  meinserver<br \/>\nab. Die \u00c4nderung speichert Ihr ab. Jetzt k\u00f6nnt Ihr die ben\u00f6tigten Programme installieren:<\/p>\n<p>apt-get install dovecot-common dovecot-imapd<br \/>\nWenn Ihr dann bei der Installation in dem Moment, in dem der Dovecot gestartet wird, eine Meldung<\/p>\n<p>Fatal: Failed to start listeners<br \/>\nfailed! <\/p>\n<p>erhaltet, dann kracht es an einer Stelle mit dem IPv6, d.h. wird von Eurem Server nicht unterst\u00fctzt.<br \/>\nEditiert deshalb die dovecot.conf:<\/p>\n<p>nano \/etc\/dovecot\/dovecot.conf<br \/>\nSchreibt unter die Zeile <\/p>\n<p>#listen = *, :: <\/p>\n<p>folgende Zeile: <\/p>\n<p>listen = * <\/p>\n<p>Startet dann nochmal den Dovecot:<\/p>\n<p>\/etc\/init.d\/dovecot restart<br \/>\nDer Fehler sollte jetzt weg sein und der Dovecot laufen. <\/p>\n<p>W\u00e4hrend er Installation werden automatisch die Zertifikate<\/p>\n<p>\/etc\/dovecot\/dovecot.pem<br \/>\n\/etc\/dovecot\/private\/dovecot.pem<\/p>\n<p>f\u00fcr 10 Jahre angelegt. Solltet Ihr diese aus irgendeinem Grund neu generieren wollen dann l\u00f6scht beide dovecot.pem Dateien und generiert diese wieder mit einem:<\/p>\n<p>dpkg-reconfigure dovecot-common<br \/>\nWir editieren noch drei Dovecot Konfigurationsdateien:<\/p>\n<p>nano \/etc\/dovecot\/conf.d\/10-mail.conf<br \/>\nHier muss das Standardverzeichnis \/var\/mail f\u00fcr die reinkommenden E-Mails von \/var\/mail auf das Homeverzeichnis umgestellt werden. \u00c4ndert deswegen die Mail Location wie folgt ab: <\/p>\n<p>mail_location = maildir:~\/mail<\/p>\n<p>nano \/etc\/dovecot\/conf.d\/10-auth.conf<br \/>\nSollte man Plaintext Auth verhindern wollen: <\/p>\n<p>#disable_plaintext_auth = yes<\/p>\n<p>in <\/p>\n<p>disable_plaintext_auth = yes<\/p>\n<p>nano \/etc\/dovecot\/conf.d\/10-ssl.conf<\/p>\n<p>#ssl = yes <\/p>\n<p>in <\/p>\n<p>ssl = yes <\/p>\n<p>Das war es dann auch schon. Speichert die \u00c4nderung und startet Euren Imap Server neu.<\/p>\n<p>\/etc\/init.d\/dovecot restart<br \/>\nAn der stelle k\u00f6nnt Ihr Euch schon an den IMAP Server mittels Euren Mail Clienten wie den Thunderbird einloggen. Alternativ installieren wir jetzt noch den Webmailer Squirrelmail: <\/p>\n<p>Squirrelmail Webmailer<br \/>\nAuf einem Debian Webserver (Apache2, php, MySQL) ist Squirrelmail recht schnell installiert.<\/p>\n<p>Zun\u00e4chst installieren wir Squirrelmail an der Konsole:<\/p>\n<p>apt-get install squirrelmail<br \/>\nSolltet Ihr noch das Shared Kalender Plugin verwenden wollen, m\u00fcssen noch zwei zus\u00e4tzliche Pakete installiert werden:<\/p>\n<p>apt-get install php-db php-pear<br \/>\nSquirrel 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\u00fcgt unter dem ersten Alias Abschnitt folgenden Abschnitt mit ein (bitte INNERHALB des virtual host Abschnitts!!!):<\/p>\n<p>    Alias \/squirrelmail \/usr\/share\/squirrelmail<br \/>\n      <Directory \/usr\/share\/squirrelmail><br \/>\n       Options Indexes<br \/>\n       AllowOverride All<br \/>\n       DirectoryIndex index.php<br \/>\n       Order allow,deny<br \/>\n       allow from all<br \/>\n    <\/Directory><br \/>\nDamit wird wenn Ihr an Eure URL \/squirrelmail mit anf\u00fcgt der Webmailer aufgerufen, da er \u00fcber die Alias dann in das Verzeichnis \/usr\/share\/squirrelmail geroutet werdet.<\/p>\n<p>Konfiguriert nun Euren Webmailer mit<\/p>\n<p>squirrelmail-configure<br \/>\nIhr seht nun das Hauptmen\u00fc:<\/p>\n<p>SquirrelMail Configuration : Read: config_default.php (1.4.0)<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nMain Menu &#8212;<br \/>\n1.  Organization Preferences<br \/>\n2.  Server Settings<br \/>\n3.  Folder Defaults<br \/>\n4.  General Options<br \/>\n5.  Themes<br \/>\n6.  Address Books<br \/>\n7.  Message of the Day (MOTD)<br \/>\n8.  Plugins<br \/>\n9.  Database<br \/>\n10. Languages<\/p>\n<p>D.  Set pre-defined settings for specific IMAP servers<\/p>\n<p>C   Turn color on<br \/>\nS   Save data<br \/>\nQ   Quit<\/p>\n<p>Command >><br \/>\nW\u00e4hlt hier D aus. Danach seht Ihr folgendes Men\u00fc:<\/p>\n<p>Please select your IMAP server:<br \/>\n    bincimap    = Binc IMAP server<br \/>\n    courier     = Courier IMAP server<br \/>\n    cyrus       = Cyrus IMAP server<br \/>\n    dovecot     = Dovecot Secure IMAP server<br \/>\n    exchange    = Microsoft Exchange IMAP server<br \/>\n    hmailserver = hMailServer<br \/>\n    macosx      = Mac OS X Mailserver<br \/>\n    mercury32   = Mercury\/32<br \/>\n    uw          = University of Washington&#8217;s IMAP server<\/p>\n<p>    quit        = Do not change anything<br \/>\nCommand >><br \/>\nWir nehmen hier nat\u00fcrlich den dovecot.<\/p>\n<p>Danach m\u00fcssen die Serversettings eingestellt werden (Im Hauptmen\u00fc Punkt 2):<\/p>\n<p>Server Settings<\/p>\n<p>General<br \/>\n&#8212;&#8212;-<br \/>\n1.  Domain                 : example.com<br \/>\n2.  Invert Time            : false<br \/>\n3.  Sendmail or SMTP       : SMTP<\/p>\n<p>A.  Update IMAP Settings   : localhost:143 (dovecot)<br \/>\nB.  Update SMTP Settings   : localhost:25<\/p>\n<p>R   Return to Main Menu<br \/>\nC   Turn color on<br \/>\nS   Save data<br \/>\nQ   Quit<\/p>\n<p>Command >><br \/>\nStellt hier unter 1.) Euren Domain Namen ein. Dann geht in den Unterpunkt A.):<\/p>\n<p>IMAP Settings<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n4.  IMAP Server            : localhost<br \/>\n5.  IMAP Port              : 143<br \/>\n6.  Authentication type    : login<br \/>\n7.  Secure IMAP (TLS)      : false<br \/>\n8.  Server software        : dovecot<br \/>\n9.  Delimiter              : detect<\/p>\n<p>B.  Update SMTP Settings   : localhost:25<br \/>\nH.  Hide IMAP Server Settings<\/p>\n<p>R   Return to Main Menu<br \/>\nC   Turn color on<br \/>\nS   Save data<br \/>\nQ   Quit<\/p>\n<p>Command >><br \/>\nHier m\u00fcssen die Settings entsprechend angepasst werden. Euer domain Name wo der Imap zu finden ist (localhost normalerweise). Zudem den Port auf 993 f\u00fcr SSL umstellen und Secure Imap auf True umstellen.<\/p>\n<p>Im Unterpunkt 10 des Hauptmen\u00fcs k\u00f6nnt Ihr noch das en_US<\/p>\n<p>Language preferences<br \/>\n1.  Default Language       : en_US<br \/>\n2.  Default Charset        : iso-8859-1<br \/>\n3.  Enable lossy encoding  : false<\/p>\n<p>R   Return to Main Menu<br \/>\nC   Turn color on<br \/>\nS   Save data<br \/>\nQ   Quit<\/p>\n<p>Command >><br \/>\n&#8230; in de_DE umstellen. Speichert die \u00c4nderungen mit S ab und beendet das Konfigurationsprogramm mit Q .<\/p>\n<p>Falls auf Lenny der Squirrel nicht auf Deutsch geht, obwohl Ihr das de_DE eingestellt habt, dann fehlt Euch noch &#8222;de_DE iso-8859-1&#8220; in den locales, da bei einer deutschen Installation standardm\u00e4\u00dfig nur de_DE UTF-8 ausgew\u00e4hlt wurde. Also f\u00fchrt<\/p>\n<p>dpkg-reconfigure locales<br \/>\naus und f\u00fcgt bei den Sprachen de_DE iso 8859-1 mit hinzu. Den Rest lasst ihr einfach wie voreingestellt.<\/p>\n<p>Danach startet den Apachen neu:<\/p>\n<p>\/etc\/init.d\/apache2 restart<br \/>\nRuft nun Euren Webmailer \u00fcber<\/p>\n<p>http:\/\/EURE_URL\/squirrelmail<br \/>\nauf. <\/p>\n<p>Jetzt wollen wir nur noch eine Verbindung \u00fcber https zulassen. Dazu m\u00fcssen wir dem Apache https als Erweiterung beibringen. Wechselt dazu in Euer Root Home:<\/p>\n<p>cd \/root<br \/>\nDanach legen wir unser Serverzertifikat an:<\/p>\n<p>openssl genrsa -out server.key 4096<br \/>\nopenssl req -new -key server.key -out server.csr<br \/>\nJetzt werdet Ihr einige Angaben abgefragt: <\/p>\n<p>Country Name (L\u00e4ndercode): = DE<br \/>\nState or Province Name (Bundesland): = zB Bayern<br \/>\nLocality Name, eg. City (Stadt): = zB Nuernberg<br \/>\nOrganization Name (Firmenname): = hier irgendwas eingeben wie privat, zuhause etc.<br \/>\nOrganizational Unit Name (Abteilung) = bleibt leer<br \/>\nCommon Name, eg. YOUR Name: = Euer Servername<br \/>\nEmail Adress: = eine E-Mail Adresse<br \/>\nA challenge password: = bleibt leer<br \/>\nAn optional company name: = bleibt leer<\/p>\n<p>Jetzt generieren wir das Zertifikat. Ich mache das gleich mal f\u00fcr 10 Jahre, dann ist Ruhe:<\/p>\n<p>openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt<br \/>\nNoch ein paar Rechte festlegen:<\/p>\n<p>chmod 400 server.key<br \/>\nJetzt m\u00fcssen wir noch ein paar \u00c4nderungen in einigen Apache Konfigurationsdateien vornehmen:<\/p>\n<p>nano \/etc\/apache2\/sites-enabled\/000-default<br \/>\nAm Ende der Konfigurationsdatei erg\u00e4nzt folgende neue Sektion:<\/p>\n<p><VirtualHost *:443><br \/>\n     DocumentRoot \/var\/www<br \/>\n     ServerName EUER_SERVERNAME<br \/>\n     SSLEngine on<br \/>\n     SSLCertificateFile \/root\/server.crt<br \/>\n     SSLCertificateKeyFile \/root\/server.key<\/p>\n<p>   Alias \/squirrelmail \/usr\/share\/squirrelmail<br \/>\n      <Directory \/usr\/share\/squirrelmail><br \/>\n       Options Indexes<br \/>\n       AllowOverride All<br \/>\n       DirectoryIndex index.php<br \/>\n       Order allow,deny<br \/>\n       allow from all<br \/>\n    <\/Directory><\/p>\n<p><\/VirtualHost><br \/>\nEUER_SERVERNAME muss noch entsprechend eingetragen werden. Speichert die \u00c4nderung und editiert die ports.conf<\/p>\n<p>nano \/etc\/apache2\/ports.conf<br \/>\nund f\u00fcgt ganz zum Schluss folgende Zeile ein: <\/p>\n<p>NameVirtualHost *:443 <\/p>\n<p>Nun aktivieren wir das SSL Modul:<\/p>\n<p>a2enmod ssl<br \/>\nDer Apache muss jetzt neu gestartet werden:<\/p>\n<p>\/etc\/init.d\/apache2 restart<br \/>\nBeachtet, dass das nat\u00fcrlich kein gekauftes Zertifikat ist. Euer Browser wird hier eine entsprechende Warnmeldung bringen. Aber Ihr wisst damit, warum diese Meldung kommt.<\/p>\n<p>Wenn Ihr generell auf https umleiten wollt, auch wenn die Adresse \u00fcber http abgerufen wird, m\u00fcsst Ihr im Apache das Modul Rewrite aktivieren:<\/p>\n<p>a2enmod rewrite<br \/>\n\/etc\/init.d\/apache2 restart<br \/>\nLegt dann eine .htaccess Datei in \/usr\/share\/squirrelmail an:<\/p>\n<p>nano \/usr\/share\/squirrelmail\/.htaccess<br \/>\nF\u00fcllt diese mit folgenden Zeilen:<\/p>\n<p>Options +FollowSymlinks<br \/>\nRewriteEngine On<br \/>\nRewriteCond %{HTTPS} off<br \/>\nRewriteRule (.*) https:\/\/%{HTTP_HOST}%{REQUEST_URI} [R=301,L]<br \/>\nNun werden s\u00e4mtliche Anfragen auf das verschl\u00fcsselte https Protokoll umgeleitet. <\/p>\n<p>Zu guter Letzt wollen wir generell verhindern, dass man von au\u00dfen einfach einen Zugriff auf das Login des Squirrelmail bekommt. Wir blockieren das deshalb mit .htaccess und aktivieren eine dar\u00fcberliegende Passwortabfrage. <\/p>\n<p>F\u00fcgt deshalb in der .htaccess noch folgendes ein:<\/p>\n<p>AuthType Basic<br \/>\nAuthName squirrelmail<br \/>\nAuthUserFile \/usr\/share\/squirrelmail\/.htpasswd<br \/>\nrequire valid-user<br \/>\nIhr seht, dass der Pfad zu dem dann erzeugtem Passwort im Dokumentenroot der Webanwendung liegt. Um das einwenig sicher zu machen, k\u00f6nnt Ihr durchaus dieses in ein anderes Verzeichnis legen, das au\u00dferhalb des Dokumentenroot liegt. <\/p>\n<p>Das Passwort legt Ihr dann in diesem Verzeichnis (mittels cd dorthin wechseln!) mit einem<\/p>\n<p>htpasswd -c .htpasswd username<br \/>\nan. Beim Befehl den Usernamen entsprechend Euren Vorstellungen \u00e4ndern! Jetzt werdet Ihr zus\u00e4tzlich nach einem Passwort gefragt. <\/p>\n<p>E-Mails via Exim4 verschicken<br \/>\nJetzt wollen wir noch E-Mails \u00fcber den Server versenden k\u00f6nnen. 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\u00fcher oder sp\u00e4ter Euer Provider auf den Plan treten \ud83d\ude09<\/p>\n<p>Installiert den Exim4 mit einem<\/p>\n<p>apt-get install exim4<br \/>\nUm einen Smarthost einzurichten startet die Konfiguration mit einem<\/p>\n<p>dpkg-reconfigure exim4-config<br \/>\nFolgende Konfigurationsschritte:<br \/>\n1.) Versand \u00fcber Sendezentrale (Smarthost); Empfang mit SMTP oder Fetchmail<\/p>\n<p>2.) Email Name des Systems: Lasst einfach den voreingestellten Dom\u00e4nen Name stehen<\/p>\n<p>3.) IP-Adressen, dan denen eingehende SMTP-Verbindungen erwartet werden: 127.0.0.1<\/p>\n<p>4.) Weitere Ziele, f\u00fcr die die E-Mails angenommen werden sollen: Auch hier den default Dom\u00e4n Namen stehen lassen<\/p>\n<p>5.) Rechner f\u00fcr die die E-Mails weitergeleitet werden sollen (Relay): Leer lassen, wenn nicht ein weiterer Rechner DIESEN Rechner als Smarthost verwendet. Also normal leer lassen.<\/p>\n<p>6.) IP Adresse oder Rechnername der Sendezentrale f\u00fcr ausgehende E-Mails: Hier und genau hier kommt die IP Adresse oder der Rechnername (mail\/smtp.xyz) Eures ISP rein! <\/p>\n<p>7.) Lokalen E-Mail Namen in ausgehende Mails verbergen: Ja<\/p>\n<p>8.) DNS Anfrage minimieren: Ja<\/p>\n<p>9.) Versandart bei lokaler Mailzustellung: Mbox Format in \/var\/mail\/<\/p>\n<p>10.) Einstellungen auf kleine Dateien aufteilen: Nein<\/p>\n<p>11.) 11.) Empf\u00e4nger an die Benutzer &#8222;root&#8220; und &#8222;postmaster&#8220;: leer lassen<\/p>\n<p>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<\/p>\n<p>Hier das Passwort wie folgt hinterlegen:<\/p>\n<p>IP_des_Mailserver_oder_Name:LOGIN:PASSWORT<br \/>\nDie Datei sollte nur lesbar f\u00fcr root sein.<\/p>\n<p>Startet danach den MTA neu:<\/p>\n<p>\/etc\/init.d\/exim4 restart<br \/>\nSolltet 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\u00fcgung steht. Entfernt zun\u00e4chst die paniclog:<\/p>\n<p>rm \/var\/log\/exim4\/paniclog<br \/>\nLasst nochmal die Konfiguration durchlaufen:<\/p>\n<p>dpkg-reconfigure exim4-config<br \/>\nBeim Punkt 3 IP-Adressen, dan denen eingehende SMTP-Verbindungen erwartet werden entfernt hinten das ; ::1 . \u00dcbernehmt den Rest und startet exim4 wieder neu:<\/p>\n<p>\/etc\/init.d\/exim4 restart<br \/>\nJetzt k\u00f6nnt Ihr auch Mails verschicken. <\/p>\n<p>Viren mit ClamAV herausfiltern<br \/>\nViren 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\u00f6menden Mails auf Viren zu pr\u00fcfen. Viren k\u00f6nnen als normale Datei anh\u00e4ngen oder als gepackte Versionen. Deswegen muss unser Server auch in der Lage sein, gepackte Dateien zu pr\u00fcfen. Wir ben\u00f6tigen dazu einen ganzen B\u00fcndel an neuen Files. Dazu m\u00fcssen wir erstmal unsere sources.list erweitern:<\/p>\n<p>nano \/etc\/apt\/sources.list<br \/>\nBei unseren Standard Repositories setzen wir dann noch die Source Reopsitiries dazu:<\/p>\n<p>deb http:\/\/ftp.de.debian.org\/debian\/ wheezy main contrib non-free<br \/>\ndeb-src http:\/\/ftp.de.debian.org\/debian\/ wheezy main contrib non-free<\/p>\n<p>deb http:\/\/security.debian.org\/ wheezy\/updates main contrib non-free<br \/>\ndeb-src http:\/\/security.debian.org\/ wheezy\/updates main contrib non-free<br \/>\nWir frischen nun die Repositories auf:<\/p>\n<p>apt-get update<br \/>\nJetzt m\u00fcssen wir uns insgesamt 3 Pakete bauen:<\/p>\n<p>unrar-nonfree<br \/>\nlha<br \/>\nlibclamunrar6<\/p>\n<p>Falls noch nicht geschehen m\u00fcssen noch die build-essentials installiert werden:<\/p>\n<p>apt-get install build-essential<br \/>\nDanach legen wir uns ein Arbeitsverzeichnis an und wechslen dorthin:<\/p>\n<p>mkdir work<br \/>\ncd work<br \/>\nWir beginnen mit unrar:<\/p>\n<p>mkdir unrar-nonfree<br \/>\ncd unrar-nonfree<br \/>\napt-get build-dep unrar-nonfree<br \/>\napt-get source -b unrar-nonfree<br \/>\nDas fertiggestellte Paket seht Ihr als *.deb Paket mit einem ls -la. Installiert das Paket entsprechend seiner Versionsnummer (ggf. anpassen):<\/p>\n<p>dpkg -i unrar_4.1.4-1.deb<br \/>\ncd ..<br \/>\nDanach das Paket lha:<\/p>\n<p>mkdir lha<br \/>\ncd lha<br \/>\napt-get build-dep lha<br \/>\napt-get source -b lha<br \/>\nDas fertiggestellte Paket seht Ihr als *.deb Paket mit einem ls -la. Installiert das Paket entsprechend seiner Versionsnummer (ggf. anpassen):<\/p>\n<p>dpkg -i lha_.1.14i-10.deb<br \/>\ncd ..<br \/>\nWir bleiben im work Verzeichnis und installieren die folgenden Pakete:<\/p>\n<p>apt-get install clamav clamav-base clamav-daemon clamav-freshclam unzip<br \/>\nFehlermeldungen wegen einer nicht aktuellen Virendatenbank ignorieren wir zun\u00e4chst.<br \/>\nDanach bauen wir uns noch den libclamunrar6:<\/p>\n<p>mkdir libclamunrar6<br \/>\ncd libclamunrar6<br \/>\napt-get build-dep libclamunrar6<br \/>\napt-get source -b libclamunrar6<br \/>\nDas fertiggestellte Paket seht Ihr als *.deb Paket mit einem ls -la. Installiert das Paket entsprechend seiner Versionsnummer (ggf. anpassen):<\/p>\n<p>dpkg -i libclamunrar6_0.98.5.deb<br \/>\nJetzt aktualisieren wir den ClamAV:<\/p>\n<p>freshclam<br \/>\nUnd nun starten wir den ClamAV durch:<\/p>\n<p>\/etc\/init.d\/clamav-daemon start<\/p>\n<p>Variante A) getmail<\/p>\n<p>F\u00fcgt nun in jeder getmail Konfig Eures getmail Users noch folgenden Abschnitt mit ein:<\/p>\n<p>[filter-virus]<br \/>\ntype = Filter_classifier<br \/>\npath = \/usr\/bin\/clamdscan<br \/>\narguments = (&#8222;&#8211;stdout&#8220;, &#8222;&#8211;no-summary&#8220;, &#8222;-&#8222;)<br \/>\nexitcodes_drop = (1, )<br \/>\nDas filtert nun nach dem ClamAV erkannte Virenmails heraus. Viren die in gepackten Dateien enthalten sind werden auch nach aktuellen Stand der Datenbank aussortiert. <\/p>\n<p>Wenn Ihr wollt k\u00f6nnt Ihr Euch von heise Security aus Testviren (harmlos!) zusenden lassen. Diese k\u00f6nnt Ihr unter folgender URL anfordern: http:\/\/www.heise.de\/security\/dienste&#8230;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\u00f6scht) wird. Ob dies tats\u00e4chlich 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.<\/p>\n<p>Variante B) procmail<\/p>\n<p>Eine meiner Meinung nach etwas sch\u00f6nere L\u00f6sung gibt es \u00fcber 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\u00f6scht und man hat die Mail nochmal vor Augen. Der User sollte diese dann tunlichst l\u00f6schen, wenn er diese vielleicht noch mit einem Scanner auf seinem Rechner gepr\u00fcft hat.<\/p>\n<p>Als erstes installieren wir den clamassassin aus den Repositories:<\/p>\n<p>apt-get install clamassassin<br \/>\nDieser arbeitet out of the box allerdings anscheinend nur mit dem clamscan und nicht \u00fcber den deutlich schnelleren Weg des clamdscan Deamons. Von daher m\u00fcssen 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:<\/p>\n<p>cd \/<br \/>\nmkdir work<br \/>\napt-get install build-essential<br \/>\ncd \/work<br \/>\nJetzt laden wir uns die Quellen herunter<\/p>\n<p>apt-get source clamassassin<br \/>\nund wechseln in das Hauptverzeichnis des Quellcodes:<\/p>\n<p>cd clamassassin-1.2.4<br \/>\nJetzt muss der \u00dcbersetzungsvorgang vorbereitet werden. Hierzu folgendes eingeben<\/p>\n<p>.\/configure &#8211;bindir=\/usr\/bin &#8211;enable-clamdscan &#8211;enable-subject-rewrite=***INFECTED***<br \/>\nDamit haben wir Folgendes geregelt:<\/p>\n<p>-Die \u00fcbersetzte Datei wird nach \/usr\/bin installiert<br \/>\n-clamassassin wird clamdscan verwenden, wenn dieser l\u00e4uft<br \/>\n-Die Mail\u00fcberschrift wird mit ***INFECTED*** markiert<\/p>\n<p>Jetzt installieren wir das Script:<\/p>\n<p>make install<br \/>\nDas sollte ohne Fehler durchlaufen. <\/p>\n<p>In der ~\/.procmailrc schreiben wir dann als erste Regeln (das muss ja auf alle eingehenden Mails angewandt werden) folgende:<\/p>\n<p>0 fw<br \/>\n| \/usr\/bin\/clamassassin<\/p>\n<p>:0:<br \/>\n* ^X-Virus-Status: Yes<br \/>\n.virus\/<br \/>\nDanach werden alle Mails, in denen ein Virus entdeckt wurde, in den Ordner virus in Eurer Mailbox erschoben. Pr\u00fcft nach, ob der Clamassassin auch tats\u00e4chlich filtert, indem Ihr Euch eine Testmail schickt. Im Header dieser Mail solltet Ihr dann folgende Zeile relativ weit unten finden:<br \/>\nX-Virus-Checker-Version: clamassassin 1.2.4 with clamdscan&#8230; <\/p>\n<p>virentest<br \/>\nEine entdeckte Virentestmail <\/p>\n<p>Spam tilgen mit Spamassassin<br \/>\nJetzt widmen wir uns der schlimmsten Mailplage im Netz, dem Spam. Auch hier gibt es einige M\u00f6glichkeiten, 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\u00f6glichkeit, den Ordner weiterhin auf &#8222;Falsepositives&#8220; zu untersuchen und l\u00f6scht einfach den Rest raus. Hier sind zumindest die Mails vorsortiert und man geht dabei nicht das Risiko ein, dass vielleicht irgendwo noch erw\u00fcnschte Mails einen generellen L\u00f6schvorgang zum Opfer fallen.<\/p>\n<p>Zuerst installieren wir den Spamassassin:<\/p>\n<p>apt-get install spamassassin<br \/>\nDies liefert uns noch wietere zahlreiche Pakete haupts\u00e4chlich aus dem Bereich &#8222;perl&#8220;. Wenn die Pakete installiert sind, dann bauen wir erstmal eine einfache Grundkonfiguration auf, die nat\u00fcrlich noch durch viele weitere ausgekl\u00fcgelte Filterma\u00dfnahmen erweitert werden k\u00f6nnen. Wir editieren zuerst einmal die Datei<\/p>\n<p>nano \/etc\/spamassassin\/local.cf<br \/>\nHier bitte bei folgende Zeilen das &#8222;#&#8220; entfernen um diese zu aktivieren:<\/p>\n<p>rewrite_header Subject *****SPAM*****<\/p>\n<p>required_score 5.0<\/p>\n<p>use_bayes 1<\/p>\n<p>bayes_auto_learn 1<\/p>\n<p>bayes_ignore_header X-Bogosity<br \/>\nbayes_ignore_header X-Spam-Flag<br \/>\nbayes_ignore_header X-Spam-Status<br \/>\nUnter die drei bayes_ignore Zeilen schreibt dann bitte noch folgende Zeilen:<\/p>\n<p>bayes_ignore_header X-getmail-filter-classifier<br \/>\nDas verhindert, dass Headererweiterungen des Getmail irgendwann als Spam ausgewertet und gekennzeichnet werden.<\/p>\n<p>Jetzt editiert bitte die Datei \/etc\/default\/spamassassin<\/p>\n<p>Dort stellt den Eintrag<br \/>\nENABLED=0<br \/>\nauf<\/p>\n<p>ENABLED=1<br \/>\nDies stellt sicher, dass der Filter beim Booten des Servers automatisch gestartet wird. Da dieser eben nach der Installation nicht angefahren wird k\u00f6nnen wir den Spamfilter auch manuell scharf machen ohne erst daf\u00fcr unseren Server neu zu starten:<\/p>\n<p>\/etc\/init.d\/spamassassin start<br \/>\nDamit das alles \u00fcber den Getmail l\u00e4uft, geht dann noch in Eure jeweilige Getmail Konfiguration unter .getmail und f\u00fcgt zum Schluss der Konfigurationsdatei folgende Filterregel ein:<\/p>\n<p>[filter]<br \/>\ntype = Filter_external<br \/>\npath = \/usr\/bin\/spamc<br \/>\n\u00dcber Procmail lassen wir nun noch nach der Headererweiterung *****SPAM***** suchen. Dazu f\u00fcgen wir folgende Regel (am besten als erste Regel unterhalb der Virenregeln) in der ~\/.procmailrc ein:<\/p>\n<p>:0<br \/>\n* ^Subject:.******SPAM*****<br \/>\n.Junk\/<br \/>\nDas sollte nun alle vom Spamassassin mit SPAM gekennzeichnete Mails in den Junk &#8211; Ordner schieben.<\/p>\n<p>Hinweis: Da der Procmail als Platzhalter ein Sternchen * verwendet, ist es auch ratsam, die Subject Markierung auf ein anderes Symbol zu setzen, beispielsweise +++++SPAM+++++ . \u00c4ndert dies dann in der \/etc\/spamassassin\/local.cf ab und in der .procmailrc. Danach nat\u00fcrlich den Spamassassin neu starten:<\/p>\n<p>\/etc\/init.d\/spamassassin restart<br \/>\nWoran sehe ich nun, ob der Spamfilter l\u00e4uft? Hierzu schickt Euch einfach mal eine Testmail. Als Betreff dann gleich die entsprechende \u00c4nderung, die eben der Spamassassin einf\u00fcgen w\u00fcrdee, wenn Spam erkannt werden w\u00fcrde (also beispielsweise +++++SPAM+++++). Das zeigt uns dann erstmal, ob der Procmail dann auch sauber filtern w\u00fcrde 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\u00f6nnen:<\/p>\n<p>X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on myserver<br \/>\nX-Spam-Level: *<br \/>\nX-Spam-Status: No, score=1.5 required=5.0 tests=AWL,SPF_FAIL autolearn=no<br \/>\n\tversion=3.2.5<br \/>\nHier seht Ihr, dass der Spamassassin aktiv war und seinen Score ( 1.5 ) eingetragen hat. Daneben steht der ben\u00f6tigte Score, damit die Mail als Spam markiert wird. Ihr k\u00f6nnt hier jetzt nur abwarten und zusehen, ob die Geschichte auf Dauer Euch in der Form gen\u00fcgt, oder Ihr noch ein paar &#8222;Goodies&#8220; einbauen wollt. <\/p>\n<p>Spamassassin pr\u00fcfen<br \/>\nDer Dienst sollte regelm\u00e4\u00dfig daraufhin gepr\u00fcft werden, ob er noch am Laufen ist. Wenn ein Mailserver rund um die Uhr aktiv ist, w\u00e4re es schlecht, wenn der Scanner im Hintergrund sich verabschieden sollte. Dazu bauen wir uns unter \/usr\/local\/bin ein eigenes Script, das den Dienst spamd pr\u00fcft, zur Not neu startet und dann eine E-Mail verschickt. Das Script sieht dann so aus:<\/p>\n<p>nano \/usr\/local\/bin\/spamdcheck<br \/>\nF\u00fcllt den Inhalt wie folgt:<\/p>\n<p>#!\/bin\/bash<\/p>\n<p>#Spamd checkup for being running<br \/>\n#Skript by Gargi 2015<\/p>\n<p>top -b -n 1 | grep \/usr\/sbin\/spamd<br \/>\nspamd=$?<br \/>\nif [ $spamd = 1 ]; then<br \/>\n  service spamassassin restart<br \/>\n  echo &#8222;Spamd restarted cause it was not found active!&#8220; > \/var\/log\/spamdcheck.log<br \/>\n  echo &#8222;&#8220; >> \/var\/log\/spamdcheck.log<br \/>\n  \/etc\/init.d\/spamassassin status >> \/var\/log\/spamdcheck.log<br \/>\n  mail -s &#8222;[System] Spamd recovered&#8220;  EURE @ MAILADRESSE < \/var\/log\/spamdcheck.log\n  exit 1\nelse\n  echo \"Spamd alive, nothing to be done\"\nfi\nSpeichert die \u00c4nderung und macht das Skript ausf\u00fchrbar:\n\nchmod +x \/usr\/local\/bin\/spamdcheck\nDies lasst Ihr \u00fcber den cron alle 5 Minuten beispielsweise laufen:\n\ncrontab -e\n # Spamdcheck every 5 minutes\n*\/5  * * * *  \/usr\/local\/bin\/spamdcheck > \/dev\/null<\/p>\n<p>Spamassassin regelm\u00e4\u00dfig aktualisieren<br \/>\nUm den Spamassassin regelm\u00e4\u00dfig zu aktualisieren richten wir uns ein kleines Skript ein:<\/p>\n<p>nano \/usr\/local\/bin\/sa-updater<br \/>\nDies f\u00fcllt mit folgenden Inhalt:<\/p>\n<p>#!\/bin\/bash<\/p>\n<p>\/usr\/bin\/sa-update<br \/>\ndate > \/var\/log\/sa-update.log<br \/>\necho &#8222;updated spamassassin&#8220; >> \/var\/log\/sa-update.log<br \/>\nDanach macht das Skript ausf\u00fchrbar:<\/p>\n<p>chmod +x \/usr\/local\/bin\/sa-updater<br \/>\nDies lasst Ihr \u00fcber den cron ein mal am Tag beispielsweise laufen:<\/p>\n<p>crontab -e<br \/>\n # Spamassassin Update 2 o clock in the morning<br \/>\n1  2  * * *  \/usr\/local\/bin\/sa-updater > \/dev\/null<\/p>\n<p>Scripterweiterungen<br \/>\nAn der Stelle werde ich noch ein paar Konfigurationserweiterungen f\u00fcr Spamassassin, procmail und getmail bringen.<\/p>\n<p>a) Razor und Pyzor anwenden<br \/>\nEine Erweiterung f\u00fcr 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 \/>\nStellt zun\u00e4chst einmal fest, dass die UDP Ports 24441 (in + out f\u00fcr pyzor) und TCP Port 2703 (out f\u00fcr razor) offen sind und passt gegebenfalls Eure Firewall an.<\/p>\n<p>Jetzt installiert die beiden Pakete;<\/p>\n<p>apt-get install razor pyzor<br \/>\nDie Spamassassin Konfiguration wird automatisch angepasst. F\u00fchrt nun noch folgende Befehle aus, um den razor zu aktivieren:<\/p>\n<p>razor-admin -d -home=\/etc\/razor -create<br \/>\nrazor-admin -d -home=\/etc\/razor -register<br \/>\nTestet noch, ob pyzor nach au\u00dfen funken kann:<\/p>\n<p>pyzor ping<br \/>\npyzor &#8211;homedir \/etc\/spamassassin discover<br \/>\nEin public.pyzor.org:24441 (200, &#8218;OK&#8216;) deutet darauf hin, dass die Kommunikation funktioniert. \u00c4ndert dann die \/etc\/spamassassin\/local.cf und f\u00fcgt unter den Bayes Bereich noch folgendes mit ein:<\/p>\n<p>use_pyzor 1<br \/>\npyzor_path \/usr\/bin\/pyzor<\/p>\n<p>use_razor2 1<br \/>\nrazor_config \/etc\/razor\/razor-agent.conf<br \/>\nStartet Euren Spamassassin neu:<\/p>\n<p>\/etc\/init.d\/spamassassin restart<br \/>\nSchaut Euch dann die gefilterten Spam Mails an. Wenn alles klappt, dann findet Ihr Pyzor und Razor Punkte entsprechend gelistet.<br \/>\nz.B. Razor:<\/p>\n<p> 2.4 RAZOR2_CF_RANGE_E8_51_100 Razor2 gives engine 8 confidence level<br \/>\n                            above 50%<br \/>\n                            [cf: 100]<br \/>\n 0.4 RAZOR2_CF_RANGE_51_100 Razor2 gives confidence level above 50%<br \/>\n                            [cf: 100]<br \/>\n 1.7 RAZOR2_CHECK           Listed in Razor2 (http:\/\/razor.sf.net\/)<br \/>\nz.B. Pyzor:<\/p>\n<p>2.0 PYZOR_CHECK            Listed in Pyzor (http:\/\/pyzor.sf.net\/)<\/p>\n<p>b) Mails mit speziellen Anh\u00e4ngen filtern<br \/>\nManche Anh\u00e4nge 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\u00fcr die .procmailrc w\u00fcrde so aussehen:<\/p>\n<p>:0 B:<br \/>\n* name=.*\\.(vbs\\&#8220;|wsf\\&#8220;|exe\\&#8220;|vbe\\&#8220;|src\\&#8220;|rar\\&#8220;|dll\\*)<br \/>\n.dangerous\/<br \/>\nDies k\u00f6nnt Ihr mit entsprechenden Erweiterungen noch versehen. Die Regel setzt am besten recht weit nach oben unter die Spamregel. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quelle Installation von Getmail und die Konfiguration Wir installieren zuerst getmail mit einem apt-get install getmail4 Wir legen nun eine neuen User getmail an, der f\u00fcr uns in Zukunft die Sache erledigen wird: adduser getmail Vergebt hier das Passwort. Da das kein Standarduser sein soll und falls Ihr einen ftp am Laufen habt, dann schlie\u00dft &hellip; <a href=\"https:\/\/wordpress.steffmaster.mooo.com\/?p=124\" class=\"more-link\"><span class=\"screen-reader-text\">Mailserver auf Debian mit Imap, Smarthost und Filter<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-124","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/wordpress.steffmaster.mooo.com\/index.php?rest_route=\/wp\/v2\/posts\/124","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.steffmaster.mooo.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.steffmaster.mooo.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.steffmaster.mooo.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.steffmaster.mooo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=124"}],"version-history":[{"count":3,"href":"https:\/\/wordpress.steffmaster.mooo.com\/index.php?rest_route=\/wp\/v2\/posts\/124\/revisions"}],"predecessor-version":[{"id":493,"href":"https:\/\/wordpress.steffmaster.mooo.com\/index.php?rest_route=\/wp\/v2\/posts\/124\/revisions\/493"}],"wp:attachment":[{"href":"https:\/\/wordpress.steffmaster.mooo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=124"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.steffmaster.mooo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=124"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.steffmaster.mooo.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=124"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}