Outlook Kalender in PST exportieren via Powershell

kurz notiert:

Ein Export des Outlook Kalenders kann via Powershell Skript wie folgt realisiert werden

$Outlook = New-Object -ComObject Outlook.Application
$NS = $Outlook.GetNamespace('MAPI')
$Store = $NS.Stores | ? {$_.displayname -eq "abc@xyz.de"}
$Calendar = $Store.GetDefaultFolder([Microsoft.Office.Interop.Outlook.OlDefaultFolders]::olFolderCalendar)
#PST Store
$Outlook.Session.AddStore("c:tmptemp.pst")
$PST = $ns.Stores | ? {$_.filepath -eq "c:tmptemp.pst"}
$PSTRoot= $PST.GetRootFolder()
$PSTFolder= $NS.Folders.Item($PSTRoot.Name)
#Export
$Calendar.CopyTo($PST)
#Trennen des Archivs
$NS.GetType().InvokeMember('RemoveStore',[System.Reflection.BindingFlags]::InvokeMethod,$null,$NS,($PSTFolder))

Das Archiv könnte man anschließend auch in ein bestehendes Exchange (Online) Postfach importieren.

#mit exchange (online) verbinden
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential (Get-Credential) -Authentication Basic -AllowRedirection
New-MailboxImportRequest -Mailbox <Name> -FilePath <UNC-Pfad und Name der PST-Datei> -TargetRootFolder <Ordner im Postfach>
#Zwischenstand abfragen
Get-MailboxImportRequest <Name des Importvorgangs> | fl
#Import löschen
Remove-MailboxImportRequest
Advertisements

Mail bei SSH Login

Mit folgendem Skript erhält man eine E-Mail, sobald sich ein Benutzer per SSH einloggt.

Dazu einfach die Datei “sshrc” im SSH Verzeichnis anlegen:

nano /etc/ssh/sshrc

Der Inhalt lautet:

ip=`echo $SSH_CONNECTION | cut -d " " -f 1`

logger -t ssh-wrapper $USER login from $ip
echo "Benutzer $USER hat sich gerade von der IP $ip eingeloggt" | mailx -s "SSH Server Login auf tj-braun.de" "Jens Braun <xyz@tj-braun.de>"

Die Mail wird nun automatisch versendet, sobald sich ein Benutzer per SSH einloggt. Der User bekommt davon nichts mit:

ssh-server-login-auf-tj-braun

 

Amavis-Spam-Virenfilter

Diese Anleitung erweitert den Postfix-Mailserver um Virenscanner und Spamfilter sowie automatische Mailfilter.

  • amavisd-new (Interaktion zwischen MTA und Virenscanner/Spamfilter )
  • clamav-daemon (Virenscanner )
  • spamassassin (Spamfilter )
  • razor (Online-Spamdatenbank )
  • pyzor (Online-Spamdatenbank )

AMaViS steht für A MAil Virus Scanner und ist ein serverseitiger Virenscanner, der auf Unix/Linux Mail-Servern zum Einsatz kommt. Mittlerweile wurde die Funktion um einen Spamfilter erweitert. AMaViS ist kein Virenscanner im eigentlichen Sinne, sondern eine Software, die dazu entwickelt wurde, Virenscanner in Mailserver einzubinden. Sie bietet eine Standardschnittstelle zwischen den Mail Transfer Agents (MTA) und den Contentfiltern, damit die Hersteller von Mailservern und Antivirenprogrammen nicht ständig neue Schnittstellen entwickeln müssen.

ClamAV (Clam AntiVirus) ist ein unter der GNU General Public License stehendes Virenschutzprogramm – also eine Anwendung gegen Schädlinge wie etwa Viren – mit einem Phishing-Filter, welcher häufig auf E-Mail-Servern zur Ausfilterung sogenannter Computerwürmer und Phishing-E-Mails zum Einsatz kommt.

SpamAssassin ist ein weitverbreitetes und ausgezeichnetes Filterprogramm, mit dem unerwünschte E-Mails (Spam) automatisch aussortiert werden können. SpamAssassin ist als freie Software unter den Bedingungen der Version 2 der Apache-Lizenz freigegeben.

Quelle: Wikipedia

 

Pakete installieren

apt-get install amavisd-new clamav-daemon spamassassin razor pyzor

