web-dev-qa-db-fra.com

Bloquer les connexions sortantes sur RHEL7 / CentOS7 avec firewalld?

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?

12
golem

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
13
Fedora-user

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

6
user253068

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.

1
user301864