Artikel weiterleiten
Artikel editieren
Druckansicht
FAQ #3331

Ich habe Probleme mit meinen Servern oder dem Cloud Panel. Was kann ich tun?

Cloud Server: Hilfe im Problemfall

In diesem Artikel wird erklärt, wie Sie bei einem Ausfall Ihres Cloud Servers Informationen über Ihr System und über mögliche Fehlerquellen sammeln können.

Fehler identifizieren und beheben, wenn der Server ausfällt

Wenn Ihr Server nicht mehr erreichbar ist, versuchen Sie bitte zuerst, mögliche Fehlerquellen Schritt für Schritt auszuschließen, um die Ursache schnellst möglich zu identifizieren und zu beseitigen. Gehen Sie hierbei wie folgt vor:

Neustart durchführen und Verbindung zum Server prüfen

Firewall-Richtlinie und -regeln prüfen

  • Prüfen Sie im Cloud Panel im Bereich Infrastruktur > Server, welche Firewall-Richtlinie dem Server zugewiesen ist.
  • Prüfen Sie anschließend im Bereich Netzwerk > Firewall-Richtlinie, ob in der zugewiesenen Firewall-Richtlinie die erforderlichen Ports freigegeben wurden. Weisen Sie dem Server ggf. die korrekte Firewall-Richtlinie zu oder erstellen Sie in der zugewiesenen Firewall-Richtlinie die erforderlichen Portfreigaben, wie z.B. Port 22 für SSH oder Port 3389 für RDP.
  • Versuchen Sie erneut, via SSH bzw. Remote Desktop (Microsoft Windows Server) eine Verbindung zum Server herzustellen.

Portscan durchführen

Wenn Sie nach der Prüfung und ggf. der Anpassung der Firewall-Richtlinie im Cloud Panel keine Verbindung zum Server herstellen können, führen Sie einen Portscan durch. Prüfen Sie hierbei, ob der Port 22 (Linux) oder der Port 3389 (Microsoft Windows) freigeschaltet sind.

Um einen Portscan durchzuführen, geben Sie auf Ihrem lokalen Computer den entsprechenden Befehl im Terminal (Linux) oder in der Powershell (Microsoft Windows) ein:

Linux:
nc -v IP-ADRESSE-DES-SERVERS PORTNUMMER
Beispiel:
[root@localhost ~]# nc -v 192.168.1.1 22
Microsoft Windows
Test-NetConnection IP-ADRESSE-DES-SERVERS -p PORTNUMMER
Beispiel
[root@localhost ~]# Test-NetConnection 192.168.1.1 -Port 22

Wenn die erforderlichen Ports auch nach der Prüfung und ggf. der Anpassung der Firewall-Richtlinien gesperrt sind, ist eine Prüfung der Firewall-Einstellungen in Ihrem Betriebssystem erforderlich.

Log-Dateien prüfen

Wenn Sie eine Verbindung zu Ihrem Server herstellen können, prüfen Sie die Log-Dateien Ihres Servers. Berücksichtigen Sie bei der Fehlersuche auch Updates und Konfigurationsänderungen, die eventuell vor Kurzem durchgeführt worden sind.
Wenn Sie keine Verbindung zu Ihrem Server herstellen können, fahren Sie mit dem nächsten Schritt fort.

Microsoft Windows Server

Wir empfehlen Ihnen, zur Auswertung der Log-Dateien den Event Viewer zu verwenden. Um diesen zu öffnen, drücken Sie die Tastenkombination Win + R. Geben Sie anschließend den Befehl eventvwr ein und drücken Sie Enter.

Klicken Sie in der Navigationsleiste links auf Windows-Protokolle und prüfen Sie anschließend die folgenden Protokolle: Application, System und Security

Linux

Speichern Sie die Datei /var/log/warn als Duplikat im Verzeichnis /tmp. Geben Sie hierzu den folgenden Befehl ein:
cp /var/log/warn /tmp
Prüfen Sie anschließend die Datei.