Clamav-Daemon

Clamav erfordert normalerweise keine Anpassungen. Der Daemon ist gestartet, und Virensignaturen werden täglich aktualisiert. Damit Amavis und Clamav-Daemon zusammenarbeiten, muss der Benutzer clamav der Gruppe amavis über die Verwaltung der Benutzer und Gruppen zugeordnet werden. Dies erfolgt über die Befehle:

adduser clamav amavis
service clamav-daemon restart

Amavis

Zur Aktivierung müssen die jweiligen Bereiche in/etc/amavis/conf.d/15-content_filter_mode auskommentiert werden:

@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);

Wer nur auf Spam oder Viren prüfen will, lässt die Kommentarzeichen vor dem Block, den er nicht benötigt, stehen.

Spamassassin

Amavis greift direkt auf die spamassassin-Bibliotheken zu und benötigt keinen laufenden spamd Demon. Von daher ist keine weitere Konfiguration von spamassassin notwendig.

su - amavis -s /bin/bash
razor-admin -create
razor-admin -register
pyzor discover
exit

Postfix

Postfix muss nun so eingestellt werden, dass eintreffende E-Mails durch den Amavis Filter geschickt werden, sodass sie von Spamassassin kontrolliert werden können.

In die Datei /etc/postfix/main.cf wird folgende Zeile eingefügt:

content_filter=smtp-amavis:[127.0.0.1]:10024

Die Konfigurationsdatei /etc/postfix/master.cf wird um folgende Zeilen erweitert:

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

127.0.0.1:10025 inet n - - - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks

Unmittelbar hinter der Zeile mit dem Dienst pickup:

-o content_filter=
-o receive_override_options=no_header_body_checks

service postfix restart

Spammails mit ***SPAM*** kennzeichnen

In der Standardeinstellung filtert Amavis erkannten Spam einfach weg. Möglicherweise möchte man jedoch seinen Spam lieber selber nochmal auf falsche Treffer überprüfen. Dafür bietet Amavis die Möglichkeit, Spam in der Betreffszeile zu kennzeichnen. Außerdem kann man verschiedene Kopfzeilen, die mit X-Spam beginnen, einfügen lassen, wo Amavis Informationen über den Spamwert und die angeschlagenen Tests hinterlegt.

Dazu muss man in /etc/amavis/conf.d/20-debian_defaults folgende Variablen den eigenen Bedürfnissen anpassen:

  • $sa_tag_level_deflt: Mail, die höher als dieser Wert eingestuft wird, erhält die oben erwähnten X-Spam-Kopfzeilen.
  • $sa_tag2_level_deflt: Ab diesem Wert wird die Mail als Spam eingestuft, eine entsprechende Kopfzeile eingefügt und der Betreff mit dem Präfix ***SPAM*** versehen.
  • $sa_kill_level_deflt: Dieser Wert legt fest, ab wann die Mail so eindeutig als Spam eingestuft wird, dass sie sofort vernichtet wird.

Folgende Einstellungen haben sich in der Praxis als sinnvoll erwiesen:

$sa_tag_level_deflt = -999;
$sa_tag2_level_deflt = 5;
$sa_kill_level_deflt = 20;

Zum Übernehmen der Änderungen muss Amavis neu gestartet werden

service amavis restart

Wie soll Amavis mit SPAM, Viren und Anhängen umgehen?

Sobald unerwünschte Mails gefunden werden, hat AMaViS die Fähigkeit, sie unter Quarantäne zu stellen, zu verwerfen und / oder die unerwünschte Mail passieren lassen und zu zustellen.
Dabei können nützliche Informationen im Header platziert werden.

Der kritische Punkt von AMaViS Konfiguration ist zu entscheiden, welche Maßnahmen ergriffen werden sollten, wenn eine unerwünschte Nachricht gefunden wird.

Einstellungen, die mit Viren umgehen, verboten Anhängen und Bad Header:

$final_virus_destiny =
$final_banned_destiny =
$final_bad_header_destiny =

$virus_quarantine_to =
$banned_quarantine_to =
$bad_header_quarantine_to =

Mögliche Einstellungen für $final_*_destiny sind: D_PASS, D_BOUNCE, D_REJECT and D_DISCARD.

D_PASS:

