Raspberry PI als Mail-Gateway inkl. Antispam und Antivirus

Heute ein kleiner „Raspberry PI“ Blog. Dieses mal geht es darum, den „Raspberry PI“ als Incoming/Outgoing Mailgateway zu Exchange zu betreiben. Da ich den Exchange Server nicht direkt in das Internet stellen möchte, habe ich mir gedacht, warum den PI nicht mit Postfix, SpamAsassin, Amavis und ClamAV versorgen und der PI soll dann die Funktion dafür übernehmen. 🙂 Dieser Blog ist für eine reine Labor Umgebung erstellt worden und sehr weit entfernt vom Produktiven, da die Themen Verfügbarkeit und Security nicht betrachtet worden sind, dieses würde den Umfang des Blogs sprängen. Der Blog soll nur einen groben überblick geben.

 Voraussetzungen

  1. 1 x „Raspberry Pi 2“ installiert mit Debian und fertig eingebunden im Netzwerk
  2. Der Raspberry Pi ist im DNS eingebunden
  3. Der Raspberry Pi bezieht seine Zeit via NTP
  4. Zugriff via SSH ist erforderlich
  5. Der Raspberry Pi wurde auf die Debian Version 7.8 aktualisiert
  6. Der Raspberry Pi befindet sich in der DMZ und hat einen Zugriff zum Internet
  7. Feste IP oder DynDNS
  8. Ihr MX Record zeigt später auf die Feste IP oder den DynDNS Namen

Bevor wir anfangen, möchte ich drauf hinweisen, dass die Anleitung nicht für einen Produktivbetrieb genutzt werden sollte. Der Einsatz erfolgt auf eigene Gefahr, ich übernehme keine Haftung für Schäden!

Installation Postfix

1. Melden Sie sich mit „root“ an und installieren Sie Postfix

apt-get install postfix

2. Bestätigen Sie den nachfolgenden Screenshot mit „Ok“

installation_postfix_001

3. Selektieren Sie „Internet-Site“, da der Mailserver direkt aus dem Internet erreichbar sein soll. Klicken Sie danach auf „OK“

installation_postfix_002

4. Geben Sie den Name ihre Domain, an in meinen Fall „medic-daniel.de“.

installation_postfix_003

Die Installation des Postfix ist nun abgeschlossen, nun geht es an die Konfiguration.

Konfiguration Postfix

Die Funktion ist nach Abarbeiten des Blogs gegeben, aber ich gehe hier nicht ins Detail was die Postfix Konfiguration angeht, das würde den Rahmen des Blogs sprängen.

1. Im ersten Schritt schalte ich das IPv6 Protokoll ab, indem ich den Postfix fest das IPv4 Protokoll zuweise. Das erfolgt mit dem nachfolgenden Befehl.

postconf -e 'inet_protocols = ipv4'

2. Im nächsten Schritt muss dem Postfix der interne Mailserver mitgeteilt werden, und für welche Domain er E-mails annehmen soll.  In meinem Fall handelt es sich um eine Microsoft Exchange Umgebung und Mails für die Domain „medic-daniel.de“ werden an den Microsoft Exchange Server weiter geleitet.

############################################
# Erstellen der Datei "transport"
############################################
touch /etc/postfix/Transport

############################################
# Editieren Sie die Datei und fügen 
# nachfolgende Zeile hinzu inkl. Klammern!!
############################################ 
medic-daniel.de smtp:[meinExchangeServer.meineDomain.local]:25

3. Überprüfen Sie, ob der Eintrag vorhanden ist. Sollte dieser nicht vorhanden sein, dann fügen Sie die nachfolgende Zeile in der Datei „/etc/postfix/main.cf“ ein.

#######################################
# Wenn nicht vorhanden der
# Datei /etc/postfix/main.cf den
# Eintrag hinzufügen
#######################################
transport_maps = hash:/etc/postfix/Transport

4. Weisen Sie nun den Postfix an, die „transport“ Datei zu nutzen, mit dem nachfolgenden Befehl.

#################################################
# Postfix anweisen die tranport Datei zu nutzen
#################################################
postmap /etc/postfix/Transport

5. Fügen Sie der Datei „/etc/postfix/master.cf „ folgendes hinzu

scan    unix        -       -       n       -       2       smtp
        -o smtp_data_done_timeout=1200
        -o smtp_send_xforward_command=yes
        -o disable_dns_lookups=yes

6. Starten Sie den Postfix Service neu.

service postfix restart

Installation SpamAssassin, ClamAV und AmaVis

1. Installieren Sie SpamAssasin, ClamAV und AmaVis

##################
# Step 1
##################
apt-get install clamav clamav-daemon amavisd-new spamassassin

##################
# Step 2
##################
apt-get install arj bzip2 cabextract cpio file gzip nomarch pax unzip zoo zip zoo

2. Editieren Sie die Datei „/etc/amavis/conf.d/15-content_filter_mode“ und entfernen das „#“ Zeichen vor den nachfolgenden Zeilen.

####################
# Entferen des "#" 
# vor den Zeilen
####################

@bypass_virus_checks_maps = (
   \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);

@bypass_spam_checks_maps = (
   \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);

3. Starten Sie den ClamAV und AmaVis neu

service clamav-daemon restart

service amavis restart

4. Fügen Sie am Ende der Datei „/etc/postfix/master.cf“ folgendes hinzu.

