Avanti Indietro Indice

5.2 Regole di ip

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:

Come potete vedere, non è possibile fare dei match in base alla porta tcp o udp. Il problema è risolto tramite l'utilizzo di fwmark, che vi consente di riconoscere pacchetti marcati usando comandi come iptables o ipchains, strumenti che consentono di scrivere regole molto più selettive su tutti i campi dei vari protocolli (vi conviene guardare la documentazione di iptables o ipchains per maggiori informazioni).

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:

Vediamo quindi un esempio utilizzando qualche regola un pochino più avanzata
  # 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.


Avanti Indietro Indice