Sur ma machine Ubuntu, en /etc/sysctl.conf
Fichier, j'ai reçu les options de filtrage des chemins inverse commentées par défaut comme ceci:
#net.ipv4.conf.default.rp_filter=1
#net.ipv4.conf.all.rp_filter=1
mais en /etc/sysctl.d/10-network-security.conf
Ils sont (à nouveau, par défaut) non commentés:
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.rp_filter=1
Donc, le filtrage de la trajectoire inverse est activé ou non? Lequel des emplacements de configuration prend la priorité? Comment vérifier les valeurs actuelles de ces options de noyau et d'autres options de noyau?
Vérification de la valeur d'une variable SYSCTL est aussi simple que
sysctl <variable name>
et, au fait, la définition d'une variable SYSCTL est aussi simple que
Sudo sysctl -w <variable name>=<value>
mais les changements faits de cette façon ne tiennent probablement que jusqu'à ce que le prochain redémarrage.
Quant à laquelle des emplacements de configuration, /etc/sysctl.conf
ou /etc/sysctl.d/
, a priorité, voici ce que /etc/sysctl.d/README
Le fichier dit:
Les utilisateurs finaux peuvent utiliser 60 - *. Conf et ci-dessus, ou utiliser / etc/sysctl.conf directement, qui remplace quoi que ce soit dans ce répertoire.
Après avoir modifié la configuration dans l'un des deux emplacements, les modifications peuvent être appliquées avec
Sudo sysctl -p
Ce genre de choses est généralement dans le /proc
et/ou /sys
Interfaces de noyau (d'abord, gardez à l'esprit que ces répertoires est un fichier de disque régulier, ce sont toutes des lignes directes sur le noyau).
Donc, par exemple:
»for x in /proc/sys/net/ipv4/conf/*/rp_filter; do echo -ne "$x "`cat $x`"\n"; done
/proc/sys/net/ipv4/conf/all/rp_filter 0
/proc/sys/net/ipv4/conf/default/rp_filter 1
/proc/sys/net/ipv4/conf/em1/rp_filter 1
/proc/sys/net/ipv4/conf/lo/rp_filter 0
/proc/sys/net/ipv4/conf/wlan0/rp_filter 1
On dirait que j'ai un ensemble rp_filter pour EM1, WLAN0 et "Par défaut". Vous pouvez définir ou vous désiertoir en écrivant simplement sur la poignée du fichier:
»cd /proc/sys/net/ipv4/conf/lo
»echo 1 > rp_filter
»cat rp_filter
1
»echo 0 > rp_filter
»cat rp_filter
0
Comme mentionné, il s'agit de la communication directe avec le noyau, de sorte que cela prend effet immédiatement. Ceux-ci ne sont pas fichiers de configuration. Si vous essayez de faire quelque chose de mal:
»echo whatever > rp_filter
bash: echo: write error: Invalid argument
Ce qui ne veut pas dire que vous ne pouvez pas viser les choses de cette façon, bien sûr. Et assurez-vous de lire les commentaires ci-dessous.
Compléter la réponse acceptée , alors qu'il est vrai que /etc/sysctl.conf
Paramètres prennent la priorité sur ceux de /etc/sysctl.d/
, l'exemple exposé dans la question initiale montre deux variables commentées dans /etc/sysctl.conf
:
#net.ipv4.conf.default.rp_filter=1
#net.ipv4.conf.all.rp_filter=1
et les mêmes variables non commentées dans /etc/sysctl.d/10-network-security.conf
:
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.rp_filter=1
Cela peut être trompeur car un commentaire est non un réglage, mais seulement A remarque de ce qui pourrait être un réglage.
Dans cette situation, les variables sont réellement définies à 1, malgré le fait que dans le fichier de configuration plus fort, ils ont été commentés.
Si dans /etc/sysctl.conf
nous avons eu:
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0
ensuite, les variables seraient éventuellement définies sur 0.