smtp-amavis  unix    -    -    n    -    2    smtp
 -o smtp_data_done_timeout=1200
 -o smtp_send_xforward_command=yes
 -o disable_dns_lookups=yes

5. Fügen Sie am Ende der Datei „/etc/postfix/main.cf“ folgendes hinzu.

################
#ContentFilter
################
content_filter = smtp-amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings

6. Starten Sie den Postfix neu

service postfix restart

7. Editieren Sie die Datei „/etc/postfix/master.cf“ und fügen am Ende der Datei die nachfolgenden Zeilen hinzu.

127.0.0.1:10025 inet    n    -    n    -    -    smtpd
 -o content_filter=
 -o local_recipient_maps=
 -o relay_recipient_maps=
 -o smtpd_restriction_classes=
 -o smtpd_helo_restrictions=
 -o smtpd_sender_restrictions=
 -o smtpd_recipient_restrictions=permit_mynetworks,reject
 -o mynetworks=127.0.0.0/8
 -o strict_rfc821_envelopes=yes
 -o smtpd_error_sleep_time=0
 -o smtpd_soft_error_limit=1001
 -o smtpd_hard_error_limit=1000
 -o receive_override_options=no_header_body_checks

8. Fügen Sie die User „clamav“ und „amavis“ hinzu und starten die Dienste „postfix“ und „amavis“ neu

adduser clamav amavis

service postfix restart

service amavis restart

9. Fügen Sie der Datei „/etc/amavis/conf.d/50-user“ die Adresse hinzu die benachrichtigt werden sollen bei Virus Meldungen usw.

$hdrfrom_notify_sender = "postmaster\@medic-daniel.de";

10. SpamAssassin muss noch aktiviert werden, hierzu in der Datei „/etc/default/spamassassin“ den Wert „ENABLED=0“ auf „ENABLED=1“ setzten

11. Damit sich der SpamAssasin automatisch aktualisieren kann, muss in der Datei „/etc/default/spamassassin“ der Wert „CRON=0“ auf „CRON=1“ gesetzt werden.

12. Starten Sie den SpamAssasin Dienst neu

service spamassassin restart

Die Installation ist abgeschlossen,. Testen Sie das Ganze indem Sie sich via Telnet
(siehe Blog SMTP via Telnet beim Exchange Server ) eine Mail senden. Sie sollten sich eine Mail mit einem TEST-Eicar String senden, um dem ClamAV zu testen. Das ganze ebenfalls um den SpamAssassin zu testen.

Anbei die Strings, die im Body der Mail vorhanden sein sollten, um den Test zur Virenerkennung und Antispam durchzuführen.

##################
#Eicar Virus Test
##################
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

#############
#Spam String
#############
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X"

Optionale Einstellungen

Damit nicht SPAM-Mails nur in der Quarantäne landen, ist es möglich, in der Datei „etc/amavis/conf.d/20-debian_defaults“ die Option von „D_Bounce“ auf „D_PASS“ zu setzten, somit werden die SPAM Mails markiert und zugestellt. Bitte achten Sie drauf, dass die SPAM und Virus Mails  unter „/var/lib/amavis/virusmails“ abgelegt werden.

$final_spam_destiny       = D_PASS;

Ich hoffe, ich konnte Ihnen einen kleinen Einblick geben. Sollten Sie Fragen haben, so scheuen Sie nicht, mich zu kontaktieren. Nutzen Sie hier die “Kommentar Funktion” des Blogs oder wenn es Ihnen lieber ist via E-Mail.

Weiter Blogs folgen in den nächsten Tagen. Ich würde mich sehr freuen, wenn Sie wieder vorbeischauen.

Ein Gedanke zu „Raspberry PI als Mail-Gateway inkl. Antispam und Antivirus

  1. Tuba Libre

    Bei aller Anerkennung für das Tutorial ist dieses doch untauglich und gefährlich. Untauglich, weil die meisten Nutzer eine dynamische IP zugewiesen bekommen und damit Mails, die über einen Mailserver unter einer solchen IP versendet werden, zu 99,999999% direkt und nahezu von jedem Spam-Filter verworfen oder wegsortert werden.

    Gefährlich, weil ein Mailserver nicht nur sicher konfiguriert werden will, sondern administriert werden muss. Zudem ist fraglich, ob das Sicherheitsniveau gängiger Router, hinter denen sich ein solcher „Mailserver“ dann befindet und durch den er via NAT und Portfreigabe erreichbar ist, ausreichend ist, um ein vom Internet aus erreichbares Computersystem hinreichend zu schützend – eine Schwachstelle in Postfix & Co. kann bereits ausreichend sein, um ein ganzes Netzwerk (inkl. smarter Geräte wie TVs, Lautsprecher etc.) zu kompromittieren.

    Der Hinweis am Anfang des Artikels ist gut gemeint – aber wohl nicht hinreichend. Deshalb sollte a) noch einmal am Ende darauf ghingewiesen werden und b) auch für Laien verständlich erklärt werden, weshalb die hier vorgestellte Konfiguration für eigentlich gar nichts sinnvolles genutzt werden kann – es sei denn, man hat ein 200+ Zimmer Schloss und möchte einen isolierten Mailservice einrichten 😉

Schreibe einen Kommentar zu Tuba Libre Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

fünf + siebzehn =