Um die Meldungen, die während des letzten Bootvorgangs protokolliert wurden, nach Einträgen zu durchsuchen, können Sie die folgenden Befehle verwenden:

Dieser Befehl durchsucht die Boot-Logdatei nach Zeilen, in denen die Zeichenfolgen Erro oder erro enthalten sind.
dmesg | grep [Ee]rro

Dieser Befehl durchsucht die Boot-Logdatei nach Zeilen, in denen die Zeichenfolgen Fault oder fault enthalten sind.
dmesg | grep [Ff]ault

Dieser Befehl durchsucht die Boot-Logdatei nach Zeilen, in denen die Zeichenfolgen Defect oder defect enthalten sind.
dmesg | grep [Dd]efect

Dieser Befehl durchsucht die Boot-Logdatei nach Zeilen, in denen die Zeichenfolgen Bad oder bad enthalten sind.
dmesg | grep [Bb]ad

Dieser Befehl durchsucht die Boot-Logdatei nach Zeilen, in denen die Zeichenfolgen Fail oder fail enthalten sind.
dmesg | grep [Ff]ail

Dieser Befehl durchsucht die Boot-Logdatei nach Zeilen, in denen die Zeichenfolgen Incorrect oder incorrect enthalten sind.
dmesg | grep [Ii]ncorrect

Dieser Befehl speichert alle Meldungen, die beim letzten Bootvorgang protokolliert worden sind, im Verzeichnis /tmp.
dmesg > /tmp/dmesg
/var/log/messages und /var/log/syslog
In Ubuntu und Debian werden in der Datei /var/log/messages fast alle Ereignisse mitprotokolliert. Es handelt sich um das System-Logbuch von Linux. Diese Datei zeichnet eine Vielzahl von Ereignissen auf, wie z.B. Fehlermeldungen des Systems, Änderungen in der Netzwerkkonfiguration etc. In dieser Logdatei ist jeder Eintrag mit einem Datum und der jeweiligen Uhrzeit versehen.

In CentOS sind diese Information in der Datei /var/log/syslog aufgeführt.
kern.log
Meldungen des Kernels finden Sie in der Datei kern.log. Diese Datei enthält z. B. auch ältere Meldungen und Meldungen, die aus den iptables-Regeln heraus entstehen. Die Datei kern.log finden Sie im Verzeichnis /var/log.

Konfiguration des Servers prüfen

Wenn Sie keine Verbindung zum Server herstellen können, loggen Sie sich mittels der KVM-Konsole auf dem Server ein. Prüfen Sie anschließend die Firewall-Konfiguration und die Netzwerkeinstellungen des Servers.

Firewall-Konfiguration und Netzwerkeinstellungen prüfen (Linux)

In diesem Artikel werden die wichtigsten Befehle genannt, die Sie zur Prüfung der Netzwerkkonfiguration und der Firewall-Konfiguration benötigen.

Portscan durchführen

Um einen Portscan durchzuführen, können Sie das Programm netcat verwenden. Netcat (nc), ist ein universelles Kommandozeilenwerkzeug. Es kann im Terminal oder in Skripten für die Kommunikation über TCP- und UDP-Netzwerkverbindungen (Internet Protocol Version 4 und Version 6) verwendet werden.

Das Programm netcat ist ein Bestandteil von jeder Ubuntu-Installation, kann jedoch ggf. über das Paket netcat-openbsd installiert werden.

Um netcat auf einem Server mit der Distribution CentOS zu installieren, geben Sie den folgenden Befehl ein:
CentOS 7: [root@localhost ~]# yum install nc.x86_64
CentOS 8: [root@localhost ~]# dnf install nmap

Um mit netcat einen Portscan durchzuführen, geben Sie den folgenden Befehl ein:
nc -v IP-ADRESSE-DES-SERVERS PORTNUMMER
Beispiel:
[root@localhost ~]# nc -v 192.168.1.1 22

Netzwerkdienste prüfen

