RHEL7/CentOS7 propose un nouveau service de pare-feu firewalld
, qui remplace le iptables service
(qui utilisent tous les deux l'outil iptables
pour interagir avec Netfilter du noyau en dessous).
firewalld
peut être facilement réglé pour bloquer le trafic entrant, mais comme l'a noté Thomas Woerner il y a 1,5 ans "pour le moment, limiter le trafic sortant n'est pas possible avec firewalld d'une manière simple" . Et pour autant que je puisse voir, la situation n'a pas changé depuis. Ou bien? Existe-t-il un moyen de bloquer le trafic sortant avec firewalld
? Sinon, existe-t-il d'autres moyens "standard" (sur la distribution RHEL7) de bloquer le trafic sortant, sauf l'ajout manuel de règles via l'outil iptables
?
Je n'ai trouvé aucune option dans cette belle interface graphique, mais c'est possible via une interface directe
Pour activer uniquement le port sortant 80:
firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p tcp -m tcp --dport=80 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -j DROP
Cela l'ajoutera aux règles permanentes, pas aux règles d'exécution.
Vous devrez recharger les règles permanentes pour qu'elles deviennent des règles d'exécution.
firewall-cmd --reload
afficher des règles permanentes
firewall-cmd --permanent --direct --get-all-rules
pour afficher les règles d'exécution
firewall-cmd --direct --get-all-rules
Après avoir posé la même question moi-même, et avec quelques bricolages, j'ai rassemblé quelques règles de Nice pour restreindre le trafic sortant aux requêtes HTTP/HTTPS et DNS:
Autoriser les connexions établies:
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -m state --state ESTABLISHED,RELATED -j ACCEPT
Autoriser HTTP:
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 80 -j ACCEPT
Autoriser HTTPS:
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 443 -j ACCEPT
Autoriser les requêtes DNS:
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 53 -j ACCEPT
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p udp --dport 53 -j ACCEPT
Refuser tout le reste:
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 2 -j DROP
Ce pourrait être une bonne idée de tester d'abord en omettant l'argument "--permanent".
Je ne suis en aucun cas un expert, mais cela semble bien fonctionner pour moi :)
Concernant l'interface graphique; Je pense que vous trouvez cela sous "Configuration directe". Pour y accéder, vous devez le sélectionner dans "View". Je peux me tromper.
note latérale
Pour supprimer des règles; vous devez quitter puis rentrer.