Ok, abbiamo già visto il comando ``ip rule add'' per aggiungere delle regole.
Nel nostro caso, abbiamo aggiunto delle regole basate sull'indirizzo ip sorgente e destinazione
dei pacchetti ip. ip rule
consente di aggiungere delle regole basate anche:
tos
dev
o iif
)fwmark
Per vedere invece le regole correntemente inserite, è sufficiente utilizzare un comando simile a ``ip rule show'', che ci darebbe un output simile a:
0: from all lookup local
32764: from all to 1.2.3.0/28 lookup smacchine
32765: from 1.2.3.0/28 lookup smacchine
32766: from all lookup main
32767: from all lookup 253
Ok, il primo numero a sinistra indica l'ordine in cui vengono controllate le regole (una regola con
un numero minore viene controllata per prima -- indica cioè la posizione della regola),
le prime parole seguenti indicano cosa deve essere verificato nel pacchetto (all corrisponde
a 0.0.0.0/0) mentre normalmente le ultime due parole indicano l'azione da compiere. In tutte
le regole sopra esposte, viene indicato di effettuare il lookup in particolari tabelle.
In generale, è possibile specificare come azione quella di:
lookup
prohibit
unreachable
blackhole
nat
# ip rule add from 10.0.0.11 unreachable pref 11
# ip rule add tos 0x12 from 10.0.0.12 lookup t3
# ip rule add from 10.0.0.0/24 fwmark 12 prohibit pref 2
Con il primo comando abbiamo inserito una regola in posizione 11 che fa in modo
che tutti i pacchetti ip provenienti dal computer 10.0.0.11 vengano respinti con
un un bel ``network unreachable''.
La seconda regola prende invece tutti i pacchetti provenienti da 10.0.0.12 con
un tos di valore 0x12 (maximize throughput e maximize reliability) e fa effettuare
il lookup della tabella chiamata t3. In questo caso, non è stata data una posizione
specifica con l'istruzione pref
. Attenzione che comandi successivi, a meno che
non venga esplicitamente indicata una posizione, aggiungono sempre regole con precedenza
maggiore (quindi posizione minore) rispetto tutte le altre regole. Questa seconda regola verrebbe quindi inserita
in posizione 10. Infine, l'ultima regola viene inserita in posizione 2 e fa in modo che
vengano proibiti tutti i pacchetti provenienti dalla rete 10.0.0.0/24 e marcati dal
firewall con un valore di 12.
Attenzione però che la prima regola, con priorità 0 che effettua il lookup nella tabella local non può essere rimossa.
Per maggiori informazioni su come marcare i pacchetti con ipchains o iptables, vi conviene riferirvi alle relative pagine di manuale.