Pagina 1 di 1

[RISOLTO] smistamento traffico via iptables

Inviato: mar 20 lug 2021, 23:31
da ZeroUno
Ciao.

Ho una lan con due router
192.168.0.1 e 192.168.1.1
ed un pc che ha due schede di rete, una per ogni lan, eth0 192.168.0.2, eth1 192.168.1.2


Ora se voglio che verso alcuni indirizzi passo per il primo router e per altri indirizzi sul secondo è fatta, basta usare la tabella di routing
route add -host 1.1.1.1 gw 192.168.0.1
route add -host 2.2.2.2 gw 192.168.1.1

ma a me serve smistare il traffico per porta, tipo le richieste su porta 80 mi vengano girate al primo router mentre le richieste su porta 22 all'altro router, a parita di indirizzo
la tabella di routing ha le precedenze
route add -host 1.1.1.1 gw 192.168.0.1
route add -host 1.1.1.1 gw 192.168.1.1
crea due rotte con metriche diverse ed una sola ha la priorità.

Posso specificare via iptables magari quale traffico indirizzare su un router e quale sull'altro?


grazie.

Re: smistamento traffico via iptables

Inviato: mer 4 ago 2021, 10:43
da rik70
Dovresti riuscire agendo sulla tabella NAT.

Un esempio:
- metti che hai una macchina Linux con ip 192.168.1.120;
- la macchina invia le richieste per la risoluzione dei nomi dominio verso un dato 'gateway/server dns';
- tu però vuoi che tali richieste vengano reindirizzate verso un nameserver che abbia un sistema di 'controllo parentale' che filtri i siti 'indesiderati'.

Basterebbe scrivere una regola iptables che intercetta tutte le richieste UDP verso la porta 53 e le 'rimanda' alla destinazione specificata:

Codice: Seleziona tutto

iptables -v -t nat -A OUTPUT -s 192.168.1.120/32 -p udp -m udp --dport 53 -j DNAT --to-destination 208.67.222.123:53
Prova a studiarti la tabella NAT e vedi 'quali 'catene" e 'target' utilizzare per ottenere il risultato voluto.

Nell'esempio sopra è bastato operare sulla catena 'OUTPUT', ma se avessi voluto che so... ...configurare un tuo server dns locale per applicare la stessa regola ad alcuni PC della LAN, avresti dovuto agire sulle catene 'PREROUTING' e 'POSTROUTING' della macchina su cui gira il server utilizzando anche il target SNAT.

Re: smistamento traffico via iptables

Inviato: mer 4 ago 2021, 12:43
da ZeroUno
No, credo di aver spiegato male, ma sono riuscito a risolvere.

conosco abbastanza bene i nat, ma la mia situazione è un po' più complicata.
La mia attuale tabella di routing che non posso toccare è questa:

Codice: Seleziona tutto

0.0.0.0         10.222.255.144  0.0.0.0         UG    1      0        0 tun0
0.0.0.0         192.168.1.1     0.0.0.0         UG    600    0        0 wlan0
...
ora quel 208.67.222.123 ipotizzato è raggiungibile da wlan0 ma non da tun0
quello che voglio io è dirgli, la stessa cosa che hai detto tu ma tipo
-j DNAT --to-destination 208.67.222.123:53 -via wlan0
ma una cosa del genere non esiste con iptables (non l'ho trovata). Si fa solo agendo sulla tabella di routing.


Ho risolto perchè sono riuscito ad aggiungere una tabella di routing alternativa senza toccare la principale

Codice: Seleziona tutto

# echo "1 RDS" >> /etc/iproute2/rt_tables
ip route add default via 192.168.1.1 dev wlan0 table RDS
ip rule add to 0.0.0.0/0 table RDS
ip rule add to 10.0.0.0/8 table main
dopo di questo con un mix di iptables -t mangle è possibile selezionare le singole porte

http://www.linuxhorizon.ro/iproute2.html