# Zabbix Template – TLS-Zertifikatüberwachung für Mail- und Webdienste Dieses Zabbix-Template ermöglicht eine umfassende Überwachung von TLS-Zertifikaten, die für Webserver (HTTPS) sowie E-Mail-Dienste wie SMTP und IMAP verwendet werden. Es überprüft automatisch die Gültigkeit der Zertifikate, erkennt abgelaufene oder ungültige Zertifikate und gibt rechtzeitig Warnungen aus, bevor ein Zertifikat abläuft. ## Funktionen Das Template bietet eine Vielzahl nützlicher Funktionen zur Zertifikatsüberwachung: - Automatische Prüfung der TLS-Zertifikatsgültigkeit (gültig oder ungültig) - Frühzeitige Benachrichtigung, wenn ein Zertifikat kurz vor dem Ablauf steht - Unterstützung mehrerer Protokolle, darunter HTTPS, SMTP und IMAP - Integration von Triggern für unterschiedliche Zustände, wie z. B. abgelaufene oder bald ablaufende Zertifikate - Konfigurierbare Schwellenwerte und Parameter mithilfe von Makros auf Host-Ebene - Unterstützung moderner TLS-Funktionen wie STARTTLS, Server Name Indication (SNI) und benutzerdefinierbarer Verbindungszeitüberschreitungen (Timeouts) ## Aufbau und enthaltene Dateien Das Paket besteht aus folgenden zentralen Komponenten: - **`templatemailcert_check.xml`**: Das eigentliche Zabbix-Template, das über das Webinterface importiert wird. - **`userparameters_mailcert_check.conf`**: Konfigurationsdatei für den Zabbix-Agent, welche benutzerdefinierte Prüfbefehle bereitstellt. - **`mailcert_check.sh`**: Ein Bash-Skript, das die Zertifikatsinformationen abfragt und verarbeitet. ## Installationsanleitung ### Schritt 1: Skript installieren Kopiere das Bash-Skript in ein geeignetes Verzeichnis auf dem Zielsystem und mache es ausführbar: ```bash sudo cp mailcert_check.sh /usr/local/bin/ sudo chmod +x /usr/local/bin/mailcert_check.sh ``` ### Schritt 2: Zabbix-Agent konfigurieren Die Datei mit den benutzerdefinierten Parametern muss in das Konfigurationsverzeichnis des Zabbix-Agenten kopiert werden. Anschließend ist ein Neustart des Agenten erforderlich: ```bash sudo cp userparameters_mailcert_check.conf /etc/zabbix/zabbix_agentd.d/ sudo systemctl restart zabbix-agent ``` ### Schritt 3: Template in Zabbix importieren 1. Melde dich im Zabbix-Frontend an. 2. Navigiere zu **Configuration → Templates**. 3. Klicke auf **Import**. 4. Wähle die Datei `template_mailcert_check.xml` aus und lade sie hoch. 5. Bestätige den Import. ### Schritt 4: Template einem Host zuweisen 1. Öffne im Zabbix-Frontend den gewünschten Host. 2. Gehe zum Reiter **Templates**. 3. Füge das Template **Template Mail Certificate Monitoring** hinzu. 4. Speichere die Änderungen. ## Konfiguration über Makros Auf Host-Ebene lassen sich mithilfe von Makros die zu überwachenden Ziele und Parameter definieren. Hier ein Beispiel für die SMTP-Zertifikatsüberwachung: ```yaml {$TLS_SMTP_DOMAIN} = mail.example.com {$TLS_SMTP_PORT} = 587 {$TLS_SMTP_STARTTLS} = smtp {$TLS_SMTP_SNI} = mail.example.com {$TLS_SMTP_TIMEOUT} = 10 {$TLS_SMTP_UPDATEINTERVAL} = 3600 {$TLS_SMTP_EXPIRESWITHIN} = 14 ``` Diese Makros ermöglichen eine flexible und gezielte Konfiguration pro Host. ## Beispielhafte Darstellung in Zabbix Nach erfolgreicher Einrichtung werden im Zabbix-Frontend automatisch Items und Trigger erstellt. Dazu zählen unter anderem: - Einträge zur Restlaufzeit (in Tagen) eines Zertifikats - Statusmeldungen zu ungültigen oder bald ablaufenden Zertifikaten - Trigger, die bei Erreichen der definierten Schwellenwerte Warnungen auslösen ![image-20250723220013360](assets/image-20250723220013360.png) ![image-20250726093817364](assets/image-20250726093817364.png) ## Manueller Test des Prüfskripts Zur Überprüfung der Skriptfunktionalität kann ein manueller Aufruf wie folgt erfolgen: ``` /usr/local/bin/mailcert_check.sh expire mail.example.com 587/smtp mail.example.com 10 ``` Dabei werden Domain, Port, Protokoll, SNI und Timeout übergeben. ## Kompatibilität - Unterstützt wird **Zabbix ab Version 6.4** - Abhängigkeiten: `bash`, `openssl` ## Lizenz Dieses Projekt steht unter der **MIT-Lizenz** und kann frei verwendet, modifiziert und verteilt werden.