Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Problema di port forwarding tramite vpn [risolto]
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian)
View previous topic :: View next topic  
Author Message
jar5
n00b
n00b


Joined: 19 Dec 2004
Posts: 40

PostPosted: Sat Dec 10, 2005 11:39 pm    Post subject: Problema di port forwarding tramite vpn [risolto] Reply with quote

Ciao a tutti.

Allora la situazione è questa:

ho un server pubblico che è collegato ad un server interno a una LAN tramite una vpn. L'obbiettivo è di fare un port forwarding (es. la porta 80) dal server pubblico verso il server all'interno della LAN passando tramite la vpn.
I 2 server si pingano tranquillamente ma il problema è che i pacchetti di richiesta verso il server pubblico non riescono ad andare verso quello privato tramite la vpn.
Il tutto è fatto usando iptables con la seguente regola:

iptables -t nat -A PREROUTING -p tcp -i eth1 -d 217.*.*.153 --dport 80 -j DNAT --to 10.*.*.2

dove 217.*.*.153 è l'indirizzo del server pubblico e 10.*.*.2 è l'indirizzo della vpn appartenente al server privato.

Ho cercato un po' in giro ma mi pare di aver capito che la situazione sia un po' diversa rispetto a un normalissimo port forwarding verso un server all'interno di una LAN a causa della presenza della vpn (ma magari sbaglio... 8) )

Sapreste aiutarmi?


Last edited by jar5 on Mon Dec 12, 2005 8:17 pm; edited 1 time in total
Back to top
View user's profile Send private message
federico
Advocate
Advocate


Joined: 18 Feb 2003
Posts: 3272
Location: Italy, Milano

PostPosted: Sun Dec 11, 2005 1:03 am    Post subject: Reply with quote

Prova un po' a controllare com ethereal o tcpdump che direzione prendono i pacchetti di risposta http dalla tua macchina verso l'esterno.
Fede
_________________
Sideralis www.sideralis.org
Pic http://blackman.amicofigo.com/gallery
Arduino http://www.arduino.cc
Chi aveva potuto aveva spaccato
2000 pezzi buttati là
Molti saluti,qualche domanda
Semplice come musica punk
Back to top
View user's profile Send private message
jar5
n00b
n00b


Joined: 19 Dec 2004
Posts: 40

PostPosted: Sun Dec 11, 2005 3:10 am    Post subject: Reply with quote

mmm... ok provo a vedere che dice ethereal però ho visto con tcpdump che non arriva neanche la richiesta.. :(

Però non ho spiegato una cosa:

i due server sono così messi:

Server pubblico:
eth1 --> 217.*.*.153 -->Interfaccia rivolta verso l'esterno(Internet)
tap0 --> 10.0.0.1 --> Interfaccia della vpn rivolta verso il server privato

Server privato:
tap --> 10.0.0.2 --> Interfaccia della vpn rivolta verso il server pubblico (oltre ovviamente ad avere eth0 come interfaccia fisica :) )

Come detto i ping funzionano però facendo delle prove ho notato che se sul server pubblico metto un daemon di apache in ascolto sull'indirizzo privato della vpn (10.0.0.1) e utilizzando la regola che ho postato prima(cambiando il 10.0.0.2 finale con 10.0.0.1), il server pubblico riponde correttamente mentre se reindirizzo la connessione verso il server privato (10.0.0.2), che è quello che dovrei fare, torna a non funzionare.

Vabbè intanto provo ethereal.

Grazie per la risposta :D
Back to top
View user's profile Send private message
comio
Advocate
Advocate


Joined: 03 Jul 2003
Posts: 2191
Location: Taranto

PostPosted: Sun Dec 11, 2005 10:42 am    Post subject: Reply with quote

Code:

...
-A PREROUTING -d 192.168.55.154 -j portredir
...
-A portredir -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.100.2
-A portredir -j RETURN


quella di sopra è la catena che mi fa il redirect delle porte nel mio caso. dovrebbe andare bene anche a te una cosa simile.
_________________
RTFM!!!!

e

http://www.comio.it
:)
Back to top
View user's profile Send private message
jar5
n00b
n00b


Joined: 19 Dec 2004
Posts: 40