E-Mails werden an die Empfänger weitergeben , unabhängig von schlechten Inhalten. Ist Quarantäne konfiguriert ist, wird eine Kopie der E-Mail dorthin gelegt, wenn nicht, erhält aber mindestens der Empfänger die E-Mail.

D_BOUNCE:

Die Mail wird nicht zugestellt und der Absender erhält eine Unzustellbarkeitsnachricht. Dies aber nicht, sollten Viren gefunden werden. Ist Quarantäne konfiguriert, geht die Mail dort hin. Ansonsten ist sie verloren.

D_REJECT:

Die Mail wird nicht zugestellt. AMaViS schickt die typischen 55x Antworten auf die Upstream-MTA und dieser kann eine Mitteilung über die Zurückweisung an den Absender senden. Die Infos sind aber nicht so aussagekräftig wie beim Bounce.

D_DISCARD:

Mail wird nicht zugestellt und der Absender nicht informiert. Eine Kopie wandert in die Quarantäne, wenn sie konfiguriert ist.

Anpassungen unter Ubuntu

Mails werden immer geblockt, auch wenn andere Einstellungen vorgenommen sind

Die Direktiven

$final_virus_destiny =
$final_banned_destiny =
$final_bad_header_destiny =
$final_spam_destiny =

greifen nicht, wenn der Server unter Ubuntu läuft. Daher muss die Datei /etc/amavis/conf.d/21-ubuntu_defaults dahingehend angepasst werden:

$final_virus_destiny = D_DISCARD; # (data not lost, see virus quarantine)
$final_banned_destiny = D_BOUNCE; # D_REJECT when front-end MTA
$final_spam_destiny = D_PASS;
$final_bad_header_destiny = D_PASS; # False-positive prone (for spam)

Spam im Betreff kennzeichnen

Damit der Header umbenannt werden kann und die X-Spam-Flag, X-Spam-Score, X-Spam-Level, X-Spam-Status Tags eingefügt werden, muss die Domain übereinstimmen.

Sollte diese nicht stimmen, werden keine Änderungen vorgenommen.

head -n 1 /etc/mailname

muss die Domain ergeben. Wenn die Ausgabe mail.example.org o.ä. ausgibt, ist dies der Bug in Amavis.

Die einfachste Lösung ist in /etc/amavis/conf.d/05-domain_id

chomp($mydomain = `head -n 1 /etc/mailname`);

zu ändern in

$mydomain = "example.com";

Infomail bei Spam oder Virus

In der Datei /etc/amavis/conf.d/21-ubuntu_defaults die Zeilen hinzufügen oder anpassen, damit bei einem Spam oder Virenfund eine Infomail an den Admin geht:

$virus_admin = "postmaster@$mydomain";

$spam_admin = "postmaster@$mydomain";

Soll  bei einem Virenfund ebenfalls der Empänger benachrichtigt werden so ist folgendes zu ergänzen:

$warnvirusrecip = 1;

Testen des Mailservers

Zum Testen, wie das Konstrukt mit Mails umgeht, eignet sich bspw. der Online Dienst von byteplant.

Mailadresse eingeben, bestätigen und schauen, was der Server tut:

amavis

DMARC

DMARC baut auf den bekannten Techniken SPF (Sender Policy Framework) und DKIM (DomainKeys Identified Mail) auf, indem es festlegt, wie der Empfänger von E-Mails die Authentifizierung durchführt. Während die vorgenannten Techniken beschreiben, wer eine Mail versenden darf (SPF) bzw. dass diese Mail in bestimmter Weise unverändert vom Absender stammt (DKIM), kann der Absender nach der DMARC-Spezifikation zusätzlich festlegen, auf welche Art der Empfänger mit einer Mail umgeht, die in einem oder beiden Fällen nicht den Anforderungen entspricht. Sofern der Empfänger einer E-Mail die DMARC-Spezifikation anwendet, ist dadurch eine konsistente Überprüfung der Authentizität dieser E-Mail gesichert.
Quelle:Wikipedia

Als Domaininhaber bekommt man mit einer passenden Verarbeitung ein Feedback, wie stark die Domäne von unberechtigten Personen genutzt wird. DMARC macht also den Missbrauch bekannt. Laut DMARC selbst, sind das zumindest in den USA schon einige Postfächer:

