View Full Version : aiutino iptables per port forwarding (e dhcp)
share_it
04-11-2004, 10:36
Sto settando un server-router linux, sono arrivato al punto che mi manca solo più il port forwarding... Questa è la mia esigenza:
tutti i pacchetti che arrivano all'interfaccia ppp0 su un certo range di porte (es 1000-1100) devono essere inoltrati al pc collegato su eth0 (oppure ma peggio al pc con un dato ip).
Ho provato con
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 1000:1100 -j DNAT --to-destination 192.168.0.2 (o l'ip che ho al momento)
ma sembra non andare...
Ripeto per me sarebbe meglio riuscire a forwardare quelle porte a qualsiasi pc si trovi al momento collegato su eth0. Questo aspetto non so se posso risolverlo con iptables o se devo impostare dhcp in modo che assegni a tutti i client su eth0 sempre lo stesso ip (tanto si tratta di 1 per volta)
Iptables e veramente "vasto" che non riesco a risolvermelo da solo...
Originariamente inviato da share_it
Sto settando un server-router linux, sono arrivato al punto che mi manca solo più il port forwarding... Questa è la mia esigenza:
tutti i pacchetti che arrivano all'interfaccia ppp0 su un certo range di porte (es 1000-1100) devono essere inoltrati al pc collegato su eth0 (oppure ma peggio al pc con un dato ip).
Ho provato con
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 1000:1100 -j DNAT --to-destination 192.168.0.2 (o l'ip che ho al momento)
ma sembra non andare...
Ripeto per me sarebbe meglio riuscire a forwardare quelle porte a qualsiasi pc si trovi al momento collegato su eth0. Questo aspetto non so se posso risolverlo con iptables o se devo impostare dhcp in modo che assegni a tutti i client su eth0 sempre lo stesso ip (tanto si tratta di 1 per volta)
Iptables e veramente "vasto" che non riesco a risolvermelo da solo...
cosa e' che esattamente non va ?non viene fatto il forward ?
share_it
04-11-2004, 11:08
si il forward non viene fatto...
Magari sono io che mi dimentico qualcosa, ma non ne so quasi nulla di iptables.
Oggi cmq mi stampo qualcosa e comincio a studiarlo un po', ma ho poco tempo e devo risolvere velocemente questa storia, poi le finezze verranno in futuro.
Originariamente inviato da share_it
si il forward non viene fatto...
Magari sono io che mi dimentico qualcosa, ma non ne so quasi nulla di iptables.
Oggi cmq mi stampo qualcosa e comincio a studiarlo un po', ma ho poco tempo e devo risolvere velocemente questa storia, poi le finezze verranno in futuro.
dunque nella mi ignoranza faccio qualcosa di simile a:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
solo che poi ho dovuto aggiungere questo, se no mi bloccava tutto :
echo 1 > /proc/sys/net/ipv4/ip_forward
che sia quello che ti serve ?
share_it
04-11-2004, 11:17
server:~ # cat /proc/sys/net/ipv4/ip_forward
1
quello l'avevo fatto...
Pero vedo che il comando che usi tu e totalmente diverso dal mio ??
ci stiamo riferendo alla stessa cosa? io voglio che i pacchetti DA ppp0 (internet) arrivino al mio pc su eth0
Nell'altro senso le cose già funzionano, cioe navigo perfettamente. Non mi vanno i prog tipo p2p e messaggistica istantanea
Originariamente inviato da share_it
server:~ # cat /proc/sys/net/ipv4/ip_forward
1
quello l'avevo fatto...
Pero vedo che il comando che usi tu e totalmente diverso dal mio ??
ci stiamo riferendo alla stessa cosa? io voglio che i pacchetti DA ppp0 (internet) arrivino al mio pc su eth0
Nell'altro senso le cose già funzionano, cioe navigo perfettamente. Non mi vanno i prog tipo p2p e messaggistica istantanea
infatti e' diverso,era per farti provare:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
ti fa passare TUTTO su QUALSIASI eth.
cioe' come vuoi tu:
tutti i pacchetti DA ppp0 arrivano su tutte le eth ( non una in specifico come vuoi tu, ma su tutte).
$IPT -t nat -A PREROUTING -s 0/0 -i ppp0 -p tcp --dport 1000:1100 -j DNAT --to-dest 192.168.0.1
cosi' a me funziona....
ma scusa se te lo chiedo... perche' devi redirigere quelle porte????
Ciao!
Psycotic
04-11-2004, 16:28
IPT -t nat -A PREROUTING -s 0/0 -i ppp0 -p tcp --dport 1000:1100 -j DNAT --to-dest 192.168.0.1
cosi' i pacchetti che ti interessano entrano.. ma nn si instaura una connessione perche' nn fai il routing in uscita..
cmq e' molto meglio studiarlo iptables.. per capirne il funzionamento..
Originariamente inviato da Psycotic
IPT -t nat -A PREROUTING -s 0/0 -i ppp0 -p tcp --dport 1000:1100 -j DNAT --to-dest 192.168.0.1
cosi' i pacchetti che ti interessano entrano.. ma nn si instaura una connessione perche' nn fai il routing in uscita..
cmq e' molto meglio studiarlo iptables.. per capirne il funzionamento..
beh ovviamente con solo questa regola non funziona un tubo...
devi fare masquerading ecc.
Se deve rifare tutto il firewall da zero mica posso farlo io!
Ciao!
share_it
04-11-2004, 17:04
il masquerading credo che sia già ok.
Insomma dal pc sulla rete locale navigo tranquillamente e leggo la posta.
Cio dovrebbe significare che i pacchetti viaggano da eth0 verso ppp0 se necessario.
Tuttavia quel pc non è raggiungibile dall'esterno, cioè i pacchetti non sono instradati da ppp0 a eth0.
Mi pare di capire che stiamo parlando di PRErouting in questo caso...
Se così è non capisco perche il mio comando del primo post non funga. oltre a quello e a echo 1 > /proc/sys/net/ipv4/ip_forward devo fare altro?
x hexdef6: le porte le ho prese ad esempio...non sono realmente quelle di cui ho bisogno.
Psycotic
04-11-2004, 22:10
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 1000:1100 -j DNAT --to-destination 192.168.0.2
allora se gia' riesci ad andare in internet sei apposto, e la tua regole e' giusta, allora nn so perche' nn ti va, fai una prova, non mettere la porta natta tutto sull'altro pc, cosi vedi se si raggiunge dall'esterno, se ti funziona ritorni alla porta...
l.golinelli
04-11-2004, 22:15
E la regola SNAT non la metti?
Originariamente inviato da Psycotic
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 1000:1100 -j DNAT --to-destination 192.168.0.2
allora se gia' riesci ad andare in internet sei apposto, e la tua regole e' giusta, allora nn so perche' nn ti va, fai una prova, non mettere la porta natta tutto sull'altro pc, cosi vedi se si raggiunge dall'esterno, se ti funziona ritorni alla porta...
anche secondo me e' giusta... e visto che io ridirigo la porta 22 sul mio computer interno e pure le porte per far andare gnomemeeting, e il tutto funziona, direi che ne sono proprio sicuro!
Prova a far vedere tutto lo script... magari troviamo l'inghippo.
Altra cosa, sul tuo comuter interno prova a lanciare tcpdump in questa maniera:
tcpdump dst port NUMERO_DI_PORTA
in questo modo vedi tutti i pacchetti che arrivano (se arrivano!) sulla tua macchina interna su quella porta.
Invece per lo SNAT, se ha un ppp0 presumo abbia un'adsl e quindi al 90% ip dinamico... e quindi e' meglio fare
$IPT -t nat -A POSTROUTING -o ppp0 -j MASQUERADE -s 192.168.0.0/24 -d 0/0
almeno che tu non voglia infarcire il tuo script di grep, cut, sed per riuscire a capire che ip ha ppp0, con il risultato che se la linea si sconnette e cambi ip devi rilanciare lo script...
Ciao!
share_it
05-11-2004, 19:31
Ho capito cos'è.
E colpa di "SuseFirewall2" che usa iptables... Tuttavia non sono riuscito a configurarlo per fargli fare quel che volevo io e l'ho dovuto disattivare... se qualcuno lo conosce e sa dove sta l'inghippo, mi fa un piacere se me lo dice.
altrimenti mi devo fare tutto il firewall da me con iptables
Originariamente inviato da share_it
Ho capito cos'è.
E colpa di "SuseFirewall2" che usa iptables... Tuttavia non sono riuscito a configurarlo per fargli fare quel che volevo io e l'ho dovuto disattivare... se qualcuno lo conosce e sa dove sta l'inghippo, mi fa un piacere se me lo dice.
altrimenti mi devo fare tutto il firewall da me con iptables
io comunque ti consiglio di fare tutto da zero... almeno sai cosa fa...
comunque prova a vedere che script lancia il SuseFirewall2, magari ti trovi quello con tutte le regole da lui impostate
Ciao!
share_it
06-11-2004, 10:26
è un po' spiacevole "sprecare" il suse firewall, cmq anche pasticciando con le opzioni in /ect/sysconfig/...../susefirewall2/ non sono riuscito a sistemare la cosa.
ora sto studiando un po iptables e le cose vanno, tuttavia ci vuole un po' prima di sistemarmi tutto come voglio io... il che vuol dire che ora sto correndo qualche rischio.
PS: off topic: Questa cosa di quotare in toto il messaggio appena precedende secondo me andrebbe evitata, è inutile e rende la lettura + difficile e lunga. Io lo dico perchè lo penso, però chi non è d'accordo non se la prenda e per favore non incominciamo uno di quei noiosissimi litigi e per di + OT.
ciao
Ti consiglio di usare cmq SuseFirewall2 che nn è poi altro che una (comoda imho) interfaccia di configurazione per iptables;
con iptables -L puoi vedere le regole che imposta; il file di conf di SuseFirewall2 ha una sezione apposita per il forwarding e (per casi "estremi") una sezione dove dai tu le configurazioni custom....
;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.