PostPosted: Sun Dec 11, 2005 11:25 am    Post subject: Reply with quote

ho provato con le tue regole sostituendo al tuo 192.168.55.154 il mio 217.*.*.153 e al tuo 192.168.100.2 il mio 10.0.0.2 però purtroppo ancora non funziona.

Mi sembra di aver capito però che tu hai una LAN vera e propria mentre nel mio caso la LAN è formata da una vpn tra 2 host con connessione diretta tra di loro (diretta nel senso che ci sono solo loro 2 sulla vpn).

Non saprei ma ci sono differenze nel redirigere pacchetti usando una LAN rispetto ad usare una vpn? Comincio a pensarlo... :(
Back to top
View user's profile Send private message
makoomba
Bodhisattva
Bodhisattva


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Mon Dec 12, 2005 9:38 am    Post subject: Reply with quote

fare solo DNAT non basta perchè i pacchetti che arrivano al server privato tramite vpn conservano il loro ip sorgente.
la risposta di apache utilizzerà il default gateway della macchina 10.0.0.2 (probabilmente un router/modem), "uscendo" su internet con l'indirizzo pubblico del gateway stesso.

hai due possibilità:
1 - fare anche SNAT sulla vpn (lato server pubblico) in modo che l'ip sorgente delle richieste risulti essere 10.0.0.1
2 - fare source routing sul server privato, imponendo che il traffico con ip sorgente 10.0.0.2 abbia come gateway la vpn.

c'è un 3d recente nel forum in cui ne abbiamo parlato, lì troverai maggiori dettagli.
_________________
When all else fails, read the instructions.
Back to top
View user's profile Send private message
jar5
n00b
n00b


Joined: 19 Dec 2004
Posts: 40

PostPosted: Mon Dec 12, 2005 3:05 pm    Post subject: Reply with quote

mmm..... si capisco però al momento il problema sembra essere che neanche i pacchetti di richiesta riescano ad arrivare al server privato con quella singola regola (anche se insufficiente per far funzionare il tutto ma almeno la richiesta dovrebbe arrivare, o sbaglio?).
Se mi metto in ascolto sull'interfaccia della vpn del server privato (tap0 --> indirizzo 10.0.0.2) ad esempio con tcpdump non arriva nessun pacchetto ma proprio nessuno! :roll:
Back to top
View user's profile Send private message
makoomba
Bodhisattva
Bodhisattva


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Mon Dec 12, 2005 3:15 pm    Post subject: Reply with quote

jar5 wrote:
Se mi metto in ascolto sull'interfaccia della vpn del server privato (tap0 --> indirizzo 10.0.0.2) ad esempio con tcpdump non arriva nessun pacchetto ma proprio nessuno! :roll:

se dal server pubblico fai
Code:
wget http://10.0.0.2

rilevi traffico con tcpdump ?
_________________
When all else fails, read the instructions.
Back to top
View user's profile Send private message
jar5
n00b
n00b


Joined: 19 Dec 2004
Posts: 40

PostPosted: Mon Dec 12, 2005 3:17 pm    Post subject: Reply with quote

Si riesco a rilevarlo, ad esempio se dal pubblico faccio "links 10.0.0.2" la pagina viene aperta.
Back to top
View user's profile Send private message
makoomba
Bodhisattva
Bodhisattva


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Mon Dec 12, 2005 3:22 pm    Post subject: Reply with quote

l'ip forwarding è abilitato sul server pubblico ?
_________________
When all else fails, read the instructions.
Back to top
View user's profile Send private message
jar5
n00b
n00b


Joined: 19 Dec 2004
Posts: 40

PostPosted: Mon Dec 12, 2005 3:27 pm    Post subject: Reply with quote

sul pubblico c'è questo:

Code:

iptables -t nat -A PREROUTING -p tcp -i eth1 -d 217.*.*.153 --dport 80 -j DNAT --to 10.*.*.2


però se non sbaglio almeno con questo le richieste dovrebbero arrivare.
Back to top
View user's profile Send private message
makoomba
Bodhisattva
Bodhisattva


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Mon Dec 12, 2005 3:28 pm    Post subject: Reply with quote

posta
Code:
sysctl net.ipv4.ip_forward

sul server pubblico
_________________
When all else fails, read the instructions.
Back to top
View user's profile Send private message
jar5
n00b
n00b


Joined: 19 Dec 2004
Posts: 40

PostPosted: Mon Dec 12, 2005 3:32 pm    Post subject: Reply with quote

si il forward è attivo :) :