As of early 2013 DMARC had been deployed to protect roughly 2 billion email accounts – over 60% of consumer mailboxes globally, and over 80% of consumer mailboxes in the united States.
During the first 45 days of initial monitoring, Twitter saw nearly 2.5 billion messages spoofing its domains.
Twitter reports ~110 million messages/day were spoofing its domains prior to deploying DMARC, redUCEd to only 1,000/day after publishing a “reject” policy.
Quelle: http://www.dmarc.org/

DMARC ist nur die Einstellung, dass die Empfänger mit DMARC-Support die Zahlen an die Domaininhaber melden.

Der Eintrag

_dmarc.tj-braun.de TXT ="
v=DMARC1;
p=none;
pct=100;
rua=mailto:EMPFAENGERADRESSE;
ruf=mailto:EMPFAENGERADRESSE;
adkim=s;
aspf=r
"

v=DMARC1 Version
p=
sp=
Policy oder “Subdomain Policy”
Wie soll der Empfänger mit Mails umgehen, die nicht korrekt mit SPF oder DKIM überprüft werden konnten?

  • none
    Der Empfänger soll die Mail trotzdem weiter senden
  • quarantine
    Der Empfänger soll die Mail annehmen aber in Quarantäne legen
  • reject
    Der Empfänger soll die Mail einfach auf SMTP-Level ablehnen
pct= Prozentsatz der Mails, die entsprechend von “p” gefiltert werden sollen.
rua Receive or aggregated Report
Der Empfänger sendet an diese Adresse einen “Summenbericht”
ruf receiver of forensic report
An diese Mailadresse sendet der Empfänger einen forensischen Report über die fehlerhafte Mail
adkim Abgleicheinstellung für DKIM
Wie streng soll die Prüfung bezüglich DKIM sein?

  • s=Strict
    Die Domänen müssen exakt übereinstimmen
  • r=Relaxed
    Die Kopfzeile im SMTP-Header darf auch eine Subdomain sein, z.B. “newsletter@msxfaq.de”
aspf Analog zu DKIM die SPF-Auswertung

  • s=Strict
    Die Domänen müssen exakt übereinstimmen
  • r=Relaxed
    Die Kopfzeile im SMTP-Header darf auch eine Subdomain sein

Beispiel

nslookup -q=TXT _dmarc.tj-braun.de

Nicht autorisierende Antwort:
_dmarc.tj-braun.de text = “v=DMARC1;p=none;pct=100;rua=mailto:XY;ruf=mailto:XY;adkim=s;aspf=r”

Installation und Konfiguration von DKIM mit Postfix unter Ubuntu

Einleitung

Die Einstufung von E-Mails als Spam kann diverse Gründe haben, wird aber meistens durch einen der folgenden Punkte verursacht:

  • Der Server ist ein Open Relay
  • Der Absender oder die Server IP steht auf einer Blacklist
  • Der Server hat keinen FQDN und/oder PTR Eintrag
  • Der Sender Policy Framework (SPF) DNS Eintrag fehlt oder ist fehlerhaft konfiguriert
  • Die Implementierung von DomainKeys Identified Mail (DKIM) fehlt oder ist nicht korrekt aufgesetzt

Die Spamfilter testen auf einige Basis Eigenschaften. Das Erfüllen dieser Eigenschaften ist sehr wichtig für gut konfigurierte Mailserver.
Im Folgenden wird die Einrichtung von DKIM beschrieben. Genutzt wird dazu “OpenDKIM”, eine OpenSource Implementierung des “DKIM sender authentication system”.

DKIM

DKIM ist ein Internet Standard, der es ermöglicht, Personen oder Unternehmen und deren Domainnamen einer E-Mail Nachricht zu verknüpfen. DKIM funktioniert über eine asymmetrische Verschlüsselung. Der MTA signiert jede ausgehende Mail mit seinem privaten Schlüssel. Der Empfänger erhält den öffentlichen Schlüssel vom DNS des Absenders. Er verifiziert anschließend, ob es keine Veränderungen im Mail Body und einigen der Header Feldern seit der Signierung gibt.

Installation von OpenDKIM

Vor der Installation sollte ein Systemupdate erfolgen und das Paket anschließend installiert werden.
apt-get update && apt-get upgrade
apt-get install opendkim opendkim-tools

Konfiguration von OpenDKIM

