Eliezer Croitoru <eliezer <at> ngtech.co.il> writes:
>
> Hey,
>
> On 10/31/2013 09:58 AM, WorkingMan wrote:
> > iptables -t nat -A POSTROUTING -j MASQUERADE
>
> try to flush all the iptables rules by:
> iptables -t nat -F
> iptables -t filter -F
> iptables -t mangle -F
>
> then add the next:
> iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
> sysctl -w net.ipv4.ip_forward=1
>
> The above rules should make the client able to do any network thing he
> needs to if the vpn client and server are configured to route all the
> traffic to the VPN server.
> then use tcpdump:
> tcpdump -i eth0 -nn port 80
>
> to see what traffic is being sent from the server to the web.
>
> then and only after these tests are made (note that the -F might need
> the POSTROUTING or any other name of a table after it) you can minimize
> the cause of the problem to the VPN level or to the iptables or any
> other level.
>
> can you by any chance run a "ifconfig -a" command and share the output?
>
> Eliezer
>
>
Do I need to do anything on client side? I am using OS's built-in VPN client
and browser.
VPN server:
eth0 Link encap:Ethernet HWaddr 0a:a5:82:f8:2e:93
inet addr:10.0.0.170 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::8a5:82ff:fef8:2e93/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:14748 errors:0 dropped:0 overruns:0 frame:0
TX packets:5123 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:15268379 (15.2 MB) TX bytes:917810 (917.8 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
#this interface has no consequence since it's working with or without it
eth1 Link encap:Ethernet HWaddr 0a:af:5f:23:3d:31
inet addr:10.0.0.11 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::8af:5fff:fe23:3d31/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2197 errors:0 dropped:0 overruns:0 frame:0
TX packets:2326 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:435969 (435.9 KB) TX bytes:458603 (458.6 KB)
SQUID server:
eth0 Link encap:Ethernet HWaddr 0a:3c:e1:08:45:b7
inet addr:10.0.0.117 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::83c:e1ff:fe08:45b7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:105968 errors:0 dropped:0 overruns:0 frame:0
TX packets:58748 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:101288758 (101.2 MB) TX bytes:17275538 (17.2 MB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:175 errors:0 dropped:0 overruns:0 frame:0
TX packets:175 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:82568 (82.5 KB) TX bytes:82568 (82.5 KB)
I am suspecting something is going on but I am just not seen it in the logs.
tshark is not catching anything either by host <IP> or port 3130 on either
VPN/SQUID. Does the TPROXY way work for SQUID on a remote server because I
was going to try that next?
ping, dns lookup all seems normal except for port 80 (all apps not using
port 80 works). with clean.rules set using your suggested rules I see this
(client can browse but doesn't look like it went to SQUID server at all)
Src: 10.100.0.1 (10.100.0.1, VPN client), Dst: 176.32.98.168 (amazon)
Src: 10.0.0.170 (10.0.0.170, VPN), Dst: 176.32.98.168 (176.32.98.168)
Src: 176.32.98.168 (176.32.98.168), Dst: 10.0.0.170 (10.0.0.170)
Let's just say things look normal.
With proxy.rules (policy based routing), I see alot of TCP retransmission
from VPN client/server to the web server.
10.0.0.170 -> 157.166.248.10 TCP 78 60440 > http [SYN] Seq=0 Win=65535 Len=0
MSS=1240 WS=16 TSval=230783310 TSecr=0 SACK_PERM=1
10.0.0.170 -> 157.166.248.11 TCP 78 [TCP Retransmission] 60437 > http [SYN]
Seq=0 Win=65535 Len=0 MSS=1240 WS=16 TSval=230783793 TSecr=0 SACK_PERM=1
10.100.0.1 -> 157.166.249.10 TCP 78 [TCP Retransmission] 60438 > http [SYN]
Seq=0 Win=65535 Len=0 MSS=1240 WS=16 TSval=230783995 TSecr=0 SACK_PERM=1
it does this until it gives up. I hope that rings a bell. I could be
debugging this wrong and not seen the obvious. There is no trace on SQUID
server or its log so I assume traffic didn't made it over. On VPN server
when I do a query to a web site it works which is weird because I thought it
should also get routed since all tcp on eth0 ared marked (also no log in
access.log on squid side so it's not routed).
Thanks,