GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Problem beim Öffnen eines Firewalld-Ports in CentOS/RHEL 8

Das Problem

Wir haben einen neuen Port geöffnet oder einen Dienst in Firewalld hinzugefügt, der ohne Fehler fehlschlägt. Im Server wird Port 80 gemäß der folgenden Ausgabe geöffnet:

# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens3
  sources:
  services: cockpit dhcpv6-client ssh
  ports: 80/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Wenn Sie jedoch versuchen, eine Verbindung von einem anderen Host herzustellen, wird der folgende Fehler gemeldet:

$ nc -v [SERVER_IP_ADDRESS] 80
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: No route to host.

Die Lösung

Standardmäßig ist das Firewalld-Backend auf nftables konfiguriert. Direkte Regeln, die von firewalld verwendet werden, können sich auf die Art und Weise auswirken, wie die Regeln angewendet werden:

Direkte Regeln, die Pakete AKZEPTIEREN, bewirken nicht, dass die Pakete sofort vom System akzeptiert werden. Diese Pakete unterliegen weiterhin dem nftables-Regelsatz von firewalld. Bei direkten Regeln, die Pakete verwerfen, werden die Pakete sofort verworfen. Wenn eine allgemeine DROP- oder REJECT-Regel als letzte der direkten Regeln konfiguriert ist, werden alle nftables-Regeln ignoriert.

Die letzte Zeile im folgenden Befehl ist ein Beispiel:

# iptables -vnxL INPUT
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
    2133   309423 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
       0        0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
      27     1620 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
      10      524 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
      93     4740 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Es kann auch überprüft werden, ob es in den direkten Firewall-Regeln konfiguriert ist:

# grep -B4 INPUT /etc/firewalld/direct.xml
<?xml version="1.0" encoding="utf-8"?>
<direct>

    <passthrough ipv="ipv4">-N BareMetalInstanceServices</passthrough>
    <passthrough ipv="ipv4">-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT</passthrough>
    <passthrough ipv="ipv4">-A INPUT -p icmp -j ACCEPT</passthrough>
    <passthrough ipv="ipv4">-A INPUT -i lo -j ACCEPT</passthrough>
    <passthrough ipv="ipv4">-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT</passthrough>
    <passthrough ipv="ipv4">-A INPUT -j REJECT --reject-with icmp-host-prohibited</passthrough>

Überprüfen Sie, ob direkte Regeln wirklich notwendig sind, wahrscheinlich sind die wichtigen Regeln bereits in „normalen“ Regeln konfiguriert. Um direkte Regeln vollständig zu entfernen, entfernen Sie die Datei /etc/firewalld/direct.xml .

# mv /etc/firewalld/direct.xml /etc/firewalld/direct.xml_bck

Wenn direkte Regeln benötigt werden, entfernen Sie die letzte Ressourcenregel mit REJECT in den direkten Regeln und konfigurieren Sie sie in nftables/firewalld.


Linux
  1. So ändern Sie den Standardport von Apache unter RHEL/CentOS 7

  2. CentOS / RHEL 6:So speichern Sie iptables-Regeln

  3. CentOS / RHEL :Wie finde ich heraus, ob ein Netzwerkport offen ist oder nicht?

  4. CentOS / RHEL :So fügen Sie iptable-Regeln hinzu

  5. CentOS / RHEL:Anleitung zur Fehlerbehebung bei iptables

RHEL 8 / CentOS 8 öffnen FTP-Port 21 mit Firewalld

So stoppen/starten Sie die Firewall unter RHEL 8 / CentOS 8

So installieren und verwenden Sie Firewalld in CentOS / RHEL

So konfigurieren Sie FirewallD in RHEL, CentOS und Fedora

Öffnen eines Ports unter Linux

So migrieren Sie CentOS/RHEL 6-iptables-Regeln auf CentOS/RHEL 7-Firewalld