Zur Konfiguration müssen einige Dateien angepasst oder erstellt werden.
Angefangen mit der Hauptkonfigurationsdatei:

nano /etc/opendkim.conf

Hier sollten folgende Dinge an die Konfiguration angehängt werden:

AutoRestart Yes
AutoRestartRate 10/1h
UMask 002
Syslog yes
SyslogSuccess Yes
LogWhy Yes
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Mode sv
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256
UserID opendkim:opendkim
Socket inet:12301@localhost

Erklärung

  • AutoRestart: Startet den Filter bei Fehlern automatisch neu
  • AutoRestartRate: Gibt an, wie oft der Filter maximal neugestartet werden darf. Sollte ein Neustart öfter erfolgen, so wird der Filter beendet; 10/1h – 10 maximal 10 Neustarts pro Stunde sind erlaubt.
  • UMask: Erteilt vollständige Zugriffsrechte für die Gruppe, welche durch die UserID definiert ist. Andere Benutzer dürfen die Dateien ausführen und lesen. In diesem Fall wird das Erstellen und Bearbeiten der Pidfile erlaubt.
  • Syslog, SyslogSuccess, *LogWhy: Erlauben detailliertes Logging via Syslog.
  • Canonicalization: Legt die Methode der Kanonisierung beim Signieren fest. Die “simple” MEthode erlaubt fast keine Modifikationen, wohingegen die “relaxed” Methode kleinere Änderungen erlaubt wie das Entfernen von Leerzeichen; relaxed/simple – Header: relaxed, Body: simple
  • ExternalIgnoreList: Legt Hosts fest, die Mails mit der Domain durch diesen Server versenden dürfen, ohne, dass Anmeldedaten mitgegeben werden müssen.
  • InternalHosts: Legt eine Liste von Hosts fest, dessen Mail nicht verifiziert aber signiert werden soll.
  • KeyTable: Ordnet maps key names den signing keys zu
  • SigningTable: Liste der Signaturen, die auf die Mail angewendet werden soll, basierend auf dem Header Feld “From”
  • Mode: Legt den Modus der Ausführung fest. In diesem Fall arbeitet der milter als Signierer (s) und Verifizierer (v)
  • PidFile: Pfad zur Pidfile, welche die Nummer des Prozesses beinhaltet
  • SignatureAlgorithm: Algorithmus, der beim Erstellen der Signaturen verwendet wird.
  • UserID: ID (Benutzer und Gruppe) unter welcher der Prozess läuft
  • Socket: Der Milter hört auf diesen Port, Postfix sendet Mails an opendkim zur Signierung und Verifikation an diesen Socket. 12301@localhost TCP Socket, der auf Localhost, Port 12301 hört.

Mehr Infos zu den Einstellungen und Möglichkeiten gibt es hier.

Verbinden des Milters zu Postfix:

nano /etc/default/opendkim

Die folgende Zeile muss eingefügt und evtl. angepasst werden, sollte ein anderer Port genutzt worden sein:

SOCKET="inet:12301@localhost"

Postfix mitteilen, dass er den Milter nutzen soll:

nano /etc/postfix/main.cf

milter_protocol = 2
milter_default_action = accept
smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301

Oder so, falls schon andere Filter vorhanden sind (SpamAssasin etc.)

smtpd_milters = unix:/spamass/spamass.sock, inet:localhost:12301
non_smtpd_milters = unix:/spamass/spamass.sock, inet:localhost:12301

Nun müssen die Ordner erstellt werden, die die oben definierten Hosts, Tabellen und Schlüssel beinhalten:

mkdir /etc/opendkim
mkdir /etc/opendkim/keys

Hosts defninieren:

nano /etc/opendkim/TrustedHosts

Diese Datei gilt für die Richlinie ExternalIgnoreList und InternalHosts. Mails dieser Hosts, Domänen und IP Adressen wird vertraut und werden signiert.

127.0.0.1
localhost
192.168.0.1/24

*.tj-braun.de

Keytable anlegen:

nano /etc/opendkim/KeyTable

Diese Tabelle enthät das “Selector/Domain” Paar und den Pfad zum privaten Schlüssel. Jeder String kann als Selector genutzt werden. Hier ist es “mail”

mail._domainkey.tj-braun.de tj-braun.de:mail:/etc/opendkim/keys/tj-braun.de/mail.private

