GNU/Linux >> Belajar Linux >  >> Linux

Masalah Membuka Port Firewalld di CentOS/RHEL 8

Masalahnya

Kami telah membuka port baru atau menambahkan layanan di firewalld gagal tanpa kesalahan. Di server, port 80 dibuka sesuai output di bawah ini:

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

Tetapi ketika mencoba terhubung dari host lain, kesalahan di bawah ini dilaporkan:

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

Solusinya

Secara default, backend firewalld dikonfigurasikan ke nftables. Aturan langsung yang digunakan oleh firewalld dapat memengaruhi cara aturan diterapkan:

Aturan langsung bahwa paket ACCEPT tidak benar-benar menyebabkan paket segera diterima oleh sistem. Paket-paket tersebut masih tunduk pada aturan nftables firewalld. Untuk aturan langsung yaitu DROP paket, paket langsung di-drop. Jika aturan DROP atau REJECT umum dikonfigurasi sebagai aturan langsung terakhir, itu akan menyebabkan semua aturan nftables diabaikan.

Baris terakhir pada perintah berikut adalah salah satu contohnya:

# 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

Itu juga dapat diverifikasi bahwa itu dikonfigurasi dalam aturan langsung 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>

Verifikasi apakah aturan langsung benar-benar diperlukan, mungkin aturan penting sudah dikonfigurasi dalam aturan "normal". Untuk menghapus aturan langsung sepenuhnya, hapus file /etc/firewalld/direct.xml .

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

Jika aturan langsung diperlukan, hapus aturan sumber daya terakhir, dengan REJECT, dalam aturan langsung dan konfigurasikan di nftables/firewalld.


Linux
  1. Cara Mengubah Port Default Apache Pada RHEL/CentOS 7

  2. CentOS / RHEL :Bagaimana cara mengetahui apakah port jaringan terbuka atau tidak?

  3. CentOS / RHEL :Bagaimana cara menambahkan aturan iptable

  1. CentOS / RHEL 7 :Cara beralih ke iptables dari firewalld

  2. CentOS / RHEL 7 :Panduan pemula untuk firewalld

  3. CentOS / RHEL :panduan pemecahan masalah iptables

  1. CentOS / RHEL 7 :Bagaimana cara membuka port di firewall dengan firewall-cmd?

  2. CentOS / RHEL 7 :Cara membuka port Firewall untuk server Samba menggunakan FirewallD

  3. Cara Membuka Port Di CentOS / RHEL 7