Un grand nombre de paramètres sont actifs par défaut sur les
interfaces réseau. Sur un système GNU/Linux, ces paramètres sont
placés dans les systèmes de fichiers virtuels /proc
et /sys
.
Comment visualiser les paramètres du noyau Linux pour une interface Ethernet ?
Tous les réglages possibles pour une interface pilotée par le
sous-système réseau du noyau Linux sont accessibles depuis l'espace
utilisateur via deux systèmes de fichiers virtuels appelés
procfs
et sysfs
. L'outil qui permet de lire et configurer
ces réglages s'appelle sysctl.
La description de tous les paramètres relatifs à l'interface Ethernet sort du cadre de ce document. Le but ici est de montrer que ces paramètres existent, qu'ils sont accessibles et que l'on sait où les trouver dans l'arborescence système.
Dans notre contexte, nous savons que le nom de l'interface
Ethernet est eth0
. On peut faire une
recherche des paramètres relatifs à ce nom d'interface pour les
protocoles IPv4 et
IPv6.
$
sudo sysctl -a --pattern 'net.ipv(4|6).conf.eth0'
Comment changer la valeur d'un paramètre ?
Pour changer les valeurs attribuées par défaut lors de
l'initialisation du système, on utilise à nouveau la commande
sysctl. Le répertoire
/etc/sysctl.d
contient les fichiers
de modification ou d'application de nouveaux paramètres.
Historiquement, c'est le fichier /etc/sysctl.conf
qui contenait la liste de ces
modifications. Aujourd'hui, ce fichier est fourni par la
distribution et il est préférable d'ajouter un fichier dédié dans
le répertoire /etc/sysctl.d
.
Pour ce qui est de la liste des paramètres d'une interface réseau, on peut prendre l'exemple du routage par l'adresse source comme axe de modification des valeurs par défaut. Le source routing est un mécanisme qui permet à un paquet IP d'indiquer au routeur le chemin que doit suivre le paquet retour. Il existe également une option pour enregistrer les sauts tout au long du chemin. La liste des sauts effectués ou l'enregistrement de route fournit à la destination un chemin de retour vers la source. Cela permet à la source (l'hôte émetteur) de spécifier la route, de manière lâche ou stricte, en ignorant les tables de routage de tout ou partie des routeurs. Il peut permettre à un utilisateur de rediriger le trafic réseau à des fins malveillantes. Par conséquent, le routage basé sur la source doit être désactivé.
Avant modification des paramètres, la situation est la suivante.
$
sudo sysctl -a --pattern 'net.ipv(4|6).conf.eth0.*source'
net.ipv4.conf.eth0.accept_source_route = 1
net.ipv6.conf.eth0.accept_source_route = 0
-
Dans un premier temps, il est possible de modifier le paramètre voulu individuellement.
$
sudo sysctl -w net.ipv4.conf.eth0.accept_source_route=0 net.ipv4.conf.eth0.accept_source_route = 0 -
Dans un second temps, il est possible de rendre cette modification permanente au niveau système en éditant le fichier historique
/etc/sysctl.conf
. Il faut décommenter la ligne relative au paramètre sur le routage basé sur la source pour IPv4.$
sudo sed -ie '/#net.ipv4.conf.all.accept_source_route = 0/ s/^#//' /etc/sysctl.conf$
sudo sysctl --system * Applying /etc/sysctl.d/99-sysctl.conf ... net.ipv4.conf.all.accept_source_route = 0 * Applying /etc/sysctl.d/protect-links.conf ... fs.protected_hardlinks = 1 fs.protected_symlinks = 1 * Applying /etc/sysctl.conf ... net.ipv4.conf.all.accept_source_route = 0
Comme le fichier /etc/sysctl.conf
est conservé, les paramètres seront à nouveau appliqués lors de
l'initialisation du système.