SigningTable anlegen:

nano /etc/opendkim/SigningTable

Diese Datei wird für die Definition der Domains/E-Mails und deren Selektoren verwendet.

*@tj-braun.de mail._domainkey.tj-braun.de

Privaten und öffentlichen Schlüssel generieren

Wechsel ins Schlüsselverzeichnis:

cd /etc/opendkim/keys

Ordner für die Domain erstellen.

mkdir tj-braun.de
cd tj-braun.de/

Schlüssel generieren

opendkim-genkey -s mail -d tj-braun.de

-s definiert der Selektor und -d die Domain. Es werden 2 Dateien erstellt. mail.private enthält den privaten Schlüssel und mail.txt den öffentlich Schlüssel.

Öffentlichen Schlüssel zum DNS hinzufügen

Inhalt der mail.txt

mail._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=MIGfMA0GCSqGSIb3DQEBAQU...KPofdPZnZjpk5kQ5+PdomLzxesY2NYOG---- DKIM key mail for tj-braun.de

Mit diesem Schlüssel erstellt man nun einen TXT Record  im DNS.

Name: mail._domainkey
Text: "v=DKIM1; k=rsa; " "p=MIGfMA0GCSqGSIb3DQEBAQU...KPofdPZnZjpk5kQ5+PdomLzxesY2NYOG"

Nameserver

Neustart von Postfix und OpenDKIM

service postfix restart
service opendkim restart

Testen

1. Leere Mail an check-auth@verifier.port25.com, dort sollte “DKIM check: pass” stehen, wenn alles funktioniert.

==========================================================
Summary of Results
==========================================================
SPF check: pass
DomainKeys check: neutral
DKIM check: pass
Sender-ID check: pass
SpamAssassin check: ham

2. Mail an eine GMail Adresse schicken. Dort kann man sich den Header anschauen, der so aussehen sollte:

Received-SPF: pass (google.com: domain of tj-braun.de designates 81.169.183.170 as permitted sender) client-ip=81.169.183.170;
Authentication-Results: mx.google.com;
dkim=pass header.i=@tj-braun.de;
spf=pass (google.com: domain of tj-braun.de designates 81.169.183.170 as permitted sender) smtp.mailfrom=tj-braun.de

3. Syslog

opendkim[fusion_builder_container hundred_percent=”yes” overflow=”visible”][fusion_builder_row][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][12772]: 2F49015260E04: DKIM-Signature field added (s=mail, d=tj-braun.de)[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

Sendmail – Mailversand via Relayhost

Um mit sendmail über einen Relayhost zu versenden, muss die Datei /etc/mail/sendmail.cf angepasst werden.

Dort nach

...
# "Smart" relay host (may be null)
DS
...

suchen und wie folgt abändern:

# "Smart" relay host (may be null)
DSIP-oder-FQDN

Danach den Dienst neustarten

service sendmail restart

Mail versenden:

sendmail xy@example.de  < /tmp/email.txt

Und im Log nachschauen, ob alles seine Richtigkeit hat:

tail /var/log/mail.log

Fail2Ban und Rainloop

Rainloop ist ein schlanker Mailclient, der sich via IMAP an diverse Anbieter koppeln lässt.

Um die Nutzung abzusichern und Einbruchsversuche zu blockieren, kann es in Kombination mit Fail2Ban verwendet werden.

Anpassungen in der jail.conf:

[rainloop]

enabled = true
filter = rainloop
port = http,https
logpath = /var/www/rainloop/data/_data_/_default_/logs/fail2ban/auth.log
maxretry = 3

Änderungen an Rainloop (../rainloop/data/_data_/_default_/configs/application.ini):

auth_logging = On
auth_logging_filename = "fail2ban/auth.log"
auth_logging_format = "[{date:Y-m-d H:i:s}] Auth failed: ip={request:ip} user={imap:login} host={imap:host} port={imap:port}"

Filter für Fail2Ban (/etc/fail2ban/filter.d/rainloop.conf)

failregex = Auth failed: ip=<HOST> user=.* host=.* port=.*
ignoreregex =

Sollten die Jails nicht greifen, kann es am falschen Zeitstempel im Log liegen. Dazu in der application.ini “timeffset” anpassen (time_offset = 2 // 2h => UTC+2).