Good to Know Database

CentOS 6: Benachrichtigung wenn Fetchmail-Fingerabdrücke nicht stimmen


Wie bereits im Tutorial CentOS 6: Fetchmail-SSL-Zertifikate erneuern beschrieben, sind die Zertifikate auf den Mailservern in der Regel nur begrenzt gültig und werden regelmäßig ausgetauscht. Da bei einer entsprechenden Konfiguration von Fetchmail nach einem Zertifikatswechsel keine E-Mails mehr vom betroffenen Mailserver abgeholt werden, habe ich ein kleines Shell-Skript geschrieben, welches regelmäßig die Logdatei des Mailsystems überprüft und den Administrator über das ungültige Zertifikat per E-Mail informiert.

Hinweis: Das folgende Skript ist für CentOS 6.2 ausgelegt. Bei einer anderen Version von CentOS oder einer anderen Distribution müssen Sie gegebenenfalls den Filter an das Format in Ihrer /var/log/maillog anpassen.

Bei CentOS 6.2 sehen die entsprechenden Einträge in der /var/log/maillog wie folgt aus.

Sep  6 15:57:00 centos6 fetchmail[25042]: pop.gmx.net-Fingerabdrücke stimmen nicht überein!

Erstellen Sie durch den folgenden Befehl das Skript im Verzeichnis ~/sh.

[root@centos6 ~]# vi ~/sh/check_maillog.sh

Fügen Sie jetzt das folgende Skript in die Datei check_maillog.sh ein.

###########################################################################
##                                                                       ##
##            Check /var/log/maillog for fingerprint warnings            ##
##                                                                       ##
## Creation:    08.05.2012                                               ##
## Last Update: 20.10.2013                                               ##
##                                                                       ##
## Copyright (c) 2012-2013 by Georg Kainzbauer <http://www.gtkdb.de>     ##
##                                                                       ##
## This program is free software; you can redistribute it and/or modify  ##
## it under the terms of the GNU General Public License as published by  ##
## the Free Software Foundation; either version 2 of the License, or     ##
## (at your option) any later version.                                   ##
##                                                                       ##
###########################################################################
#!/bin/bash

# Path of maillog file
LOGFILE=/var/log/maillog

# Searchstring
SEARCHSTRING="Fingerabdrücke stimmen nicht überein!"

# Who will be informed in case of fingerprint warnings are found (if you do not want to be informed via mail, set this option to "")
MAILNOTIFY="root@localhost"

# Subject of the notification mail
MAILSUBJECT="Fetchmail: Fingerprints do not match"

###################################################################
# NORMALLY THERE IS NO NEED TO CHANGE ANYTHING BELOW THIS COMMENT #
###################################################################

function pipe_not_empty()
{
  input=$(cat)
  if [ "$input" != "" ]; then
    { printf '%s\n' "${input}"; } | "$@"
  fi
}

grep "${SEARCHSTRING}" ${LOGFILE} | cut -d" " -f2- | grep "^$(date +%e)" | cut -d: -f4- | cut -d" " -f2- | sort -u | sed "s/-${SEARCHSTRING}//" | pipe_not_empty mail -s "${MAILSUBJECT}" ${MAILNOTIFY}

exit 0

Ändern Sie anschließend die Zugriffsrechte der Datei.

[root@centos6 ~]# chmod 0700 ~/sh/check_maillog.sh

Öffnen Sie jetzt die Crontab mit dem folgenden Befehl zum Bearbeiten.

[root@centos6 ~]# crontab -e

Fügen Sie am Ende der Datei die folgende Zeile ein. Dadurch wird das Skript täglich um 11:59 Uhr und um 23:59 Uhr ausgeführt.

59 11,23 * * * /root/sh/check_maillog.sh >/dev/null 2>&1

Weiterführende Tutorials

CentOS 6: Fetchmail-SSL-Zertifikate erneuern


Dieser Eintrag wurde am 15.09.2013 erstellt und zuletzt am 24.01.2016 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_33_2330.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer