Versione 2 del 2014-11-09 20:43:26

Nascondi questo messaggio
Italiano English
Modifica History Actions

Reverse Path Filter

Il Reverse Path Filter (rp_filter) di Linux scarta i pacchetti in ingresso su un interfaccia di rete se provenienti da un indirizzo ip la cui rotta punta su un altra interfaccia.

Per esempio, immaginando un router con tre interfaccie di rete if0, if1, if2 e una default route che punta a if2. Se rp_filter e' abilitato e arriva un pacchetto con indirizzo pubblico su if0 che deve essere routato su if1, il pacchetto viene scartato. Considerando che if0, if, e if2 possono essere anche interfaccie tunnel, VPN, etc, e' molto probabile che si verifichi la condizione descritta.

Possibili valori

  • no (0) - No source validation.

  • strict (1) - If the interface is not the best reverse path the packet check will fail.

  • loose (2) - If the source address is not reachable via any interface the packet check will fail.

Comandi utili

Visualizzare lo stato di rp_filter sulle diverse interfaccie

# sysctl -a | grep rp_filter

Modificare

# sysctl -w net.ipv4.conf.<interface>.rp_filter=<value>

Settando rp_filter a 0 o a 2 su un interfaccia e' necessario che net.ipv4.conf.all.rp_filter sia a 0:

# sysctl -w net.ipv4.conf.all.rp_filter=0

Rendere permanenti le modifiche

Modificare il file /etc/sysctl.d/30-rpfilter.conf con i valori desiderati. Ad esempio:

net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.eth0.rp_filter=2

Link Esterni