Um eine Liste der lauschenden Netzwerkdienste, Deamons und Programme aufzurufen, geben Sie den folgenden Befehl ein:
netstat -tulpen
Anschließend können Sie prüfen, ob die betreffenden Netzwerkdienste, Deamons und Programme aktiv sind und auf dem korrekten Port lauschen. Ferner können Sie nach der Eingabe des Befehls feststellen, ob der benötigte Port freigeschaltet werden muss.
Beispiel:
[root@localhost ~]# netstat -tulpen
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name
tcp        0      0 0.0.0.0:5355            0.0.0.0:*               LISTEN      193        27635      1368/systemd-resolv
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      0          29477      1582/sshd
tcp6       0      0 :::5355                 :::*                    LISTEN      193        27638      1368/systemd-resolv
tcp6       0      0 :::22                   :::*                    LISTEN      0          29479      1582/sshd
udp        0      0 0.0.0.0:5355            0.0.0.0:*                           193        27634      1368/systemd-resolv
udp        0      0 127.0.0.53:53           0.0.0.0:*                           193        27640      1368/systemd-resolv
udp        0      0 0.0.0.0:68              0.0.0.0:*                           0          27510      1314/dhclient
udp        0      0 127.0.0.1:323           0.0.0.0:*                           0          25505      1174/chronyd
udp6       0      0 :::5355                 :::*                                193        27637      1368/systemd-resolv
udp6       0      0 ::1:323                 :::*                                0          25506      1174/chronyd

Netzwerkonfiguration prüfen

Um die konfigurierten Interfaces anzuzeigen, geben Sie den Befehl ip addr ein. Nach der Eingabe des Befehls wird Ihnen der Status von jedem Interface angezeigt:
Beispiel:
root@localhost:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:00:f1:5b brd ff:ff:ff:ff:ff:ff
    inet 217.160.173.123/32 brd 217.160.173.123 scope global ens192
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fe00:f15b/64 scope link
       valid_lft forever preferred_lft forever
Ein deaktiviertes Interface können Sie mit dem folgenden Befehl wieder aktivieren:
sudo ifup NAME_DES_INTERFACES
Beispiel:
[root@localhost ~]# sudo ifup ens192
Wenn dieser Befehl fehlschlägt, ist es möglich, dass sich das Interface in einem Zustand befindet, das dem Befehlsskript unbekannt ist. Geben Sie in diesem Fall den gleichen Befehl mit dem Parameter --force ein:
sudo ifup --force NAME_DES_INTERFACES
Beispiel:
[root@localhost ~]# sudo ifup --force ens192
Prüfen Sie anschließend, ob Sie eine verschlüsselte Netzwerkverbindung zu Ihrem Server herstellen können. Wenn dies nicht möglich ist, prüfen Sie die Netzwerkkonfiguration des Servers.

Öffnen Sie zu diesem Zweck die unten aufgeführten Konfigurationsdateien mit dem Editor vi. Prüfen und editieren Sie die Einstellungen und führen Sie anschließend ggf. einen Neustart des Netzwerks durch, um die Änderungen an der Netzwerkkonfiguration zu übernehmen:
Ubuntu: /etc/network/interfaces
CentOS 7 und CentOS 8: /etc/sysconfig/network-scripts/

Um einen Neustart des Netzwerks durchzuführen, geben Sie den folgenden Befehl bzw. die folgenden Befehle ein:
Ubuntu

[root@localhost ~]# /etc/init.d/networking restart
CentOS 7
[root@localhost ~]# /etc/init.d/network restart
CentOS 8
[root@localhost ~]# nmcli networking off
[root@localhost ~]# nmcli networking on

IP-Routing-Tabelle mit route anzeigen und konfigurieren

