Lokalen Mailserver für SAP HANA DB konfigurieren

Veröffentlicht am

Das Monitoring einer HANA Datenbank gehört zur täglichen Aufgabe eines Administrators. Damit man sich aber nicht mühsam durch die einzelnen Logs wühlen muss, ist das aktivieren des SAP Alerting Frameworks und das automatische Versenden von Mails beim Überschreiten von Schwellwerten, eine sinnvolle Konfiguration.

Leider hat SAP beim Alert Framework keine Möglichkeit vorgesehen sich gegen einen Mailserver zu authentifizieren (SMTP-Auth). Dies ist unverständlich, da sich heutzutage auch innerhalb des eigenen Firmennetzwerkes gegenüber den internen SMTP-Server authentifiziert werden muss. Diese Eigenschaft kann aber mit dem darunterliegenden Linux Server behoben werden.

Das Ziel dieser Konfiguration ist es, einen Workaround zu schaffen. Das Alerting Framework wird mit dem lokalen Mailserver des darunter liegenden Linux Betriebssystems konfiguriert, an dem sich nicht authentifziert werden muss.

Der lokale Mailserver leitet dann wiederunm die Mail an den Mailserver der Organisation weiter, und authentifiziert sich gegenüber diesen.

Bei einer HANA DB gibt es Stand 2020 nur die Möglichkeit die Datenbank auf einem RedHat Release oder einem SUSE Linux Enterprise Server zu betreiben. Diese Anleitung bezieht sich auf den SMTP Postfix, welcher bei SLES 12 standardmäßig ausgeliefert wird. Die Einstellungen sollten auch, leicht abgewandelt, bei anderen Mailservern wie z. B. Exim funktionieren.

Postfix main.cf anpassen

Die Hauptkonfiguration liegt in der Datei main.cf. Sie ist sehr groß, beinhaltet aber auch viele Erklärungen. Die u. g. Einstellungen finden sich in meinem Beispiel ab Zeile 690. Man kann aber auch einfach nach inet_interface suchen. Dies ist der erste zu ändernde Einstellung.

$ sudo vim /etc/postfix/main.cf
## Nur das lokale Netzwerk Interface kann Mails empfangen
inet_interface = 127.0.0.1

...

## Für wen ist der SMTP zuständig? Meine Domain und mein Host.
mydomain = intranet.local
mydestination = $myhostname,  localhost.$mydomain, $mydomain

## Hier wird der eigentliche SMTP Server, an dem wir die Mails ausliefern wollen, definiert. Das kann ein Exchange Server oder irgendein anderer SMTP Server, den man per SMTP_AUTH ansprechen kann.
relayhost = smtp.intranet.local

...
## Hier werden die Authentifizierungseinstellungen vorgenommen. Wenn Postfix als Client agiert, muss er sich authentifizieren. Die Daten dazu findet er in der gehashten Datei saslpasswd
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/saslpasswd

## Gegenüber den Postfix muss man sich nicht authentifizieren. Das öffnet der HANA DB die Möglichkeit, seine Mails abzuliefern. Zusammen mit der Einschränkung auf das lokale Interface, ist dies akzeptabel.
smtpd_sasl_auth_enable = no

Nachdem die Konfiguration angepasst wurde, muss noch die Datei für die Zugandsdaten für den Mailserver erstellt und gehashed werden.

Zugangsdaten hinterlegen

Damit der lokale Mailserver auch die Mails an einen anderen Mailserver abgeben kann, muss er sich bei diesem authentifizieren. Dazu werden die Zugangsdaten in die /etc/postfix/saslpasswd im Klartext hinterlegt. Es ist wichtig die Dateirechte einzuschränken damit diese Daten nicht für jedermann einsehbar ist. Postfix selber arbeitet nur mit einer gehashten Datei (saslpasswd.db). Diese wird mit postmap erzeugt.

$ sudo vim /etc/postfix/saslpasswd
smtp.intranet.local      user:password

$ chmod 600 /etc/postfix/saslpasswd
$ sudo postmap /etc/postfix/saslpasswd

Nachdem die Datei erstellt wurde, den Postfix Server neu starten und eine Testmail erstellen. Um zu prüfen ob der Service von Postfix fehlerfrei durchgestartet wurde, kann man mittels sudo systemctl status postfix sich den Status anzeigen lassen. Sollte es Fehler in der Konfiguration geben, wird der Dienst nicht starten.

Testmail versenden

$ sudo systemctl restart postfix
$ mail -r  -s "Test Mail from Linux" 
Text der Mail
Das Programm mail wird mit einem einzelnen Punkt in einer Zeile beendet 
.
EOT
$  

Wenn man mehrere Empfänger anschreiben möchte, muss man mailx verwenden. Es funktioniert ähnlich dem Programm mail.

$ mailx -R  -s "Test Mail from Linux" , 

Mail(x) ist ein interaktives Programm. Wenn man Log-Dateien in einem Batch-Script anhängen will, dann geht es (nur?) wenn man den Inhalt an mail(x) übergibt.

$ cat /tmp/logfile.txt | mailx -R  -s "Test Mail from Linux" , 

Was Postfix gemacht hat, kann man sich über den Befehl journalctrl anzeigen lassen.

$ sudo journalctrl -u postfix

Was man beachten sollte: Postfix, wie auch andere Mailserver sind sehr mächtig. Man sollte daher ein gewisses Grundverständnis für SMTP mitbringen. Ansonsten kann man sich mit Fehlkonfigurationen auch ein Sicherheitsloch einhandeln. Daher sollte so eine Konfiguration in die Security Policy des Unternehmens passen und mit den Sicherheitsverantwortlichen abgesprochen werden.

Nichts desto trotz kann mit diesen einfachen Konfigurationsanpassungen das Alerting Framework der HANA DB an den lokalen Mailserver geleitet werden. Wie das Alerting Framework eingerichtet wird, erläutere ich in einen anderen Artikel.

Links

Kleine Hilfe für Postfix – http://www.postfix.org/SOHO_README.html