firewalld fournit un pare-feu géré dynamiquement avec prise en charge des zones réseau ou pare-feu pour définir le niveau de confiance des connexions ou interfaces réseau. Il prend en charge les paramètres de pare-feu IPv4, IPv6 et les ponts Ethernet, ainsi qu'une séparation des options d'exécution et de configuration permanente. Il fournit également une interface permettant aux services ou aux applications d'ajouter directement des règles ip*tables et ebtables.
Pour extraire le référentiel source, vous pouvez utiliser :
clone git https://github.com/firewalld/firewalld.git
Cela créera une copie locale du référentiel.
Le code de conduite des contributeurs peut être trouvé dans CODE_OF_CONDUCT.md
Firewalld utilise GNU gettext pour la prise en charge de la localisation. Les traductions peuvent être effectuées à l'aide de l'instance Weblate de Fedora. Les traductions sont périodiquement fusionnées dans le référentiel principal de firewalld.
Voici les dépendances d'exécution :
linux >= 5.3 python >= 3.8 python3-dbus python3-gobject python3-nftables >= 0.9.4
Remarque : python2 n'est pas supporté.
Ces dépendances peuvent améliorer les fonctionnalités de firewalld, mais elles ne sont pas obligatoires.
ebtables ipset iptables polkit python3-capng (libcap-ng-python3)
En plus des dépendances d'exécution, d'autres sont nécessaires pour construire à partir des sources :
desktop-file-utils: /usr/bin/desktop-file-install gettext intltool glib2: /usr/bin/glib-compile-schemas glib2-devel: /usr/share/aclocal/gsettings.m4 systemd-units pytest
Pour pouvoir créer des pages de manuel et de la documentation à partir de fichiers docbook :
docbook-style-xsl libxslt
Utilisez l'incantation habituelle autoconf/automake pour générer des makefiles
./autogen.sh ./configurer
Vous pouvez utiliser un interpréteur Python spécifique en passant la variable PYTHON. Ceci est également utilisé par la suite de tests.
./configure PYTHON=/chemin/vers/python3
Utiliser
faire
créer la documentation et mettre à jour les fichiers po.
Utiliser
faire un chèque
pour exécuter la suite de tests. Les tests sont exécutés dans les espaces de noms du réseau et n'interfèrent pas avec le pare-feu en cours d'exécution de l'hôte. Ils peuvent également être exécutés en parallèle en transmettant des indicateurs au test automatique.
faire vérifier TESTSUITEFLAGS="-j4"
La suite de tests utilise également des mots-clés pour permettre d'exécuter un sous-ensemble de tests portant sur un domaine spécifique. Par exemple:
faire vérifier TESTSUITEFLAGS="-k riche -j4"
Sortir:
24 : audit des règles riches ok 25 : priorité aux règles riches ok 26 : les riches règnent mal, ok 53 : audit des règles riches ok 23 : règles riches, bien, ok 55 : les riches règnent mal, ok 74 : supprimer le port avant après le rechargement, ok
Vous pouvez obtenir une liste de tests et de mots-clés
make -C src/tests vérifie TESTSUITEFLAGS="-l"
Ou juste les mots-clés
make -C src/tests check TESTSUITEFLAGS="-l" |awk '/^[[:space:]]*[[:digit:]]+/{getline; imprimer $0}' |tr ' ' 'n' |tri |uniq
Il existe des tests d'intégration. Actuellement, cela inclut NetworkManager. Ceux-ci peuvent être destructeurs pour l'hôte. Exécutez-les dans une VM ou un conteneur jetable.
faire une intégration de contrôle
Il existe également une cible de conteneur de contrôle qui exécutera la suite de tests dans divers conteneurs podman/docker. Ceci est utile pour la couverture de plusieurs distributions. Il exécute également des tests pouvant être destructeurs pour l'hôte, tels que des tests d'intégration.
faire un conteneur de contrôle TESTSUITEFLAGS="-j4"
Dans le cadre de la cible de construction dist
une image de conteneur OCI est générée. Ceci est distribué avec l'archive tar de la version normale. Il peut être utilisé pour exécuter firewalld à partir d'un conteneur. Le pare-feu conteneurisé ne s'intégrera pas à l'hôte (par exemple podman, libvirt, NetworkManager).
Pour charger manuellement l'image du conteneur dans votre environnement :
podman load -i .../path/to/firewalld-oci-<ver>.tar
Pour récupérer l'image depuis quay.io :
podman pull quay.io/firewalld/firewalld :<ver>
où <ver>
est facultatif, la dernière version sera utilisée si elle est omise.
Pour démarrer le démon/conteneur :
podman run -d --network host --privileged --name mon-firewalld firewalld
La configuration de Firewalld vivra à l'intérieur du conteneur. Par conséquent, les utilisateurs peuvent souhaiter occasionnellement podman commit
l'image.
L'utilisation de la CLI de firewalld doit être effectuée via podman exec après le démarrage du démon/conteneur :
podman exécute mon-firewalld pare-feu-cmd ...
La même image de conteneur peut être utilisée pour s'intégrer au NetworkManager, podman, libvirt, etc. en cours d'exécution de l'hôte. Cela nécessite que l'hôte ait une politique dbus pour firewalld.
Une politique dbus peut être obtenue à partir de l'arborescence du code source de firewalld à l'emplacement config/FirewallD.conf
.
cp config/FirewallD.conf /usr/share/dbus-1/system.d/FirewallD.conf
Une fois la politique dbus en place, le conteneur peut être démarré comme tel :
podman run -d -v /run/dbus/system_bus_socket:/run/dbus/system_bus_socket --hôte réseau --privileged --name mon-firewalld firewalld pare-feu --nofork --nopid
Les seuls ajouts sont : le montage de volume, CMD explicite.
L'approche some peut être utilisée pour stocker les fichiers de configuration de firewalld sur l'hôte.
podman run -d -v /run/dbus/system_bus_socket:/run/dbus/system_bus_socket -v /etc/firewalld:/etc/firewalld --hôte réseau --privileged --name mon-firewalld firewalld pare-feu --nofork --nopid
Pour les distributions basées sur Fedora et RHEL, il existe un fichier de spécifications dans le dépôt source nommé firewalld.spec. Cela devrait être utilisable pour les versions Fedora >= 16 et RHEL >= 7.
Page d'accueil : http://firewalld.org
Signaler un bug : https://github.com/firewalld/firewalld/issues
Navigateur de dépôt Git : https://github.com/firewalld/firewalld
Dépôt Git : https://github.com/firewalld/firewalld.git
Documentation : http://firewalld.org/documentation/
Pour utilisation : https://lists.fedorahosted.org/archives/list/[email protected]/
Pour le développement : https://lists.fedorahosted.org/archives/list/[email protected]/
Annuaire | Contenu |
---|---|
configuration/ | Fichiers de configuration |
config/icmptypes/ | Types ICMP prédéfinis |
configuration/services/ | Prestations prédéfinies |
config/xmlschema/ | Le schéma XML vérifie les fichiers de configuration |
configuration/zones/ | Zones prédéfinies |
config/ipsets/ | Ipsets prédéfinis |
doc/ | Documentation |
doc/homme/ | Répertoire de base pour les pages de manuel |
doc/homme/homme1/ | Pages de homme(1) |
doc/homme/homme5/ | Pages homme(5) |
po/ | Traductions |
achèvement du shell/ | Répertoire de base pour les scripts de saisie semi-automatique |
src/ | Arbre source |
src/pare-feu/ | Arbre d'importation pour le service et toutes les applications |
src/icônes/ | Icônes dans les tailles : 16, 22, 24, 32, 48 et évolutives |
src/tests/ | Suite de tests |