Mit dem Programm route können Sie die IP-Routing-Tabelle anzeigen und konfigurieren. Geben Sie hierzu den folgenden Befehl ein:
[root@localhost ~]# route
Nach der Eingabe des Befehls werden z.B. die folgenden Informationen angezeigt:
[root@localhost home]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    100    0        0 ens192
gateway         0.0.0.0         255.255.255.255 UH    100    0        0 ens192
169.254.169.254 gateway         255.255.255.255 UGH   100    0        0 ens192
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
localhost       0.0.0.0         255.255.255.255 UH    100    0        0 ens192

Firewall-Konfiguration prüfen (CentOS 6, CentOS 7 und Ubuntu)

Im Linux-Kernel ist standardmäßig ein Paketfilter integriert, der durch Module des Software-Pakets Netfilter bereitgestellt wird. Um diesen zu konfigurieren, ist ein zusätzliches Programm erforderlich.

Als Administrator können Sie das Programm iptables verwenden, um Regeln zu erstellen, zu verändern oder zu löschen. iptables ist ein Programm zur Konfiguration der Tabellen (tables), die durch die Firewall im Linux-Kernel bereitgestellt werden.

Die Einstellungen die Sie mit iptables vornehmen, gehen beim Systemneustart verloren. Mithilfe der Tools iptables-save und iptables-restore können Sie die angelegten Regeln speichern und wiederherstellen.

Stellen Sie bei jeder Änderung von iptables sicher, dass die für die Erreichbarkeit des Servers erforderlichen Ports wie z.B. Port 22 nicht gesperrt werden.

Mit einem Init-Script erfolgt dies automatisch im Lauf des Bootprozesses. iptables ist auf das Protokoll IPv4 beschränkt. Für die weiteren Protokolle gibt es entsprechende Varianten wie z.B. ip6tables für IPv6 oder ebtables für Ethernet-Pakete, die ebenfalls im Kernel-Modul enthalten sind.

Unter Linux ist iptables für gewöhnlich bereits vorinstalliert. iptables setzt erweiterte Systemprivilegien voraus und kann nur als Root oder mit Administrator-Rechten ausgeführt werden.

Die Paketprüfung und die mit iptables zu erstellenden Filterregeln sind dreistufig aufgebaut. Es gibt Tabellen (tables),  "Chains" (Ketten) und Regeln (rules).

Die mit dem Programm geladenen und zuvor vom Kernel erzeugten Tabellen (tables) enthalten Ketten (chains) von Regeln (rules), die definieren, wie eingehende und ausgehende Datenpakete behandelt werden sollen. Diese Pakete werden innerhalb einer Kette von Regel zu Regel weitergereicht. Jede Regel kann eine Aktion auslösen (jump target) oder einen Wechsel in eine andere Kette bewirken (goto chain).
Folgende Aktionen können ausgelöst werden:

  • ACCEPT: Das Paket wird angenommen.
  • DROP: Das Paket wird verworfen.
  • QUEUE: Verschiebt das Paket in die Benutzerprozesse; setzt einen Vermittler (queue handler) voraus, der die Pakete an eine Anwendung weiterleitet.
  • RETURN: Das Paket wird in die vorangegangene Kette zurückgeschickt, wenn es sich um eine benutzerdefinierte Kette handelt. In Standardketten wird die Richtlinie (policy) der Kette ausgeführt. Ohne Konfiguration wird standardmäßig die Aktion ACCEPT ausgeführt.

Tabellen

In den Tabellen werden Filterregeln zu Gruppen zusammengefasst. Diese werden nach der grundsätzlichen Aufgabe unterteilt. Es gibt vier wichtige Tabellen, in denen Sie Filterregeln hinterlegen können:

  • filter: Dies ist die Standardtabelle.  
  • nat: Wird verwendet, um Pakete zu ändern, die eine neue Verbindung herstellen und für die Adressumsetzung (Network Address Translation, NAT) verwendet werden.
  • mangle: Diese Tabelle wird in der Regel für bestimmte Arten von Paketmanipulation eingesetzt.
  • raw: Diese Tabelle wird in der Regel eingesetzt, um Ausnahmen vom Connection Tracking in Kombination mit dem NOTRACK Target zu definieren.

