UFW: qu'est-ce que c'est exactement?

13

Qu'est-ce que l'UFW? On pourrait penser que c'est une question facile, mais plus je lis de sources, moins elle devient claire.

L'acronyme s'exprime par Firewall non compliqué, comme si ufw implémentait lui-même un pare-feu. Et en effet, dans de nombreux endroits, il est appelé un pare-feu en soi, comme dans cet article .

La page wiki d'aide d'Ubuntu sur UFW indique que UFW est un outil de configuration pour iptables. (À son tour, la page wiki d'aide sur les pare-feu indique qu'iptables est la base de données des règles de pare-feu, et qu'il s'agit également du pare-feu réel, comme si une base de données était un pare-feu, ce qui est évidemment faux. Et bien sûr, iptables est également le nom d'un programme.)

Si ufw est un outil de configuration, nous pouvons nous attendre à ce que ce soit un programme que vous exécutez pour configurer quelque chose, et une fois terminé, vous quittez avec la configuration établie. C'est la position de la réponse acceptée à cette question: le Firewall non compliqué (ufw) est-il un service?

Mais d'autres réponses à cette question sont en désaccord - non, c'est un service. Et en effet sur ma machine 18.04, je vois que ufw fonctionne comme un service! Pourquoi diable un outil de configuration fonctionne-t-il en tant que service?!

De plus, les systemctl list-units --all --type=servicespectacles ufw.servicesont loaded and active(et aussi exited?!) Encore des ufw statusspectacles inactive.

Alors, que signifie statut ufw = inactif?

  1. Que "le pare-feu" (quel qu'il soit) est inactif? C'est ce que suggère le doc de la page de manuel ufw pour «status».

  2. Ou cela signifie-t-il que les règles configurées dans ufw sont inactives (mais que d'autres configurées dans iptables sont actives)?

  3. Ou cela signifie-t-il que ufw a démarré au démarrage, a appliqué ses règles dans ipconfig (ou partout où elles vont) afin qu'elles soient maintenant en vigueur, et maintenant ufw n'a rien à faire, il est donc inactif?

D'un intérêt particulier: Je veux suivre certaines instructions qui nécessitent l'émission de certaines commandes iptables, mais je crains qu'elles n'entrent en conflit avec ou soient écrasées par l'appareil ufw.

gwideman
la source
2
iptables est le pare-feu. Il contient également les règles, car il en a évidemment besoin, mais l'appeler une «base de données» l'étire un peu car le noyau ne fournit aucune persistance; leur chargement au démarrage doit être pris en charge par un outil comme ufw.
Jan Hudec
@JanHudec Je vois certaines personnes parler d'iptables comme s'il s'agissait du pare-feu, mais pour autant que je sache, netfilter fournit la fonctionnalité de pare-feu, tandis qu'iptables fournit la date de netfilter. J'aime votre point de vue selon lequel iptables ne contient que des données en mémoire, et donc "base de données" est également trompeur.
gwideman
Je considérerais personnellement que netfilter fait partie d'iptables, mais je peux me tromper sur ce point.
Jan Hudec
Zanna a modifié ma question pour ranger des choses comme les URL (merci!), Mais a substitué "UFW" à toutes les instances de "ufw". Je crois maintenant que les minuscules sont le cas approprié (comme indiqué dans manpages.ubuntu.com/manpages/xenial/en/man8/ufw.8.html et wiki.ubuntu.com/UncomplicatedFirewall , mais je ne suis pas intéressé par une modification Zanna s'il vous plaît revenir en minuscules si vous achetez mes preuves
gwideman

Réponses:

21

ufw est un frontal pour netfilter / iptables, le mécanisme Linux pour le routage et le filtrage du trafic Internet.

ufw est complètement facultatif et il est possible de créer un pare-feu et des tables de routage directement à l'aide des commandes iptables. Certaines personnes préfèrent la syntaxe d'ufw, qui est censée la rendre un peu plus facile.

ufw lui-même n'est pas le pare-feu, c'est un outil pour définir la configuration de netfilter / iptables. Il est enregistré en tant que service car il doit être exécuté à chaque démarrage de votre machine. Je ne crois pas qu'il reste résident en mémoire après avoir fait cette configuration. "redémarrer" le service relance simplement ses scripts. Il n'est pas rare que des éléments des distributions Linux soient enregistrés en tant que services, même s'il ne s'agit que de scripts qui s'exécutent au démarrage ou à l'arrêt sans rester résidents entre les deux.

Si vous utilisez ufw, vous ne pouvez pas définir vos propres règles iptables à l'aide de vos propres scripts, car ils seront remplacés lorsque ufw définira le sien. Cela signifie également que ufw peut entrer en conflit avec d'autres outils qui définissent des règles de pare-feu.

Si sudo ufw statusrenvoie "inactif", cela signifie que ufw a été désactivé (et ne réappliquera par exemple aucune règle au démarrage). Vous devez vous assurer que ufw est activé avec sudo ufw enable, mais vous devez également configurer des règles pour que cela ait un sens. Si vous êtes sûr d'avoir activé ufw mais qu'il retourne "inactif", il pourrait y avoir un autre problème.

Notez que "démarrer" le service n'active pas ufw, il active simplement le script de démarrage. Si ufw est désactivé lors de l'exécution du script de démarrage, il ne fera rien.

Vous pouvez savoir si vos règles de pare-feu ont été appliquées à un moment donné en utilisant directement iptables:

sudo iptables -L
sudo ip6tables -L
thomasrutter
la source
1
Remarque: personnellement, je n'utilise pas ufw, j'utilise un package appelé netfilter-persistent qui vous permet d'écrire des règles natives iptables dans un fichier et de les faire réappliquer au démarrage. Au démarrage, il fait essentiellement ce que fait ufw: exécute un script de démarrage qui applique la configuration. La différence est qu'il ne traduit pas à partir de sa propre syntaxe simplifiée, il envoie simplement les commandes iptables directement à iptables.
thomasrutter
beaucoup de bonnes choses ici. Merci. Sur ceci: "Si vous utilisez ufw, vous ne pouvez pas définir vos propres règles iptables en utilisant vos propres scripts, car elles seront écrasées lorsque ufw définira les siennes." L'ufw supprime-t-il activement toutes les règles iptables existantes? Ou dites-vous simplement avec ufw dans l'image, vous ne pouvez pas vous fier aux commandes / règles iptables qui prennent effet car elles pourraient être écrasées par ufw?
gwideman
Aussi à thomas: "netfilter-persistent"> est-ce que cela concerne iptables-persistent?
gwideman
Oui, c'est comme ça qu'on l'appelait. Si votre version d'Ubuntu a les deux, alors le paquet persistant iptables ne sera probablement qu'un paquet de transition pour donner aux personnes des anciennes versions un chemin de mise à niveau.
thomasrutter
1
Désolé si je vous ai confondu en mentionnant resolv.conf, j'utilisais simplement comme exemple un autre élément de configuration dans Ubuntu qui pourrait être contrôlé par un autre service remplaçant les modifications que vous apportez directement. Ce n'est pas connecté.
thomasrutter