Wer die Kombination 3CX und CheckMK betreibt, der möchte sicherlich die Installation überwachen und über Fehler und Probleme benachrichtigt werden. Hierbei gibt es eine kleine Besonderheit, auf die ich in diesem Beitrag gerne eingehen möchte.
3CX mit Debian
Wenn ich 3CX installiere und nutze, dann passiert dies bei lokalen Installation nahezu immer mit dem entsprechenden Debian Linux-ISO. Die Debian-Installation hat den Vorteil, dass keine Lizenzkosten anfallen, die Installation deutlich weniger Ressourcen braucht als ein Windows Server und der Aufwand zur Pflege und Härtung ist (imho) deutlich einfacher. 3CX kümmert sich um sämtliche Updates, selbst Upgrades auf neue Major-Versionen passieren automatisch und vollautomatisiert.
Das Problem
Wenn die VM einmal läuft und grundsätzlich eingerichtet ist, wird normalerweise der CheckMK Linux Agent installiert und das System wird in das Monitoring aufgenommen. Mit 3CX unter Debian 10 passiert es, dass nach der Installation des Agenten keine Überwachung möglich ist, der Agent kann nicht kontaktiert werden und es können keine Daten abgerufen werden.
Ein erster Test mit einem Portscanner zeigte, dass von außen keine Verbindung auf TCP Port 6556 aufgenommen werden konnte. Meine erste Vermutung war, dass hier iptables reinschlägt und der custom Port 6556 nicht offen ist. Nach einer kurzer Recherche musste ich dann aber feststellen, dass iptables nicht mehr installiert ist und nicht mehr verwendet wird, sondern nftables.
Anpassung der nftables Firewall
Um nun auf dem Debian 10, welches direkt vo 3CX bereitgestellt wird, den Port 6556 zu öffnen, müssen wir die Konfiguration der Firewall anpassen. Dazu legen wir im ersten Schritt erst einmal eine Kopie der aktuellen Konfiguration an, man weiß ja nie.
cp /etc/nftables.conf /etc/nftables.conf.backup
Nun können wir die Konfiguration anpassen. Dies geschieht über
nano /etc/nftables.conf
Hier sehen wir eine Konfiguration, die von 3CX vorbereitet und in das System eingespielt wurde.
Hier suchen wir uns nun eine passende Stelle im Bereich der input chain und erweitern diese mit den folgenden Zeilen:
# CheckMK Agent erlauben
tcp dport { 6556 } counter accept comment "Accept CheckMK Agent TCP ports"
Das Resultat sieht dann z.B. wie folgt aus:
Nun speichern wir die Datei und starten die VM einmal durch. Nach einem Neustart darf die Verbindung auf TCP Port 6556 aufgebaut werden und wir können das System in das Monitoring aufnehmen.
Übrigens: Wenn jemand ein gutes Skript zur Überwachung der 3CX-Dienste hat, lasst mir doch bitte einen Kommentar da!
3CX auf Proxmox PVE 7:
Einspielen eines Sicherheitsupdate führte zum Crash der Maschine.
Postgres Auth Error irgendwas.
Ein Update einer gleichen VM OHNE CheckMK Agent lief sauber durch.