Chains
Jede Tabelle enthält verschiedene Chains. Die Chains legen fest, wann ein Paket geprüft wird. Es gibt folgende Chains:

CHAIN TABELLE BESCHREIBUNG
INPUT filter, mangle Wird auf alle Pakete angewendet, die an einen lokalen Prozess gerichtet sind.
OUTPUT filter, nat, mangle, raw Wird auf alle Pakete angewendet, die von einem lokalen Prozess stammen.
FORWARD filter, mangle Wird auf alle Pakete angewendet, die geroutet werden.
PREROUTING nat, mangle, raw Wird auf alle Pakete angewendet, bevor diese geroutet werden.
POSTROUTING nat, mangle Wird auf alle Pakete angewendet, nachdem diese geroutet wurden.

In den Tabellen und Chains werden die Filterregelsätze festgelegt. Dies geschieht über einen Aufruf von iptables im Terminal.

Eine detaillierte Übersicht über die Funktionsweise der Paketfilter-Software bietet die Man-Page. Diese können Sie mit dem folgenden Befehl aufrufen:
[root@localhost ~]# man iptables
Darüber hinaus finden Sie auf der folgenden Seite weitere Informationen:
http://www.netfilter.org
Um das Standardverhalten von iptables anzuzeigen, geben Sie den folgenden Befehl ein:
[root@localhost ~]# iptables –L
Um zu prüfen, welche Filterregeln bereits hinterlegt sind, geben Sie die folgenden Befehle ein:
[root@localhost ~]# sudo iptables -t filter –L
[root@localhost ~]# sudo iptables -t nat –L
[root@localhost ~]# sudo iptables -t mangle -L
[root@localhost ~]# sudo iptables -t raw –L
Um alle Regeln zu löschen, geben Sie den folgenden Befehl ein:
[root@localhost ~]# iptables –F

Weitere wichtige Befehle
Im Folgenden sind weitere wichtige Befehle für iptables aufgeführt.

  • Eine neue Kette erstellen:
    sudo iptables -N NAME_DER_KETTE
    Beispiel:
    [root@localhost ~]# sudo iptables -N Test
  • Eine Kette löschen:
    sudo iptables -X NAME_DER_KETTE
    Beispiel:
    [root@localhost ~]# sudo iptables -X Test
  • Regeln der Kette mit dem Namen Test auflisten:
    sudo iptables -L NAME_DER_KETTE
    Beispiel:
    [root@localhost ~]# sudo iptables -L Test
  • Regeln der Kette Test löschen:
    sudo iptables –F NAME_DER_KETTE
    Beispiel:
    [root@localhost ~]# sudo iptables -F Test
  • Policy für die Kette festlegen:
    Im unten aufgeführten Beispiel wird das Paket automatisch angenommen, wenn die Filterregeln der Kette INPUT nicht greifen.
    [root@localhost ~]# sudo iptables -P INPUT ACCEPT
  • Eine neue Regel an eine ausgewählte Kette hängen:
    sudo iptables -A NAME_DER_KETTE -s IP-ADRESSE -j DROP
  • Im unten aufgeführten Beispiel wird die Regel, Datenpakete von der IP-Adresse 217.160.172.48 zu verwerfen, zur Kette Test hinzugefügt.
    [root@localhost ~]# sudo iptables -A Test -s 217.160.172.48 -j DROP
  • Angegebene Regel der ausgewählten Kette löschen:
    sudo iptables -D NAME_DER_KETTE -s IP-ADRESSE -j DROP
    Beispiel:
    [root@localhost ~]# sudo iptables -D Test -s 217.160.172.48 -j DROP
  • Die neue Regel an die ausgewählte Position der Kette einfügen:
    sudo iptables -I NAME_DER_KETTE 1 -s IP-ADRESSE -j DROP
    In diesem Beispiel wird die Kette an Position 1 eingefügt.
    Beispiel:
    [root@localhost ~]# sudo iptables -I Test 1 -s 217.160.172.48 -j DROP
  • Regel der ausgewählten Kette unter Angabe der Position löschen:
    sudo iptables -D NAME_DER_KETTE 1
    Beispiel:
    [root@localhost ~]# sudo iptables -D Test 1

