Newsgroup: it.comp.os.linux.sys
Titolo: iptables port redirect

Ancora Salve,
Vorrei abilitare su un gateway internet il port redirect sul proxy per tutti
gli utenti tranne che per alcuni.
per abilitarlo per tutti è semplice:
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j
REDIRECT --to-port 3128
però poi quale è il comando per disabilitare la regola (evitare l'uso del
proxy) solo per alcuni indirizzi ip di provenienza?
Grazie in anticipo

 proxy) solo per alcuni indirizzi ip di provenienza?
Basta che fai precedere la regola da te riportata
da regole del tipo:
/sbin/iptables -A PREROUTING -t nat -p tcp -i eth0 \
-s <indirizzo_ip> --dport 80 -j ACCEPT
e <indirizzo_ip> non passera' per il transparent proxy.
bye G.L.
-- 
« E' assolutamente evidente che l'arte del cinema
  si ispira alla vita, mentre la vita si ispira alla TV »
(Woody Allen)

 ha scritto nel messaggio
news:c687e4$96qee$1...@ID-115021.news.uni-berlin.de...


 e <indirizzo_ip> non passera' per il transparent proxy.
...
...leggendo mi sorge un dubbio, ma anche se voglio redirezionare una porta (ad 
es. 5900 x il vnc) su un pc di una rete interna devo prima fare l' ACCEPT e poi 
il DNAT ?
Non basta il DNAT ?
R.

 Non basta il DNAT ?
No, non c'e' da preoccuparsi, perche' la catena di PREROUTING
ha una default policy in ACCEPT.
Bastera' il DNAT. Ed anche una regola in forward di ACCEPT, ma
presumibilmente solo se la default policy di quest'ultima
e' in DROP.
Il precedente e' un caso particolare, la catena PREROUTING
e' la prima
fra tutte ad essere attraversata, e la manipolazione dei
pacchetti su questa influenzera' la decisione di routing,
che determinera' se il pacchetto deve andare in INPUT oppure in
FORWARD, o semplicemente rediretto su una porta di un processo
locale. Il trick da me adottato e' basato banalmente sulla
sequenzialita' di attraversamento delle regole della chain, e
sul matching della regola che determina l'uscita dalla chain.
Se la regola relativa all'ip che non voglio sottoporre al trasp.
proxy (la quale precede quella che realizza il trasp. proxy),
viene soddisfatta, il pacchetto non viene alterato (ACCEPT), si
esce da PREROUTING e si prosegue col normale percorso (si suppone
che il pacchetto andra' in FORWARD, per raggiungere il web server
sull'internet...), e la regola che realizza il trasp. proxy non
verra' mai evaluata...
Insomma, sintetizzando: la regola che precede quella relativa
al transparent proxy fa in modo di "schivare" quest'ultima se
le condizioni poste vengono verificate (il fatto che la
richiesta sulla porta 80 venga effettuata da un particolare ip
della lan).


 locale. 
...lo supponevo, infatti ricordo un caso in cui mi fu chiesto di modificare 
-appunto- un fw piuttosto incasinato basato su ipchains, per aggiungervi un nat 
a un pc con vnc, e non c'era verso di farlo passare (usando appunto una regola 
con prerouting e dnat), mi pare (dovrei cercare gli scarni appunti...:-S) che il 
problema poi fosse che ce ne era un'altra che bloccava tutto tranne qualcosa e 
che era prima, ma poiche' il tale aveva preso il default suse (gia' abbastanza 
corposo) e vi aveva aggiunto svariate cosette, ecco... ora non mi ricordo come 
poi fu fatto, o se addirittura si fece in un altro modo, perche' non valeva la 
pena aggeggiare su quel pc... cmq penso che se sarebbe dovuto cancellare una 
qualche regola precedente, direi, il problema non era quindi nella regola citata 
di per se.
Salutoni,Rob.