Menu Fermer

sysctl : paramétrer le noyau Linux

sysctl est un utilitaire en ligne de commandes pour modifier les paramètres du noyau Linux.
Le noyau Linux est le composant du système d’exploitation qui permet l’interaction entre l’utilisateur et le matériel.
Des paramètres et options sont disponibles afin d’activer des composants du noyau.
sysctl vous permet alors de modifier ces paramètres.
Ce dernier set disponible sur toutes les distributions Linux comme Debian, Ubuntu, Mint, CentOS, Fedora, etc.

Dans ce tutoriel, vous allez donc voir comment utiliser sysctl pour paramétrer le noyau Linux.

sysctl : paramétrer le noyau Linux

sysctl et le noyau Linux : comment ça marche

Pour tout savoir du noyau Linux :

Le noyaux Linux, /proc/sys et sysctl

Dans Linux, les paramètres du noyaux sont disponibles dans le répertoire /proc/sys.
Procfs est requis pour la prise en charge de sysctl sous Linux.
En d’autres termes, systctl permet de modifier les paramètres du kernel stockés dans /proc/sys

Prenons par exemple le paramètre réseau /proc/sys/net/ipv4/ip_forward qui autorise ou non le transfert de paquet entre interfaces réseaux.
Ce dernier peut avoir deux états :

  • 0 : non actif
  • 1 : actif

C’est donc un paramètre de type booléen.
Mais on peut aussi avoir des valeurs, par exemple /proc/sys/net/ipv4/route/min_pmtu retourne une valeur 512 que l’on peut modifier.

Bref, c’est assez proche du fonctionnement de la base de registre de Windows ou encore de about:config de Firefox.
Les valeurs booléen permet d’activer ou désactiver une fonctionnalité du noyau alors que les valeurs avec des chiffres la configuration de celle-ci.

Les emplacements /proc/sys

Afin de vous y retrouver, voici la liste des emplacements /proc/sys :

Emplacement /proc/sysDescription
/proc/sys/dev/Modifier les périphériques du système
/proc/sys/fs/Modifier les paramètres du système de fichier (informations de quota, de descripteur de fichier, d’inode et de dentry)
/proc/sys/kernel/Ce répertoire contient une variété de fichiers de configuration différents qui affectent directement le fonctionnement du noyau
/proc/sys/net/Différentes configurations liées au réseau répertoires, tels que ethernet, ipv4, ipx, et ipv6
/proc/sys/net/ipv4/Le répertoire /proc/sys/net /ipv4/ contient des paramètres réseau supplémentaires. Un grand nombre de ces paramètres, utilisés en conjonction les uns avec les autres, sont utiles pour empêcher les attaques sur le système ou lors de l’utilisation du système comme routeur.
/proc/sys/vm/Ce répertoire facilite la configuration du sous-système de mémoire virtuelle (VM) du noyau Linux.
Le noyau fait une utilisation intensive et intelligente de la mémoire virtuelle, communément appelée espace d’échange.
Liste des emplacements /proc/sys

sysctl : paramétrer le noyau Linux

Afficher un paramètre du noyau Linux

Si on prend encore cet emplacement /proc/sys/net/ipv4/ip_forward, le paramètre pour systctl devient net.ipv4.ip_forward.
Les sous-dossiers sont remplacés par des points avec le paramètre final.
Autre exemple avec /proc/sys/kernel/sysrq qui donnera donc kernel.sysrq dans systctl.

Ainsi pour afficher un paramètre du noyau, on appelle sysctl de cette manière :

sysctl net.ipv4.ip_forward

Ce qui revient à afficher le contenu du fichier suivant dans /proc/sys :

cat /proc/sys/net/ipv4/ip_forward
Afficher un paramètre du noyau Linux avec sysctl

Modifier un paramètre du noyau Linux

sysctl permet de modifier une valeur et paramètre du noyau Linux.
Pour cela, on utilise le paramètre -w

sysctl -w net.ipv4.ip_forward=0

Ce qui revient à changer le contenu du fichier, par exemple avec echo :

echo 0 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_forward
Modifier un paramètre du noyau Linux avec sysctl

Il est tout à fait possible de charger un fichier de configuration afin de modifier plusieurs paramètres à la fois. Cela se fait avec le paramètre -p.

sysctl -p /tmp/noyau-linux.conf
Modifier un paramètre du noyau Linux avec sysctl
Cette modification des paramètres du noyaux Linux avec sysctl n’est pas permanente et sera perdu au prochain démarrage de Linux.

Rendre la modification permanente dans /etc/sysctl.conf

Comment rendre les modifications du noyau Linux permanentes au démarrage ?

A chaque démarrage de Linux, le programme init exécute le script /etc/rc.d/rc.sysinit.
Ce script contient une commande pour exécuter sysctl en utilisant /etc/sysctl.conf pour déterminer les valeurs passées au noyau.
Toutes les valeurs ajoutées à /etc/sysctl.conf prennent donc effet à chaque démarrage du système.
Notez que les modules chargés après que sysctl a analysé ce fichier peuvent remplacer les paramètres.

Il faut modifier le contenu du fichier /etc/sysctl.conf en mettant la valeur souhaitée comme dans l’exemple du paragraphe précédent.

Rendre les modifications du noyau Linux permanentes au démarrage de Linux