Ergebnisse speichern
Um die Einstellungen die Sie mit iptables vornehmen, dauerhaft in einer Datei zu speichern, geben Sie den folgenden Befehl ein:

  • Ubuntu: sudo iptables-save > /etc/iptables/rules.v4
  • CentOS iptables-save > /etc/sysconfig/iptables

Um die Datei wieder für IPv4 zu laden, geben Sie den folgenden Befehl ein:

  • Debian/Ubuntu: iptables-restore < /etc/iptables/rules.v4
  • CentOS: iptables-restore < /etc/sysconfig/iptables

Um die Regeln automatisch zu laden, können Sie die folgenden Methoden nutzen:

  • Ubuntu: Mit iptables-persistent werden die Firewall-Regeln in Konfigurationsdateien unter /etc/iptables/ abgelegt. Diese werden beim Serverstart wieder geladen und werden somit erneut aktiviert.  Zu diesem Zweck müssen die Regeln in der Datei /etc/iptables/rules.v4 für IPv4 gespeichert werden. Um iptables-persistent zu nutzen, müssen Sie das folgende Paket installieren:
    apt-get install iptables-persistent
  • CentOS 7
    Für das dauerhafte Speichern der iptables-Rules muss der Dienst iptables-services installiert werden.
    yum install -y iptables-services
    Um iptables weiterhin verwenden zu können, muss der Dienst firewalld zunächst deaktiviert werden.
    systemctl stop firewalld
    systemctl mask firewalld
    Anschließend muss der Dienst aktiviert werden.
    systemctl enable iptables.service
    systemctl -t service | grep iptables
    Die Regeln werden für IPv4 in der Datei /etc/sysconfig/iptables gespeichert.

Für das Speichern der aktuellen Rules kann auch das folgende Skript verwendet werden:
[root@localhost ~]# /usr/libexec/iptables/iptables.init save

Prüfen Sie nach der Konfiguration von iptables und dem dauerhaften Speichern der Regeln, ob diese nach dem Neustart des Servers geladen werden.

Die Regeln können Sie sich nach dem Neustart mit dem folgenden Befehl anzeigen lassen:
iptables -L
Alternativ können Sie den folgenden Befehl eingeben, um den Status von ip-tables zu prüfen:
systemctl status iptables.service

Firewall-Konfiguration prüfen (CentOS 8)

CentOS 8 richtet Firewalls standardmäßig mit der nftables-Infrastruktur ein und verwendet nftables als Standard-Backend.

Standardmäßig erstellt nftables keine Tabellen und Ketten wie sein Vorgänger iptables. Als Administrator erstellen Sie zuerst die Tabellen und ergänzen diese um Chains, die sich als Netfilter-Hooks in den Linux-Kernel einklinken. Anschließend erstellen für die Chains die passenden Rules.

Weitere wichtige Unterschiede zwischen nftables und iptables sind:

  • Tabellen und Ketten sind vollständig konfigurierbar
  • Es gibt zwischen Matches und Targets keine Unterscheidung mehr.
  • Sie können mehrere Aktionen in einer einzigen Regel angeben.
  • Bessere Unterstützung für dynamische Regelsatz-Updates.

