CheckMK Agent auf bestimmten Interface/IP hören lassen

Hi zusammen,

ich habe einen Server welcher Public via Public IP erreichbar ist. Dieser hat ausserdem noch ein Interface von einem Wireguard Tunnel. Ich würde es gerne hinbekommen, dass der Agent ausschließlich auf dem internen Interface hört und nicht auf dem Public. Leider habe ich keine Einstellung im Forum gefunden die funktioniert. Kann mir hierbei jemand helfen?

OS auf dem der Agent läuft: Ubuntu 24.04.4 LTS

CheckMK Version: Checkmk Raw Edition 2.4.0p17

Danke!

Ich glaube, man kann die Listen-IP nicht ändern. Der Agent (bzw. der Agent-Controller) lauscht immer auf allen Interfaces. Man kann aber den Port einstellen (statt dem default von 6556) und man kann einstellen, dass nur Verbindungen von bestimmten Quell-IPs akzeptiert werden. Vielleicht hilft dir das weiter?

Guck mal hier: How to change default port for checkmk linux agent 2.1 version - #7 by Dirk

2 Likes

Dann sollte ja auf dem Server auch eine Firewall aktiv sein. Hier einfach die Verbindung zum CheckMK Agent Port verbieten für Anfragen auf dem Public Interface.

2 Likes

Hi BeatONE,

kurze Antwort vorweg: Der cmk-agent-ctl kann leider nicht auf ein bestimmtes Interface oder eine bestimmte IP gebunden werden — das Feature existiert schlicht nicht. Er lauscht immer auf 0.0.0.0:6556. Das ist eine bekannte Limitation, die schon länger im Forum diskutiert wird.

@dirk und @andreas-doehler haben aber schon die beiden richtigen Workarounds genannt — ich würde sie für deinen Fall am besten kombinieren:


1. IP-Allowlist im Agent-Controller (nur Verbindungen von der Wireguard-IP zulassen)

Datei anlegen (existiert standardmäßig nicht):

/var/lib/cmk-agent/cmk-agent-ctl.toml

Inhalt:

allowed_ip = [
    "10.x.x.x",   # IP deiner Checkmk-Instanz im Wireguard-Tunnel
]

Nach der Änderung den Agent-Controller neu starten:

systemctl restart cmk-agent-ctl-daemon

2. Firewall-Regel mit ufw (Port 6556 auf dem Public Interface blockieren)

# Port 6556 generell sperren
ufw deny 6556/tcp

# Nur vom Wireguard-Interface (z.B. wg0) erlauben
ufw allow in on wg0 to any port 6556

Die Kombination aus beidem gibt dir echte Sicherheit auf zwei Ebenen: Die Firewall blockt schon auf Netzwerkebene, und die allowed_ip-Liste ist ein zusätzlicher Schutz falls die Firewall mal falsch konfiguriert wird.

:slightly_smiling_face:

2 Likes

Hi,

danke für eure Antworten.

Eine Firewall läuft natürlich bereits. Ich wollte es nur noch zusätzlich absichern.

Viele Grüße

2 Likes