Code:


pc-l ~ # sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
Back to top
View user's profile Send private message
makoomba
Bodhisattva
Bodhisattva


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Mon Dec 12, 2005 3:38 pm    Post subject: Reply with quote

mmm...
hai altre regole nel firewall ?
sul pubblico, dai
Code:
iptables -t nat -Z

questa azzera i contatori relativi alle regole del firewall

prova una connessione dall'esterno verso la porta 80 del server pubblico e poi posta
Code:
iptables -t nat -nvL

_________________
When all else fails, read the instructions.
Back to top
View user's profile Send private message
jar5
n00b
n00b


Joined: 19 Dec 2004
Posts: 40

PostPosted: Mon Dec 12, 2005 3:42 pm    Post subject: Reply with quote

No per il momento ho tolto tutte le regole per fare queste prove sul forwarding eccetto quella per il DNAT.

Code:

pc-l ~ # iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 4324 packets, 272K bytes)
 pkts bytes target     prot opt in     out     source               destination
    3   156 DNAT       tcp  --  eth1   *       0.0.0.0/0            217.*.*.153        tcp dpt:80 to:10.0.0.1

Chain POSTROUTING (policy ACCEPT 3641 packets, 246K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 3641 packets, 246K bytes)
 pkts bytes target     prot opt in     out     source               destination
Back to top
View user's profile Send private message
makoomba
Bodhisattva
Bodhisattva


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Mon Dec 12, 2005 3:45 pm    Post subject: Reply with quote

Code:
156 DNAT       tcp  --  eth1   *       0.0.0.0/0            217.*.*.153        tcp dpt:80 to:10.0.0.1

...
dev'essere
Code:
156 DNAT       tcp  --  eth1   *       0.0.0.0/0            217.*.*.153        tcp dpt:80 to:10.0.0.2

_________________
When all else fails, read the instructions.
Back to top
View user's profile Send private message
jar5
n00b
n00b


Joined: 19 Dec 2004
Posts: 40

PostPosted: Mon Dec 12, 2005 3:47 pm    Post subject: Reply with quote

si scusa ho fatto delle prove ma poi l'ho ricambiato in 10.0.0.2 ma non funziona cmq, ho già provato
Back to top
View user's profile Send private message
jar5
n00b
n00b


Joined: 19 Dec 2004
Posts: 40

PostPosted: Mon Dec 12, 2005 3:52 pm    Post subject: Reply with quote

il problema sembra essere che i due host della vpn comunicano tranquillamente ma sembra che il server pubblico non riesca a girare i pacchetti dalla eth1 alla tap0
Back to top
View user's profile Send private message
makoomba
Bodhisattva
Bodhisattva


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Mon Dec 12, 2005 3:52 pm    Post subject: Reply with quote

