Sur tous les systèmes, un certain nombre de paramètres sont actifs par
défaut sur les interfaces réseau. Avec le noyau Linux, ces paramètres sont
placés dans le système de fichiers virtuel /proc.
Dans le noyau Linux, la granularité du paramètrage de la pile de
protocoles TCP/IP est très fine. Aussi le nombre de paramètres est important.
Il suffit de visualiser le résultat des commandes ls
/proc/sys/net/ipv4/ ou sysctl -A |grep net
pour le constater.
Voici un petit script appelé show_proc.sh qui
permet de visualiser les paramètres par protocole ou catégorie et leurs
valeurs :
#!/bin/bash for param in `find /proc/sys -type f -name "*$1*"`; do echo $param = `cat $param` done
Dans le cas des réglages ICMP on obtient le résultat suivant avec un noyau de distribution standard :
# ./bin/show_proc.sh icmp /proc/sys/net/ipv4/netfilter/ip_conntrack_icmp_timeout = 30 /proc/sys/net/ipv4/icmp_ratemask = 6168 /proc/sys/net/ipv4/icmp_ratelimit = 1000 /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses = 0 /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts = 0 /proc/sys/net/ipv4/icmp_echo_ignore_all = 0
Pour changer les valeurs par défaut attribuées dans le noyau, il existe au moins trois solutions :
La première solution consiste à affecter les valeurs individuellement. Prenons l'exemple célèbre de la fonction de routage des paquets IP du noyau avec un extrait du guide NAT-HOWTO :
echo 1 > /proc/sys/net/ipv4/ip_forward
La seconde solution utilise le fichier de configuration
/etc/sysctl.conf de la commande
sysctl appartenant au paquet
procps. Ce fichier de configuration n'est pas
limité aux fonctions réseau du noyau Linux comme le montre le résultat de
la commande sysctl -A. Voici un exemple très simple
de fichier /etc/sysctl.conf :
# Activation de protection contre les mauvais messages d'erreurs ICMP net.ipv4.icmp_ignore_bogus_error_responses=1
La commande sysctl -p active l'ensemble des
valeurs indiquées dans le fichier ce configuration. On obtient
alors :
# ./bin/show_proc.sh icmp_ignore_bogus_error_responses /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses = 1
Comme le fichier /etc/sysctl.conf est lu à
chaque démarrage du système, les valeurs des paramètres ajustés seront
reprises. Ce fichier de configuration est un moyen pratique de conserver
les paramètres personnels des fonctions réseau d'une interface.
La troisième solution est présentée dans la section «Sécurations des accès réseau» du Manuel de sécurisation de Debian.
Voici un exemple de fichier de configuration
/etc/sysctl.conf type :
# Refuser la prise en charge des requêtes ARP pour d'autres hôtes net.ipv4.conf.all.proxy_arp = 0 # Ignorer les mauvais messages d'erreurs ICMP net.ipv4.icmp_ignore_bogus_error_responses = 1 # Ignorer les messages de diffusion ICMP net.ipv4.icmp_echo_ignore_broadcasts = 1 # Journaliser les adresses sources falsifiées ou non routables net.ipv4.conf.all.log_martians = 1 # Refuser les adresses sources falsifiées ou non routables net.ipv4.conf.all.rp_filter = 1 # Refuser les messages ICMP redirect net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0 # Refuser le routage source net.ipv4.conf.all.accept_source_route = 0
Les quelques paramètres des fonctions réseau du noyau Linux présentés ci-avant ne constituent qu'une infime partie. Le document Ipsysctl tutorial présente l'ensemble des paramètres utilisables pour ajuster le fonctionnement de la pile de protocoles TCP/IP.
Vous êtes ici :