# Netzwerk Vorraussetzungen (Firewall)

###   


### Beschreibung:

Der Server und die Agents kommunizieren über mehrere Ports. Diese müssen eingehend erreichbar sein

### Firewall Ports

#### Überwachung von Hosts (Agent, SNMP)

Die folgenden Ports auf überwachten Hosts müssen vom Checkmk-Server aus erreichbar sein.

<table class="table-responsive table-bordered table tableblock frame-all grid-all spread" id="bkmrk-port-protokoll-bezei"><thead><tr><th class="tableblock halign-left valign-top">Port</th><th class="tableblock halign-left valign-top">Protokoll</th><th class="tableblock halign-left valign-top">Bezeichnung</th><th class="tableblock halign-left valign-top">Ergänzende Informationen</th></tr></thead><tbody><tr><td class="tableblock halign-left valign-top">161

</td><td class="tableblock halign-left valign-top">UDP

</td><td class="tableblock halign-left valign-top">[Simple Network Management Protocol (SNMP)](https://docs.checkmk.com/latest/de/glossar.html#snmp)

</td><td class="tableblock halign-left valign-top">Via SNMP überwachte Hosts erhalten über diesen Port die Anforderung `GET-REQUEST`.

</td></tr><tr><td class="tableblock halign-left valign-top">6556

</td><td class="tableblock halign-left valign-top">TCP

</td><td class="tableblock halign-left valign-top">[Agent](https://docs.checkmk.com/latest/de/glossar.html#agent)

</td><td class="tableblock halign-left valign-top">Via [Checkmk-Agent](https://docs.checkmk.com/latest/de/wato_monitoringagents.html#agents) überwachte Hosts werden über diesen Port abgefragt. Die Kommunikation erfolgt TLS verschlüsselt oder im Klartext (wie beim [Linux-Agenten im Legacy-Modus](https://docs.checkmk.com/latest/de/agent_linux_legacy.html)).

</td></tr><tr><td class="tableblock halign-left valign-top">—

</td><td class="tableblock halign-left valign-top">ICMP

</td><td class="tableblock halign-left valign-top">Ping

</td><td class="tableblock halign-left valign-top">Checkmk überwacht die Erreichbarkeit von Hosts per Ping. Ist dies nicht möglich, muss die Ermittlung des Host-Zustands mit der Regel [<span class="guihint">Host Check Command</span>](https://docs.checkmk.com/latest/de/hosts_setup.html#monitoring_agents) festgelegt werden.

</td></tr></tbody></table>

[Aktive Checks](https://docs.checkmk.com/latest/de/glossar.html#active_check) greifen direkt auf die Ports der überwachten Dienste zu, die daher auch vom Checkmk-Server aus erreichbar sein müssen. Die Überwachung mit [Spezialagenten](https://docs.checkmk.com/latest/de/glossar.html#special_agent) kann erfordern, andere/weitere Ports zu öffnen. So benötigt der Spezialagent für VMware ESXi (auch NetApp und viele weitere) die Öffnung des Ports 443 auf dem ESXi Server.

#### Checkmk-Server

Die folgenden Ports auf dem Checkmk-Server müssen für die Hosts im Monitoring erreichbar sein.

<table class="table-responsive table-bordered table tableblock frame-all grid-all spread" id="bkmrk-port-protokoll-bezei-0"><thead><tr><th class="tableblock halign-left valign-top">Port</th><th class="tableblock halign-left valign-top">Protokoll</th><th class="tableblock halign-left valign-top">Bezeichnung</th><th class="tableblock halign-left valign-top">Ergänzende Informationen</th></tr></thead><tbody><tr><td class="tableblock halign-left valign-top">80

</td><td class="tableblock halign-left valign-top">TCP

</td><td class="tableblock halign-left valign-top">Hypertext Transfer Protocol (HTTP)

</td><td class="tableblock halign-left valign-top">[Agent Updater](https://docs.checkmk.com/latest/de/glossar.html#agent_updater) ([Agentenbäckerei](https://docs.checkmk.com/latest/de/glossar.html#agent_bakery)), Discovery des Agent Controller Ports

</td></tr><tr><td class="tableblock halign-left valign-top">162

</td><td class="tableblock halign-left valign-top">UDP

</td><td class="tableblock halign-left valign-top">Simple Network Management Protocol Trap (SNMPTRAP) EC

</td><td class="tableblock halign-left valign-top">Empfang von [SNMP-Traps über die Event Console](https://docs.checkmk.com/latest/de/ec.html#snmp) *(optional aktivierbar)*

</td></tr><tr><td class="tableblock halign-left valign-top">443

</td><td class="tableblock halign-left valign-top">TCP

</td><td class="tableblock halign-left valign-top">Hypertext Transfer Protocol over SSL/TLS (HTTPS)

</td><td class="tableblock halign-left valign-top">Agent Updater (Agentenbäckerei), Discovery des Agent Controller Ports, mit Transportverschlüsselung

</td></tr><tr><td class="tableblock halign-left valign-top">514

</td><td class="tableblock halign-left valign-top">TCP und UDP

</td><td class="tableblock halign-left valign-top">Syslog (EC)

</td><td class="tableblock halign-left valign-top">Empfang von [Syslog-Nachrichten über die Event Console](https://docs.checkmk.com/latest/de/ec.html#setup) *(optional aktivierbar)*

</td></tr><tr><td class="tableblock halign-left valign-top">6559

</td><td class="tableblock halign-left valign-top">UDP

</td><td class="tableblock halign-left valign-top">[Echtzeitprüfungen](https://checkmk.com/werk/8350)

</td><td class="tableblock halign-left valign-top">Empfang von UDP-Paketen für die Echtzeitprüfungen einzelner Dienste (selten verwendet, *optional aktivierbar*)

</td></tr><tr><td class="tableblock halign-left valign-top">8000

</td><td class="tableblock halign-left valign-top">TCP

</td><td class="tableblock halign-left valign-top">Agent Controller TLS-Registrierung

</td><td class="tableblock halign-left valign-top">Wenn mehrere Instanzen auf dem Checkmk-Server laufen, sind eventuell weitere Ports (8001, 8002…) nötig.

</td></tr></tbody></table>

Die TLS-Registrierung von Agenten nutzt die REST-API auf Port 80/443 zur Discovery des Ports zur Registrierung (meist 8000 TCP). Sind beide nicht erreichbar, kann der Port per [Kommandozeilenoption](https://docs.checkmk.com/latest/de/agent_linux.html#networkrequirements) angegeben werden. Falls Port 8000 nicht erreichbar ist, kann auf anderen Hosts im Monitoring eine [Registrierung im Auftrag](https://docs.checkmk.com/latest/de/agent_linux.html#proxyregister) erfolgen.

#### Verteiltes Monitoring

##### Remoteinstanz

Die folgenden Ports auf Remote-Instanzen müssen vom als Zentralinstanz arbeitenden Checkmk-Server erreichbar sein.

<table class="table-responsive table-bordered table tableblock frame-all grid-all spread" id="bkmrk-port-protokoll-bezei-1"><thead><tr><th class="tableblock halign-left valign-top">Port</th><th class="tableblock halign-left valign-top">Protokoll</th><th class="tableblock halign-left valign-top">Bezeichnung</th><th class="tableblock halign-left valign-top">Ergänzende Informationen</th></tr></thead><tbody><tr><td class="tableblock halign-left valign-top">80

</td><td class="tableblock halign-left valign-top">TCP

</td><td class="tableblock halign-left valign-top">HTTPS (Hypertext Transfer Protocol)

</td><td class="tableblock halign-left valign-top">Synchronisierung im [verteilten Monitoring](https://docs.checkmk.com/latest/de/glossar.html#distributed_monitoring)

</td></tr><tr><td class="tableblock halign-left valign-top">443

</td><td class="tableblock halign-left valign-top">TCP

</td><td class="tableblock halign-left valign-top">Hypertext Transfer Protocol over SSL/TLS (HTTPS)

</td><td class="tableblock halign-left valign-top">Synchronisierung im verteilten Monitoring, mit Transportverschlüsselung

</td></tr><tr><td class="tableblock halign-left valign-top">6555

</td><td class="tableblock halign-left valign-top">TCP

</td><td class="tableblock halign-left valign-top">Benachrichtigungs-Spooler (*notification spooler*)

</td><td class="tableblock halign-left valign-top">Der [Benachrichtigungs-Spooler](https://docs.checkmk.com/latest/de/distributed_monitoring.html#notifications) dient dem zentralen Versand von Benachrichtigungen, hier beim Verbindungsaufbau durch die Zentralinstanz *(optional aktivierbar)*

</td></tr><tr><td class="tableblock halign-left valign-top">6557

</td><td class="tableblock halign-left valign-top">TCP

</td><td class="tableblock halign-left valign-top">[Livestatus](https://docs.checkmk.com/latest/de/glossar.html#Livestatus)

</td><td class="tableblock halign-left valign-top">Wenn mehrere Instanzen auf dem Checkmk-Server laufen, sind eventuell weitere Ports nötig *(optional aktivierbar)*

</td></tr><tr><td class="tableblock halign-left valign-top">6558

</td><td class="tableblock halign-left valign-top">TCP

</td><td class="tableblock halign-left valign-top">  
</td><td class="tableblock halign-left valign-top">Statusanschluss der Event Console *(optional aktivierbar)*

</td></tr></tbody></table>

##### Zentralinstanz

Prinzipiell ist verteiltes Monitoring ohne weitere Hilfsmittel wie Tunneling bereits möglich, wenn die Zentralinstanz eine Verbindung zu den Remote-Instanzen herstellen kann. Die Erreichbarkeit der Zentralinstanz durch Remote-Instanzen ist nur für optionale Funktionalitäten (z.B. Agentenbäckerei) erforderlich.

Die folgenden Ports auf dem als Zentralinstanz arbeitenden Checkmk-Server müssen durch die zugeordneten Remote-Instanzen erreichbar sein, um die beschriebene Funktionalität bereitzustellen.

<table class="table-responsive table-bordered table tableblock frame-all grid-all spread" id="bkmrk-port-protokoll-bezei-2"><thead><tr><th class="tableblock halign-left valign-top">Port</th><th class="tableblock halign-left valign-top">Protokoll</th><th class="tableblock halign-left valign-top">Bezeichnung</th><th class="tableblock halign-left valign-top">Ergänzende Informationen</th></tr></thead><tbody><tr><td class="tableblock halign-left valign-top">80

</td><td class="tableblock halign-left valign-top">TCP

</td><td class="tableblock halign-left valign-top">Hypertext Transfer Protocol (HTTP)

</td><td class="tableblock halign-left valign-top">Für [Agentenbäckerei](https://docs.checkmk.com/latest/de/glossar.html#agent_bakery) und [dynamische Host-Konfiguration](https://docs.checkmk.com/latest/de/dcd.html)

</td></tr><tr><td class="tableblock halign-left valign-top">443

</td><td class="tableblock halign-left valign-top">TCP

</td><td class="tableblock halign-left valign-top">Hypertext Transfer Protocol over SSL/TLS (HTTPS)

</td><td class="tableblock halign-left valign-top">Für Agentenbäckerei und dynamische Host-Konfiguration, mit Transportverschlüsselung

</td></tr><tr><td class="tableblock halign-left valign-top">6555

</td><td class="tableblock halign-left valign-top">TCP

</td><td class="tableblock halign-left valign-top">Benachrichtigungs-Spooler (*notification spooler*)

</td><td class="tableblock halign-left valign-top">Der [Benachrichtigungs-Spooler](https://docs.checkmk.com/latest/de/distributed_monitoring.html#notifications) dient dem zentralen Versand von Benachrichtigungen, hier beim Verbindungsaufbau durch eine Remote-Instanz *(optional aktivierbar)*

</td></tr></tbody></table>

#### Checkmk Appliance Cluster

Sie können zwei Checkmk-Appliances ("Knoten") zu einem [Cluster](https://docs.checkmk.com/latest/de/appliance_cluster.html) zusammenschließen. Dabei werden alle Konfigurationen und Daten zwischen den beiden Geräten abgeglichen.

Die folgenden Ports müssen von beiden Knoten aus ein- und ausgehend freigegeben sein.

<table class="table-responsive table-bordered table tableblock frame-all grid-all spread" id="bkmrk-port-protokoll-bezei-3"><thead><tr><th class="tableblock halign-left valign-top">Port</th><th class="tableblock halign-left valign-top">Protokoll</th><th class="tableblock halign-left valign-top">Bezeichnung</th><th class="tableblock halign-left valign-top">Ergänzende Informationen</th></tr></thead><tbody><tr><td class="tableblock halign-left valign-top">3121

</td><td class="tableblock halign-left valign-top">TCP

</td><td class="tableblock halign-left valign-top">Pacemaker

</td><td class="tableblock halign-left valign-top">Pacemaker Cluster resource manager

</td></tr><tr><td class="tableblock halign-left valign-top">4321

</td><td class="tableblock halign-left valign-top">UDP

</td><td class="tableblock halign-left valign-top">Corosync

</td><td class="tableblock halign-left valign-top">Corosync Cluster Engine

</td></tr><tr><td class="tableblock halign-left valign-top">4323

</td><td class="tableblock halign-left valign-top">UDP

</td><td class="tableblock halign-left valign-top">Corosync

</td><td class="tableblock halign-left valign-top">Corosync Cluster Engine

</td></tr><tr><td class="tableblock halign-left valign-top">7789

</td><td class="tableblock halign-left valign-top">TCP

</td><td class="tableblock halign-left valign-top">DRBD

</td><td class="tableblock halign-left valign-top">Synchronisierung der DRDB (Distributed Replicated Block Device)

</td></tr></tbody></table>

### Firewall Regeln (wenn eine Firewall Konfiguriert ist, hinzufügen, hier am Beispiel am CheckMK-Server nicht Agent)  


#### FIrewalld

Installation:

```
#Install
yum install firewalld   # für RHEL-basierte Systeme
apt-get install firewalld  # für Debian-basierte Systeme
#Add Systemstart
systemctl start firewalld
systemctl enable firewalld
```

Folgende Regeln hinzufügen, falls die Firewall auch gerade erst installiert wurde habe Ich Port 22 (SSH) einfach mit zugepackt, weil sonst sind wir gleich ausgesperrt. Das Permanent bedeutet das auch nach einem neustart des Servers die Regeln wieder geldaen werden sollen

```
firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --zone=public --add-port=6559/udp --permanent
firewall-cmd --zone=public --add-port=514/udp --permanent
firewall-cmd --zone=public --add-port=514/tcp --permanent
firewall-cmd --zone=public --add-port=162/udp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=22/tcp --permanent
```

Alle Regeln auflisten lassen

```
firewall-cmd --list-all
Output
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0 eth1
  sources: 
  services: cockpit dhcpv6-client http https ssh
  ports: 3000/tcp 8005/tcp 5665/tcp 8000/tcp 6559/udp 514/udp 514/tcp 162/udp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
```

Nun ein relaod der Firewall durchführen

```
firewall-cmd --reload
```

#### ufw Firewall  


Install.

```
#Install
apt-get install ufw   # für Debian-basierte Systeme
yum install ufw      # für RHEL-basierte Systeme
#Enable at Systemstart
ufw enable
```

Regeln hinzufügen

```
ufw allow 8000/tcp
ufw allow 6559/udp
ufw allow 514/udp
ufw allow 514/tcp
ufw allow 162/udp
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 22/tcp
```