Weitere Informationen zu den Unterschieden zwischen iptables und nftables finden Sie hier:
https://wiki.nftables.org/wiki-nftables/index.php/Main_differences_with_iptables
Syntax der Befehle
Die grundlegenden Befehle für Tabellen, Chains und Regeln sind stets wie folgt aufgebaut:
nft <add|list|flush|delete> <table|chain|rule> <WeitereOptionen>
Tabelle erstellen
Um eine Tabelle und ein Regelset zu erstellen, geben Sie den folgenden Befehl ein:
[root@localhost ~]# nft add table inet meine_tabelle
nft list ruleset
table inet meine_tabelle {
}
Um eine Kette zu erstellen, geben Sie den unten stehenden Befehl ein. Beim Erstellen der Kette müssen Sie angeben, zu welcher Tabelle die Chain gehört. Ferner müssen Sie den Typ, den Hook und die Priorität definieren.
nft add chain inet meine_tabelle meine_filter_chain { type filter hook input priority 0 \; }

Der Backslash (\) ist notwendig, damit die Shell das Semikolon nicht als das Ende des Befehls interpretiert.

Chains können auch ohne Angabe eines Hooks erstellt werden. Chains, die Sie ohne Angabe eines Hooks erstellen, sind äquivalent zu den benutzerdefinierten iptables-Ketten. Regeln können die jump- oder goto-Anweisungen verwenden, um Regeln in der Kette auszuführen. Dies ist nützlich, um Regeln logisch zu trennen oder um eine Teilmenge von Regeln gemeinsam zu nutzen, die sonst doppelt vorhanden wären.

 

Eine wesentliche Neuerung bei nftables ist das Konzept der Families: Für die Erstellung von Regeln stellt nft eine Reihe von Adressfamilien bereit. Vordefiniert sind arp (ARP), bridge (vorher von Ebtables bereitgestellt), inet (umfasst IPv4 und IPv6), ip (für IPv4), ip6 (für IPv6) sowie netdev. Alle zueinandergehörenden Tabellen müssen sich in der gleichen Familie befinden. Dies ist vor allem für das Generieren von Tabellen und Ketten relevant.
Um z.B. eine Regel für die Chain zu erstellen, die eine SSH-Verbindung erlaubt, geben Sie den folgenden Befehl ein:
nft add rule adressfamilie meine_tabelle meine_filter_chain tcp dport ssh accept
Beispiel:
[root@localhost ~]# nft add rule inet meine_tabelle meine_filter_chain tcp dport ssh accept

Regeln löschen

Das Löschen von Regeln erfolgt mit Hilfe von Regelhandles. Um eine Regel zu löschen, müssen Sie das Handle der Regel finden, die Sie löschen möchten. Beispiel:
[root@localhost ~]#  nft --handle list ruleset
table inet meine_tabelle { # handle 21
    chain meine_filter_chain { # handle 1
    type filter hook input priority 0; policy accept;
    tcp dport http accept # handle 3
    tcp dport 1234 accept # handle 8
    tcp dport nfs accept # handle 7
    tcp dport ssh accept # handle 2
    }
}
Anschließend verwenden Sie den Handle, um die Regel zu löschen. Geben Sie hierzu folgenden Befehl ein:
nft delete rule [<familie>] <tabelle> <chain> [handle <handle>]
Beispiel:
[root@localhost ~]# nft delete rule inet meine_tabelle meine_filter_chain handle 8
[root@localhost ~]# nft --handle list ruleset
table inet meine_tabelle { # handle 21
    chain meine_filter_chain { # handle 1
    type filter hook input priority 0; policy accept;
    tcp dport http accept # handle 3
    tcp dport nfs accept # handle 7
    tcp dport ssh accept # handle 2
    }
}

Regeln auflisten
Um eine Tabelle aufzulisten, verwenden Sie die folgenden Befehle:
nft list tables [<familie>]
nft list table [<familie >] <name> [-n] [-a]
nft (add | delete | flush) table [<familie >] <name>
Um alle Regeln in einer bestimmten Tabelle aufzurufen, geben Sie den folgenden Befehl ein:
[root@localhost ~]#  nft list table inet meine_tabelle
table inet meine_tabelle {
    chain meine_filter_chain {
        type filter hook input priority 0; policy accept;
        tcp dport http accept
        tcp dport nfs accept
        tcp dport ssh accept
    }
}
Um alle Regeln in einer Chain aufzurufen, geben Sie anschließend den folgenden Befehl ein:
[root@localhost ~]#  nft list chain inet meine_tabelle meine_andere_chain
table inet meine_tabelle {
    chain meine_filter_chain {
        udp dport 12345 log prefix "UDP-12345"
    }
}

