web-dev-qa-db-fra.com

firewalld ne fonctionne pas dans CentOS 8: aucune règle n'est créée dans iptables

J'ai récemment mis à niveau une installation propre de CentOS 7 vers CentOS 8 à l'aide de ce tutoriel:

https://www.tecmint.com/upgrade-centos-7-to-centos-8/

Je n'avais aucun logiciel supplémentaire installé, seulement l'installation de base. Après la mise à niveau, la première chose que j'ai essayé de faire était d'ouvrir uniquement les portes à SSH et HTTP, j'ai donc activé et démarré firewalld:

systemctl enable firewalld
systemctl start firewalld
systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-12-24 11:05:50 -02; 10min ago
     Docs: man:firewalld(1)
 Main PID: 7620 (firewalld)
    Tasks: 2 (limit: 17886)
   Memory: 22.1M
   CGroup: /system.slice/firewalld.service
           └─7620 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid

dez 24 11:05:49 renie.cc systemd[1]: Stopped firewalld - dynamic firewall daemon.
dez 24 11:05:49 renie.cc systemd[1]: Starting firewalld - dynamic firewall daemon...
dez 24 11:05:50 renie.cc systemd[1]: Started firewalld - dynamic firewall daemon.

Ajout des services ssh et http:

firewall-cmd --add-service http
firewall-cmd --add-service http --permanent
firewall-cmd --add-service ssh
firewall-cmd --add-service ssh --permanent
firewall-cmd --add-service ssh
firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: http ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Mais je ne vois aucune règle dans IPTables:

iptables -nvL
Chain INPUT (policy ACCEPT 143 packets, 13998 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 114 packets, 13295 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Même après le redémarrage du serveur, aucune règle n'est créée. Cela pourrait-il être dû à la mise à niveau CentOS 7 → CentOS 8?

Je n'ai pas testé ou utilisé firewalld avant de mettre à niveau ce serveur, mais j'ai d'autres serveurs CentOS 7 qui ont firewalld qui fonctionne.

Y a-t-il un journal que je peux analyser afin de déboguer le problème?

Merci d'avance.

3
Rodrigo Renie

Parce que vous ne voyez aucune règle iptables , cela ne signifie pas firewalld ne fonctionne pas. En fait firewalld est passé à l'utilisation de nftables as backend. Vous pouvez donc retrouver vos règles avec par exemple:

nft list ruleset

Les règles que vous avez ajoutées pour ssh et http seraient probablement dans la chaîne filter_IN_public_allow:

        chain filter_IN_public_allow {
                tcp dport ssh ct state new,untracked accept
                tcp dport http ct state new,untracked accept
        }

Vous trouverez probablement également des règles vides iptables (mais considérées comme nftables règles) dans la sortie de nft list ruleset, car iptables utilise l'API du noyau de compatibilité nftables :

# iptables -V
iptables v1.8.2 (nf_tables)

lien utile: Redhat - Firewalld: L'avenir est nftables

1
A.B