GNU/Linux >> Znalost Linux >  >> Linux

Problém s otevřením portu brány firewall v CentOS/RHEL 8

Problém

Otevřeli jsme nový port nebo přidali službu v selhání brány firewall bez chyby. Na serveru je port 80 otevřen podle níže uvedeného výstupu:

# 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:

Ale při pokusu o připojení z jiného hostitele je hlášena níže uvedená chyba:

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

Řešení

Ve výchozím nastavení je backend brány firewall nakonfigurován na nftables. Přímá pravidla používaná firewallem mohou ovlivnit způsob použití pravidel:

Přímá pravidla, že přijímá pakety, ve skutečnosti nezpůsobí, že pakety budou systémem okamžitě akceptovány. Tyto pakety stále podléhají sadě pravidel firewallu nftables. Pro přímá pravidla, že DROP pakety, jsou pakety okamžitě zahozeny. Pokud je obecné pravidlo DROP nebo REJECT nakonfigurováno jako poslední z přímých pravidel, způsobí to, že všechna pravidla nftables budou ignorována.

Poslední řádek v následujícím příkazu je jeden příklad:

# 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

Lze také ověřit, že je nakonfigurován v přímých pravidlech brány firewall:

# 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>

Ověřte, zda jsou přímá pravidla skutečně nezbytná, pravděpodobně jsou důležitá pravidla již nakonfigurována v „normálních“ pravidlech. Chcete-li přímá pravidla úplně odstranit, odeberte soubor /etc/firewalld/direct.xml .

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

Pokud jsou potřeba přímá pravidla, odstraňte poslední pravidlo prostředku pomocí REJECT v přímých pravidlech a nakonfigurujte je v nftables/firewalld.


Linux
  1. CentOS / RHEL 7 :Jak přepnout na iptables z firewalld

  2. CentOS / RHEL 7:Průvodce firewallem pro začátečníky

  3. CentOS / RHEL 7 :Jak otevřít port ve firewallu pomocí firewall-cmd?

  1. CentOS / RHEL 7 :Jak otevřít port firewallu pro server Samba pomocí FirewallD

  2. Jak otevřít port v CentOS / RHEL 7

  3. Jak nakonfigurovat firewallové přihlašování v CentOS/RHEL 8

  1. Jak zastavit/zakázat Firewalld na CentOS/RHEL 8

  2. Jak změnit výchozí port Apache na RHEL/CentOS 7

  3. CentOS / RHEL :Jak přidat pravidla iptable