ok, metti tcpdump in ascolto su eth1 del server pubblico, fai un test (dall'esterno) e posta l'output.
poi mettilo su tun0 sempre sul pubblico, rifai il test e posta anche quello
e già che ci sei, posta pure route -n

edit
su tap0, non tun0
_________________
When all else fails, read the instructions.
Back to top
View user's profile Send private message
jar5
n00b
n00b


Joined: 19 Dec 2004
Posts: 40

PostPosted: Mon Dec 12, 2005 5:10 pm    Post subject: Reply with quote

Allora allora:

Sul server pubblico:

Code:

pc-l ~ # iptables -t nat -vL
Chain PREROUTING (policy ACCEPT 7974 packets, 502K bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DNAT       tcp  --  eth1   any     anywhere             pc-1                tcp dpt:http to:10.0.0.2

Chain POSTROUTING (policy ACCEPT 6887 packets, 469K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 6887 packets, 469K bytes)
 pkts bytes target     prot opt in     out     source               destination


Code:

pc-l ~ # tcpdump -i eth1 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes

18:59:49.274158 IP 1.*.*.42.2474 > 217.*.*.153.80: S 1444702042:1444702042(0) win 65535 <mss 1460,nop,wscale 3,nop,nop,sackOK>
18:59:52.097825 IP 1.*.*.42.2474 > 217.*.*.153.80: S 1444702042:1444702042(0) win 65535 <mss 1460,nop,wscale 3,nop,nop,sackOK>


2 packets captured
4 packets received by filter
0 packets dropped by kernel




Code:

pc-l ~ # tcpdump -i tap0 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tap0, link-type EN10MB (Ethernet), capture size 96 bytes

19:01:33.166451 IP 1.*.*.42.2480 > 10.0.0.2.80: S 2731374723:2731374723(0) win 65535 <mss 1460,nop,wscale 3,nop,nop,sackOK>
19:01:36.005516 IP 1.*.*.42.2480 > 10.0.0.2.80: S 2731374723:2731374723(0) win 65535 <mss 1460,nop,wscale 3,nop,nop,sackOK>
19:01:42.040974 IP 1.*.*.42.2480 > 10.0.0.2.80: S 2731374723:2731374723(0) win 65535 <mss 1460,nop,wscale 3,nop,nop,sackOK>

3 packets captured
6 packets received by filter
0 packets dropped by kernel


Code:
pc-l ~ # route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.0.0.0        0.0.0.0         255.255.255.252 U     0      0        0 tap0
1.*.*.0         0.0.0.0         255.255.255.0   U     0      0        0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         1.*.*.1         0.0.0.0         UG    0      0        0 eth1


1.*.*.42 corrisponde all'host esterno dal quale stò facendo le richieste di prova.

Ma cacchio ora le richieste arrivato al server privato 8O giuro che non ho cambiato nulla :o

In questa situazione quindi mi bastarebbe fare quell'SNAT di cui mi parlavi prima?
Back to top
View user's profile Send private message
makoomba
Bodhisattva
Bodhisattva


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Mon Dec 12, 2005 5:14 pm    Post subject: Reply with quote

jar5 wrote:
In questa situazione quindi mi bastarebbe fare quell'SNAT di cui mi parlavi prima?



edit:
qui c'è il 3d di cui ti parlavo
_________________
When all else fails, read the instructions.
Back to top
View user's profile Send private message
jar5
n00b
n00b


Joined: 19 Dec 2004
Posts: 40

PostPosted: Mon Dec 12, 2005 5:26 pm    Post subject: Reply with quote

Nella prima risposta mi hai detto:

Quote:
1 - fare anche SNAT sulla vpn (lato server pubblico) in modo che l'ip sorgente delle richieste risulti essere 10.0.0.1


ma a questo punto le risposte del server apache sul server privato non dovrebbero viaggiare sulla vpn? e non serve un masquerade sul server pubblico?
Mi faresti un esempio di regola iptables per l'SNAT? Facciamo prima così almeno capisco al volo :)

edit:

ok avevo postato prima che editati 8)
ora leggo, grazie
Back to top
View user's profile Send private message
makoomba
Bodhisattva
Bodhisattva


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Mon Dec 12, 2005 5:38 pm    Post subject: Reply with quote

jar5 wrote:
Mi faresti un esempio di regola iptables per l'SNAT? Facciamo prima così almeno capisco al volo :)

domanda: hai letto il link che ti ho postato ?
c'è scritto esattamente come devi fare.

edit.
anch'io ho postato senza leggere il tuo edit....
siamo pari ;)
_________________
When all else fails, read the instructions.
Back to top
View user's profile Send private message
jar5
n00b
n00b


Joined: 19 Dec 2004
Posts: 40

PostPosted: Mon Dec 12, 2005 5:55 pm    Post subject: Reply with quote

Si infatti ti chiedo scusa ti ho fatto la domanda senza aver visto il tuo edit :oops:

In effetti ora con quella regola funziona tutto alla grande!
Ti dovrebbero fare un statua :D

Grazie a tutti quelli che sono intervenuti in mio soccorso :lol:

Ciao e grazie
Back to top
View user's profile Send private message
makoomba
Bodhisattva
Bodhisattva


Joined: 03 Jun 2004
Posts: 1856

PostPosted: Mon Dec 12, 2005 6:01 pm    Post subject: Reply with quote

:wink:
_________________
When all else fails, read the instructions.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum