Il faut bien prendre conscience d'un truc, quand on a un serveur avec de l'ipv6, certains services comme sshd vont écouter en ipv6 et en ipv4
Si vous avez restreint l'acces au port SSH à certaines ips de confiances, il faut aussi faire l'opération avec ip6tables sinon vous êtes à poil en ipv6
Ce sont deux stacks complètement indépendantes
La doc des propriétés : https://github.com/torvalds/linux/blob/master/Documentation/networking/ip-sysctl.txt
Ensuite on peut les définir dans le dossier spécifique à l'interface, exemple : /proc/sys/net/ipv4/conf/eth0/
Ou dans le dossier all : /proc/sys/net/ipv4/conf/all
Exemple :
La valeur pour ehto concernant la propriété arp_filter ne dépend pas seulement de /proc/sys/net/ipv4/conf/eth0/arp_filter mais aussi de /proc/sys/net/ipv4/conf/all/arp_filter
D'après la doc, arp_filter est un boolean (0 ou 1)
D'après ces liens :
http://marc.info/?l=linux-kernel&m=123606366021995&w=2
https://github.com/torvalds/linux/blob/master/include/linux/inetdevice.h (ligne 123 : #define IN_DEV_ARPFILTER(in_dev) IN_DEV_ORCONF((in_dev), ARPFILTER))
On utilise un OR pour déterminer la valeur finale : il suffit qu'un des deux arp_filter soit à 1.
Si la propriété n'est pas un boolean mais un integer qui peut prendre 0,1,2,etc... la valeur choisie entre le "all" et le "eth0" sera la valeur MAX d'après ce que j'ai compris.
On retrouve ce fonctionnement dans d'autres dossiers :
/proc/sys/net # find . -type d -name eth0
./ipv4/neigh/eth0
./ipv4/conf/eth0
./ipv6/neigh/eth0
./ipv6/conf/eth0
Pour consulter :
sysctl -a | grep arp_filter
Pour modifier :
à la volée :
echo "1" > /proc/sys/net/ipv4/conf/...
ou sysctl -w net.ipv4.conf.eth1.arp_filter=1
persistant au reboot :
/etc/sysctl.conf
/etc/init.d/procps restart
à notre un truc vicieux :
/etc/init.d/procps restart n'a pas le meme effet qu'un reboot complet
si on set une propriété à la volée à 1 comme net.ipv4.conf.eth1.arp_filter par exemple
elle va rester à 1 apres un /etc/init.d/procps restart
par contre elle se remet bien à 0 apres un reboot