Regelset speichern

Mit dem folgenden Befehl können Sie ein Regelset speichern:
nft list ruleset > /root/nftables.conf
Ein Regelset können Sie mit dem folgenden Befehl erstellen:
nft -f /root/nftables.conf
Um den systemd-Dienst zu aktivieren und Ihre Regeln beim Neustart wiederherstellen lassen, geben Sie den folgenden Befehl ein:
systemctl enable nftables
nft list ruleset > /etc/sysconfig/nftables.conf
Weitere Informationen zu nftables finden Sie hier:
https://wiki.nftables.org/wiki-nftables/index.php/Main_Page

Knoppix zur Datenrettung nutzen, wenn ein Zugriff auf das Betriebssystem nicht möglich ist

Wenn ein Zugriff auf das Betriebssystem nicht möglich ist, können Sie Ihren Server mithilfe der Knoppix-DVD booten und die Partitionen einbinden, so dass Sie auf die Daten per SSH oder SFTP zugreifen können. Gehen Sie hierzu wie folgt vor:
Legen Sie im Cloud Panel im Bereich Infrastruktur > Server die Knoppix-DVD ein, führen Sie einen Neustart des Servers durch. Der Server bootet nun mit der Knoppix-DVD. Nach dem Neustart des Servers können Sie anschließend mittels der KVM-Konsole auf Knoppix zugreifen und ein Backup Ihrer Daten erstellen oder die Konfiguration Ihres Servers ändern.

Wenn Ihr Server nicht mit der Knoppix-DVD booten kann oder Sie Probleme mit der Fehlerbehebung haben, wenden Sie bitte sich an Ihren persönlichen Berater.

 

Firewall-Richtlinie und -regeln prüfen

  • Prüfen Sie im Cloud Panel im Bereich Infrastruktur > Server, welche Firewall-Richtlinie dem Server zugewiesen ist.
  • Prüfen Sie anschließend im Bereich Netzwerk > Firewall-Richtlinie, ob in der zugewiesenen Firewall-Richtlinie die erforderlichen Ports freigegeben wurden. Weisen Sie dem Server ggf. die korrekte Firewall-Richtlinie zu oder erstellen Sie in der zugewiesenen Firewall-Richtlinie die erforderlichen Portfreigaben, wie z.B. Port 22 für SSH oder Port 3389 für RDP.
  • Versuchen Sie erneut, via SSH bzw. Remote Desktop (Microsoft Windows Server) eine Verbindung zum Server herzustellen.

Portscan durchführen

Wenn Sie nach der Prüfung und ggf. der Anpassung der Firewall-Richtlinie im Cloud Panel keine Verbindung zum Server herstellen können, führen Sie einen Portscan durch. Prüfen Sie hierbei, ob der Port 22 (Linux) oder der Port 3389 (Microsoft Windows) freigeschaltet sind.

Um einen Portscan durchzuführen, geben Sie auf Ihrem lokalen Computer den entsprechenden Befehl im Terminal (Linux) oder in der Powershell (Microsoft Windows) ein:

Linux:
nc -v IP-ADRESSE-DES-SERVERS PORTNUMMER
Beispiel:
[root@localhost ~]# nc -v 192.168.1.1 22
Microsoft Windows
Test-NetConnection IP-ADRESSE-DES-SERVERS -p PORTNUMMER
Beispiel
[root@localhost ~]# Test-NetConnection 192.168.1.1 -Port 22

Wenn die erforderlichen Ports auch nach der Prüfung und ggf. der Anpassung der Firewall-Richtlinien gesperrt sind, ist eine Prüfung der Firewall-Einstellungen in Ihrem Betriebssystem erforderlich.
×