3. Les outils de filtrage réseau

Sur un système GNU/Linux, les fonctions de filtrage réseau sont réparties entre les espaces mémoire noyau (kernelspace) et utilisateur (userspace). Les fonctions de filtrage réseau sont disponibles sous forme de modules qui sont chargés dynamiquement dans la mémoire du système en cours d'exécution en fonction de la syntaxe des règles de filtrage ajoutées.

Q3.

Quel est le paquet le plus important pour les manipulations sur les fonctions de filtrage réseau ?

Rechercher dans la liste des paquets les mots clés tels que iptables ou firewall.

La partie userspace des fonctions de filtrage réseau s'appelle iptables. On lance donc une recherche avec ce mot clé dans la base de données des paquets Debian.

$ aptitude search ~iiptables
i   iptables              - administration tools for packet filtering and NAT
i   iptables-persistent   - boot-time loader for netfilter rules, iptables plugin

Q4.

Comment visualiser les modules chargés dynamiquement en fonction de l'utilisation des règles de filtrage réseau ?

Utiliser la commande qui sert à lister les modules chargés en mémoire avant et après avoir consulté les tables de filtrage réseau pour la première fois.

La commande lsmod sert à lister les modules chargés en mémoire. Voici un exemple de liste de modules relatifs au filtrage.

$ $ lsmod | egrep '(ip_|nf_)' | fmt -t -w80
nf_conntrack_netlink    57344  0
nf_nat                 49152  2 nft_chain_nat,xt_MASQUERADE
nf_conntrack          176128  3 nf_nat,nf_conntrack_netlink,xt_MASQUERADE
nf_defrag_ipv6         24576  1 nf_conntrack
nf_defrag_ipv4         16384  1 nf_conntrack
libcrc32c              16384  2 nf_conntrack,nf_nat
nf_tables             241664  7 nft_compat,nft_counter,nft_chain_nat
nfnetlink              16384  3 nft_compat,nf_conntrack_netlink,nf_tables
ip_tables              32768  0
x_tables               53248  4 nft_compat,ip_tables,xt_limit,xt_MASQUERADE

Q5.

Quels sont les outils de sauvegarde et de restauration des jeux de règles de filtrage réseau fournis avec le paquet iptables-persistent ?

Consulter la liste des fichiers du paquet.

La liste des fichiers du paquet fait apparaître les outils iptables-save et iptables-restore qui permettent respectivement de sauvegarder et de restaurer l'ensemble des règles de toutes les tables utilisées.

Ces programmes sont indispensables pour éditer, insérer ou retirer des règles sans avoir à se préoccuper de l'ordre de saisie. De plus, le programme de restauration se charge de l'effacement des règles précédentes.

Q6.

Comment visualiser les enregistrements d'états de suivi des communications réseau ?

Rechercher la chaîne conntrack dans la liste des paquets.

La section «7.2 Les entrées de conntrack» du Tutoriel iptables décrit précisément les différents champs du suivi de communication.

Voici un échantillon capturé sur le routeur HubBleu après avoir lancé une mise à jour du catalogue des paquets sur les conteneurs du routeur Spoke2Vert.

$ sudo conntrack -L | fmt -t -w80
conntrack v1.4.6 (conntrack-tools): 7 flow entries have been shown.
tcp      6 431999 ESTABLISHED src=172.16.0.230 dst=10.141.0.162 sport=40626
   dport=22 src=10.141.0.162 dst=172.16.0.230 sport=22 dport=40626 [ASSURED]
   mark=0 use=1
udp      17 23 src=10.0.2.10 dst=9.9.9.9 sport=53336 dport=53 src=9.9.9.9
   dst=10.141.0.162 sport=53 dport=53336 [ASSURED] mark=0 use=1
tcp      6 113 TIME_WAIT src=10.0.2.10 dst=151.101.12.204 sport=48494
   dport=80 src=151.101.12.204 dst=10.141.0.162 sport=80 dport=48494 [ASSURED]
   mark=0 use=1
udp      17 27 src=10.0.2.11 dst=9.9.9.9 sport=39790 dport=53 src=9.9.9.9
   dst=10.141.0.162 sport=53 dport=39790 mark=0 use=1
udp      17 23 src=10.0.2.10 dst=9.9.9.9 sport=59674 dport=53 src=9.9.9.9
   dst=10.141.0.162 sport=53 dport=59674 mark=0 use=1
tcp      6 117 TIME_WAIT src=10.0.2.11 dst=151.101.12.204 sport=50252
   dport=80 src=151.101.12.204 dst=10.141.0.162 sport=80 dport=50252 [ASSURED]
   mark=0 use=1
udp      17 27 src=10.0.2.11 dst=9.9.9.9 sport=43617 dport=53 src=9.9.9.9
   dst=10.141.0.162 sport=53 dport=43617 [ASSURED] mark=0 use=1