Linux Netfilter discussions
 help / color / mirror / Atom feed
* VPN (interface) access for and all traffic through from single user -- how to do it?
@ 2008-08-15  9:55 Jan Klod
  2008-08-15 15:29 ` Grant Taylor
       [not found] ` <200808152212.59882.janklodvan@gmail.com>
  0 siblings, 2 replies; 15+ messages in thread
From: Jan Klod @ 2008-08-15  9:55 UTC (permalink / raw)
  To: netfilter

Hello!

There is one thing really troubling me for fourth day and I hope, this is the 
right place to ask for advices: 
I have VPN access through LAN NIC, I managed to log in the VPN server and, 
using ping -I ppp0 some.host.domain got an answer. Nothing more this far, but 
the initial goal was simply to grant an user access to VPN as toppic subject 
describes. Just like I would have started firefox -I ppp0!
(all user's traffic through ppp0, while other users can still go through 
eth1!)

Also this created an extra question: how web browser "knows", which interface 
should be used, if there are multiple?

I would greatly appreciate your help here, since my efforts following 
http://gentoo-wiki.com/HOWTO_PPTP_VPN_client_(Microsoft-compatible_with_mppe)
http://www.wlug.org.nz/SourceBasedRouting
http://lartc.org/lartc.pdf
just didn't succeed somehow. 

Hope, you know,
Jan

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: VPN (interface) access for and all traffic through from single user -- how to do it?
  2008-08-15  9:55 VPN (interface) access for and all traffic through from single user -- how to do it? Jan Klod
@ 2008-08-15 15:29 ` Grant Taylor
  2008-08-15 16:14   ` Jan Klod
  2008-08-15 16:19   ` Jan Klod
       [not found] ` <200808152212.59882.janklodvan@gmail.com>
  1 sibling, 2 replies; 15+ messages in thread
From: Grant Taylor @ 2008-08-15 15:29 UTC (permalink / raw)
  To: Mail List - Netfilter

On 08/15/08 04:55, Jan Klod wrote:
> There is one thing really troubling me for fourth day and I hope, 
> this is the right place to ask for advices: I have VPN access through 
> LAN NIC, I managed to log in the VPN server and, using ping -I ppp0 
> some.host.domain got an answer. Nothing more this far, but the 
> initial goal was simply to grant an user access to VPN as toppic 
> subject describes. Just like I would have started firefox -I ppp0!
> 
> (all user's traffic through ppp0, while other users can still go 
> through eth1!)
> 
> Also this created an extra question: how web browser "knows", which 
> interface should be used, if there are multiple?

(With out having even looked at the links you provided I'm going to take 
a stab in the dark.)

I believe you are wanting to have your traffic go through the VPN as a 
default rather than through your existing default gateway.  (Presuming 
that this is the case.)

Add a route to the IP address of your remote VPN end point via your 
current default gateway.  (Bring the VPN up if it is not already up.) 
Add a new default gateway of the *inside* remote end of the VPN.  Remove 
your existing local default gateway.  Or if you would like you can 
change the metric of your existing local default gateway so that it is 
higher (thus less preferred) than the default gateway on the other end 
of the VPN.

Doing this will allow anything on the VPN client computer to route its 
traffic through the VPN with out having to modify any thing specific to 
each program.



Grant. . . .

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: VPN (interface) access for and all traffic through from single user -- how to do it?
  2008-08-15 15:29 ` Grant Taylor
@ 2008-08-15 16:14   ` Jan Klod
  2008-08-15 16:28     ` Grant Taylor
  2008-08-15 16:19   ` Jan Klod
  1 sibling, 1 reply; 15+ messages in thread
From: Jan Klod @ 2008-08-15 16:14 UTC (permalink / raw)
  To: netfilter

May I ask some commands?
Say, I have eth1 with address 192.168.2.34, router (and nameserver) address 
192.168.2.1 and I've connected to VPN through ppp0 with local  IP address 
215.155.114.16 and remote IP address 215.155.115.254! (VPN's gateway is 
194.12.33.1 for connecting) (VPN or PPTP)

At least, what are those command line entries, so I can browse network through 
VPN?
Hope, I explained better...

On Friday 15 August 2008 18:29:49 you wrote:
> > (all user's traffic through ppp0, while other users can still go
> > through eth1!)
> >
> > Also this created an extra question: how web browser "knows", which
> > interface should be used, if there are multiple?
>
> (With out having even looked at the links you provided I'm going to take
> a stab in the dark.)
>
> I believe you are wanting to have your traffic go through the VPN as a
> default rather than through your existing default gateway.  (Presuming
> that this is the case.)
Not really. My intend was, that linux user myuser1 is using VPN, but all 
others use LAN directly. So all users have network access, but only myuser1 
is connected through VPN!

Jan

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: VPN (interface) access for and all traffic through from single user -- how to do it?
  2008-08-15 15:29 ` Grant Taylor
  2008-08-15 16:14   ` Jan Klod
@ 2008-08-15 16:19   ` Jan Klod
  1 sibling, 0 replies; 15+ messages in thread
From: Jan Klod @ 2008-08-15 16:19 UTC (permalink / raw)
  To: netfilter

I forgot to mention: this is all done on and for single machine.
Interface "separation" could be done by packet marking.... 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: VPN (interface) access for and all traffic through from single user -- how to do it?
  2008-08-15 16:14   ` Jan Klod
@ 2008-08-15 16:28     ` Grant Taylor
  0 siblings, 0 replies; 15+ messages in thread
From: Grant Taylor @ 2008-08-15 16:28 UTC (permalink / raw)
  To: Mail List - Netfilter

On 08/15/08 11:14, Jan Klod wrote:
> May I ask some commands?

*nod*

> Say, I have eth1 with address 192.168.2.34, router (and nameserver) 
> address 192.168.2.1 and I've connected to VPN through ppp0 with local 
> IP address 215.155.114.16 and remote IP address 215.155.115.254! 
> (VPN's gateway is 194.12.33.1 for connecting) (VPN or PPTP)

So your client is 192.168.2.34 and your (current) default gateway is 
192.168.2.1.  You have a VPN established from your client to 
215.155.115.254.  Your end of the inside of the VPN is 
194.12.33.<something> and the remote end of the inside of the VPN is 
194.12.33.1.  Is all of this correct?  (I'm going to presume yes with 
the commands below.)

route add -host 215.155.114.254 gw 192.168.2.1
route add default gw 194.12.33.1 metric 1
route del default gw 192.168.2.1
route add default gw 192.168.2.1 metric 2

This should do the following:
  - Add a route to your VPN target by way of (the IP of) your (current) 
default gateway.
  - Add a the remote end of the inside of the VPN as your new default 
gateway with a low metric.
  - Delete your old (local) default gateway.
  - Re-add your old (local) default gateway with a higher metric.

> At least, what are those command line entries, so I can browse 
> network through VPN?

If by "browse" you mean browse the web or use any other ""standard 
internet service, you should be good to go.  If by "browse" you mean 
"Browse 'My Network Places'" you may run in to other SMB / CIFS related 
networking issues (crossing subnets).

> Hope, I explained better...

I think so.  Does my response help?



Grant. . . .

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: VPN (interface) access for and all traffic through from single user -- how to do it?
       [not found]   ` <48A5F9E2.5080206@riverviewtech.net>
@ 2008-08-16 20:47     ` Jan Klod
  2008-08-17  4:30       ` Michael Alaimo
  2008-08-17  4:31       ` VPN (interface) access for and all traffic through from single user -- how to do it? Grant Taylor
  0 siblings, 2 replies; 15+ messages in thread
From: Jan Klod @ 2008-08-16 20:47 UTC (permalink / raw)
  To: netfilter

Still asking questions. I tried to follow probably the most simple case 
presented here:
http://pptpclient.sourceforge.net/routing.phtml#all-to-tunnel
but result is no access to internet at all. How can I debug these things and 
find out what is going on? Now it is like in the dark...

Is it considerable to be a proof, that pptp VPN tunnel is working, if I can 
ping -i ppp0 <remote VPN address>?

Looking for solutions,
Jan

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: VPN (interface) access for and all traffic through from single user -- how to do it?
  2008-08-16 20:47     ` Jan Klod
@ 2008-08-17  4:30       ` Michael Alaimo
  2008-08-17  5:01         ` Grant Taylor
  2008-08-17  4:31       ` VPN (interface) access for and all traffic through from single user -- how to do it? Grant Taylor
  1 sibling, 1 reply; 15+ messages in thread
From: Michael Alaimo @ 2008-08-17  4:30 UTC (permalink / raw)
  To: Jan Klod; +Cc: netfilter

Hi Jan,

I would use tcpdump and traceroute to aid in debugging.  nmap might also 
be useful.
I also forget exactly what to do here, so if someone else knows please 
help out.
If i recall correctly, there is a way you can direct traffic to your vpn 
using SNAT.
so like if iptables -t nat -A POSTROUTING -d vpn_endpoint -J SNAT 
--to-source local_vpn_endpoint

I think thats correct.  The idea here is to have only traffic to the vpn 
use the vpn, no?   Trafic would leave
your vpn endpoint, reach the other side.  The other side would reply 
back to your SNAT -to-source which
would get routed to your pc. 

I know this works with the *swan implementations, so using some sort of 
NAT may help.
I would use those tools to debug, but there are probably some others 
that would help as well.

Have you ever tried OpenVPN?  It have used it in an office situation 
before, and people appreciated it.

Please correct me if I am wrong.  Hope this helps.

Mike

Jan Klod wrote:
> Still asking questions. I tried to follow probably the most simple case 
> presented here:
> http://pptpclient.sourceforge.net/routing.phtml#all-to-tunnel
> but result is no access to internet at all. How can I debug these things and 
> find out what is going on? Now it is like in the dark...
>
> Is it considerable to be a proof, that pptp VPN tunnel is working, if I can 
> ping -i ppp0 <remote VPN address>?
>
> Looking for solutions,
> Jan
> --
> To unsubscribe from this list: send the line "unsubscribe netfilter" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>   


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: VPN (interface) access for and all traffic through from single user -- how to do it?
  2008-08-16 20:47     ` Jan Klod
  2008-08-17  4:30       ` Michael Alaimo
@ 2008-08-17  4:31       ` Grant Taylor
  2008-08-17 11:20         ` Jan Klod
  1 sibling, 1 reply; 15+ messages in thread
From: Grant Taylor @ 2008-08-17  4:31 UTC (permalink / raw)
  To: Mail List - Netfilter

On 8/16/2008 3:47 PM, Jan Klod wrote:
> Is it considerable to be a proof, that pptp VPN tunnel is working, if 
> I can ping -i ppp0 <remote VPN address>?

If the address is on the inside of the VPN or on the LAN on the other 
end of the VPN, most likely.

> Looking for solutions,

Please reset everything to the way it was before trying things suggested 
(restart your network or reboot should do it).

Please provide the output of "ifconfig" and "route -n" after bring up 
the VPN and being able to ping like above.  I'll then try to provide 
example commands at that point to do what you are wanting.



Grant. . . .

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: VPN (interface) access for and all traffic through from single user -- how to do it?
  2008-08-17  4:30       ` Michael Alaimo
@ 2008-08-17  5:01         ` Grant Taylor
  2008-08-21 13:32           ` active interface? Jan Klod
  0 siblings, 1 reply; 15+ messages in thread
From: Grant Taylor @ 2008-08-17  5:01 UTC (permalink / raw)
  To: Mail List - Netfilter

On 8/16/2008 11:30 PM, Michael Alaimo wrote:
> I would use tcpdump and traceroute to aid in debugging.  nmap might also 
> be useful.

I agree that those are wonderful tools and quite often very handy. 
However I don't think things are to that point yet.  I believe that the 
OP is able to get the VPN up and functional with the remainder of the 
internet traffic going out his / her default internet connection, not 
the VPN.  Presuming that this is the case, this is just an issue of 
getting the routing set up correctly.

> I also forget exactly what to do here, so if someone else knows please 
> help out.
> If i recall correctly, there is a way you can direct traffic to your vpn 
> using SNAT.

If by "... direct traffic to your vpn ..." means cause replies to your 
traffic to come back towards you through the VPN, yes I agree.  You are 
wanting any traffic you send out through the VPN to appear as if it is 
coming from your VPN IP so that the traffic will be routed back to you 
through the VPN.  This is where SNAT / MASQUERADE comes in to play.

> so like if iptables -t nat -A POSTROUTING -d vpn_endpoint -J SNAT 
> --to-source local_vpn_endpoint

I think you are close.  However I would not match traffic that is 
destined to the VPN endpoint.  I say this because it is very unlikely 
that there will be much IP traffic that is actually destined to the 
other VPN end point its self.  Sure a lot of traffic will flow through 
it, but not be to it directly.

I think you are wanting to remove the "-d vpn_endpoint" from that line 
and possibly put "-o vpn_interface" in its place.  Seeing as how this is 
a dynamic connection (one that comes up and goes down at least compared 
to a static IP on a LAN connection) you could use the MASQUERADE target 
as a short cut as well as not maintaining connection state across 
interface flaps.

> I think thats correct.  The idea here is to have only traffic to the vpn 
> use the vpn, no?   Trafic would leave
> your vpn endpoint, reach the other side.  The other side would reply 
> back to your SNAT -to-source which
> would get routed to your pc.
> I know this works with the *swan implementations, so using some sort of 
> NAT may help.
> I would use those tools to debug, but there are probably some others 
> that would help as well.

*nod*  Source NAT is very likely going to be required to get his / her 
reply traffic back to his end of the VPN.  At least it will be required 
for any systems behind the computer connecting to the VPN.  If there are 
no computers behind it, then NAT should not be needed as the system's 
routing stack *should* choose the VPN IP any way.

> Have you ever tried OpenVPN?  It have used it in an office situation 
> before, and people appreciated it.

Just guessing, but based on the fact that the OP was referring to PPTP 
as well as Microsoft I'm betting that he / she is connecting to a 
Microsoft VPN server, which to the best of my knowledge does not use SSL 
VPNs, thus I don't think OpenVPN will be of much help in this case. 
That is not to say that OpenVPN is good or bad, just that it likely will 
not work in this situation (presuming the Microsoft VPN server).



Grant. . . .

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: VPN (interface) access for and all traffic through from single user -- how to do it?
  2008-08-17  4:31       ` VPN (interface) access for and all traffic through from single user -- how to do it? Grant Taylor
@ 2008-08-17 11:20         ` Jan Klod
  2008-08-17 17:53           ` Grant Taylor
  0 siblings, 1 reply; 15+ messages in thread
From: Jan Klod @ 2008-08-17 11:20 UTC (permalink / raw)
  To: netfilter

On Sunday 17 August 2008 07:31:33 you wrote:
> On 8/16/2008 3:47 PM, Jan Klod wrote:
> > Is it considerable to be a proof, that pptp VPN tunnel is working, if
> > I can ping -i ppp0 <remote VPN address>?
>
> If the address is on the inside of the VPN or on the LAN on the other
> end of the VPN, most likely.
I think so, but how to check?

>
> > Looking for solutions,
>
> Please reset everything to the way it was before trying things suggested
> (restart your network or reboot should do it).
>
> Please provide the output of "ifconfig" and "route -n" after bring up
> the VPN and being able to ping like above.  I'll then try to provide
> example commands at that point to do what you are wanting.

Here I go:

local ~ # dhcpcd -k eth1
local ~ # ifconfig eth1 down
local ~ # ifconfig eth1 up
local ~ # dhcpcd eth1
local ~ # ip route list
192.168.2.0/24 dev eth1  proto kernel  scope link  src 192.168.2.111
127.0.0.0/8 dev lo  scope link
default via 192.168.2.1 dev eth1
local ~ # ip rule list
0:      from all lookup local
32766:  from all lookup main
32767:  from all lookup default


local ~ # pon mySERVERname debug dump logfd 2 nodetach
pppd options in effect:
debug           # (from command line)
nodetach                # (from command line)
logfd 2         # (from command line)
dump            # (from command line)
noauth          # (from /etc/ppp/options.mySERVERname )
name myLOGIN            # (from /etc/ppp/peers/mySERVERname )
remotename mySERVERname                 # (from /etc/ppp/peers/mySERVERname )
                # (from /etc/ppp/options.mySERVERname )
pty pptp 193.13.128.6 --nolaunchpppd            # 
(from /etc/ppp/peers/mySERVERname )
mru 1000                # (from /etc/ppp/options.mySERVERname )
mtu 1000                # (from /etc/ppp/options.mySERVERname )
lcp-echo-failure 10             # (from /etc/ppp/options.mySERVERname )
lcp-echo-interval 10            # (from /etc/ppp/options.mySERVERname )
ipparam mySERVERname            # (from /etc/ppp/peers/mySERVERname )
nobsdcomp               # (from /etc/ppp/options.mySERVERname )
nodeflate               # (from /etc/ppp/options.mySERVERname )
require-mppe-128                # (from /etc/ppp/options.mySERVERname )
using channel 29
Using interface ppp0
Connect: ppp0 <--> /dev/pts/7
sent [LCP ConfReq id=0x1 <mru 1000> <asyncmap 0x0> <magic 0x76d7cdc3> <pcomp> 
<accomp>]
rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0xf4a5af8b> 
<pcomp> <accomp>]
sent [LCP ConfAck id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0xf4a5af8b> 
<pcomp> <accomp>]
rcvd [LCP ConfAck id=0x1 <mru 1000> <asyncmap 0x0> <magic 0x76d7cdc3> <pcomp> 
<accomp>]
sent [LCP EchoReq id=0x0 magic=0x76d7cdc3]
rcvd [CHAP Challenge id=0xad <be119e70047db182c48380880a0fbf66>, name 
= "vpn-gw"]
sent [CHAP Response id=0xad 
<8dce041691feeec08f9cc100cb4d12e3000000000000000084a80f09fe0a2aedd545eb7563057de7944cdef00012c5d900>, 
name = "myLOGIN"]
rcvd [LCP EchoRep id=0x0 magic=0xf4a5af8b]
rcvd [CHAP Success id=0xad "S=D35E31DAAB3F9837AA1159ACCC91DA05007EC37B"]
CHAP authentication succeeded
sent [CCP ConfReq id=0x1 <mppe +H -M +S -L -D -C>]
rcvd [CCP ConfReq id=0x1 <mppe +H -M +S -L -D -C>]
sent [CCP ConfAck id=0x1 <mppe +H -M +S -L -D -C>]
rcvd [CCP ConfAck id=0x1 <mppe +H -M +S -L -D -C>]
MPPE 128-bit stateless compression enabled
sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 215.155.115.254>]
sent [IPCP ConfAck id=0x1 <compress VJ 0f 01> <addr 215.155.115.254>]
rcvd [IPCP ConfNak id=0x1 <addr 215.155.114.15>]
sent [IPCP ConfReq id=0x2 <compress VJ 0f 01> <addr 215.155.114.15>]
rcvd [IPCP ConfAck id=0x2 <compress VJ 0f 01> <addr 215.155.114.15>]
local  IP address 215.155.114.15
remote IP address 215.155.115.254
Script /etc/ppp/ip-up started (pid 3609)
Script /etc/ppp/ip-up finished (pid 3609), status = 0x0

It might be Microsoft VPN most likely, but I am not absolutely sure (how to 
check?).

local ~ ip route list
215.155.115.254 dev ppp0  proto kernel  scope link  src 215.155.114.15
192.168.2.0/24 dev eth1  proto kernel  scope link  src 192.168.2.111
127.0.0.0/8 dev lo  scope link
default via 192.168.2.1 dev eth1

local ~ # ping -I ppp0 www.kernel.org
PING pub.us.kernel.org (204.152.191.5) from 215.155.114.15 ppp0: 56(84) bytes 
of data.

--- pub.us.kernel.org ping statistics ---
30 packets transmitted, 0 received, 100% packet loss, time 29008ms

ibm ~ # ping -I ppp0 215.155.115.254
PING 215.155.115.254 (215.155.115.254) from 215.155.114.15 ppp0: 56(84) bytes 
of data.
64 bytes from 215.155.115.254: icmp_seq=1 ttl=64 time=16.0 ms
64 bytes from 215.155.115.254: icmp_seq=2 ttl=64 time=12.5 ms
64 bytes from 215.155.115.254: icmp_seq=3 ttl=64 time=13.0 ms
64 bytes from 215.155.115.254: icmp_seq=4 ttl=64 time=15.4 ms
64 bytes from 215.155.115.254: icmp_seq=5 ttl=64 time=11.7 ms

--- 215.155.115.254 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 11.703/13.765/16.039/1.678 ms

local ~ # ifconfig
eth1      Link encap:Ethernet  HWaddr 01:0D:65:FA:82:F3
          inet addr:192.168.2.111  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6254696 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7275995 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:2655461882 (2532.4 Mb)  TX bytes:67477010 (64.3 Mb)
          Base address:0x8000 Memory:c0220000-c0240000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:444 errors:0 dropped:0 overruns:0 frame:0
          TX packets:444 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:52614 (51.3 Kb)  TX bytes:52614 (51.3 Kb)

ppp0      Link encap:Point-to-Point Protocol
          inet addr:215.155.114.15  P-t-P:215.155.115.254  
Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:996  Metric:1
          RX packets:40 errors:0 dropped:0 overruns:0 frame:0
          TX packets:40 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:3002 (2.9 Kb)  TX bytes:3008 (2.9 Kb)

local ~ # route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
215.155.115.254 0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
192.168.2.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         192.168.2.1     0.0.0.0         UG    0      0        0 eth1

This should contain most of necessary information...

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: VPN (interface) access for and all traffic through from single user -- how to do it?
  2008-08-17 11:20         ` Jan Klod
@ 2008-08-17 17:53           ` Grant Taylor
  2008-08-22 20:40             ` Jan Klod
  0 siblings, 1 reply; 15+ messages in thread
From: Grant Taylor @ 2008-08-17 17:53 UTC (permalink / raw)
  To: Mail List - Netfilter

On 8/17/2008 6:20 AM, Jan Klod wrote:
> I think so, but how to check?

The output of ifconfig and the VPN client trace (local / remote IP 
lines) after the VPN is up tells us what we need to know.  Yes, the 
address you are pining is the other end of the VPN.  Good.

> local ~ # ip route list
> 192.168.2.0/24 dev eth1  proto kernel  scope link  src 192.168.2.111
> 127.0.0.0/8 dev lo  scope link
> default via 192.168.2.1 dev eth1

*nod*

> pty pptp 193.13.128.6 --nolaunchpppd

Is 193.13.128.6 the IP of the VPN server you are establishing a VPN to? 
  (I'm going to presume yes for the rest of the discussion.)

> It might be Microsoft VPN most likely, but I am not absolutely sure (how to 
> check?).

It does not really matter.  It was more a point of interest that this is 
a PPTP VPN, not an SSL VPN, which is what OpenVPN provides.  Usually 
PPTP / L2TP VPNs are served up by a Microsoft VPN server where as IPSec 
/ SSL / other are served up by things that are not Microsoft. 
(PPTP/L2TP is built in to Routing and Remote Access from Microsoft.)

> local ~ ip route list
> 215.155.115.254 dev ppp0  proto kernel  scope link  src 215.155.114.15
> 192.168.2.0/24 dev eth1  proto kernel  scope link  src 192.168.2.111
> 127.0.0.0/8 dev lo  scope link
> default via 192.168.2.1 dev eth1

*nod*  Here the VPN is up and we see a new network (the VPN) as I expect.

> local ~ # ifconfig
> eth1 ... inet addr:192.168.2.111  Bcast:192.168.2.255  Mask:255.255.255.0
> lo   ... inet addr:127.0.0.1  Mask:255.0.0.0
> ppp0 ... inet addr:215.155.114.15  P-t-P:215.155.115.254  Mask:255.255.255.255
> 
> local ~ # route -n
> Kernel IP routing table
> Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
> 215.155.115.254 0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
> 192.168.2.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         192.168.2.1     0.0.0.0         UG    0      0        0 eth1
> 
> This should contain most of necessary information...

Yes it does.  At this point I would think that you can issue the 
following commands (double check my syntax) and get the result you are 
wanting.

ip route add 193.13.128.6/32 via 192.168.2.1
ip route del default via 192.168.2.1
ip route add default via 215.155.115.254 metric 1
ip route add default via 192.168.2.1 metric 2

This should do the following:
  - Add an explicit route to get to the VPN server via your local router.
  - Delete your existing default gateway so we can (re)add the new one 
that you want.
  - Add a new default gateway that is the remote end of the VPN.
  - Add a new backup default gateway that is your local router so we 
still have a backup route to the net when your VPN is down.

At this point things should be functional for you.



Grant. . . .

^ permalink raw reply	[flat|nested] 15+ messages in thread

* active interface?
  2008-08-17  5:01         ` Grant Taylor
@ 2008-08-21 13:32           ` Jan Klod
  2008-08-21 13:42             ` Jan Engelhardt
  2008-08-21 14:27             ` Grant Taylor
  0 siblings, 2 replies; 15+ messages in thread
From: Jan Klod @ 2008-08-21 13:32 UTC (permalink / raw)
  To: netfilter

I have an unanswered question: how active interface is determined in Linux? I 
mean, interface, which is used by web / mail / ping (default) ?

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: active interface?
  2008-08-21 13:32           ` active interface? Jan Klod
@ 2008-08-21 13:42             ` Jan Engelhardt
  2008-08-21 14:27             ` Grant Taylor
  1 sibling, 0 replies; 15+ messages in thread
From: Jan Engelhardt @ 2008-08-21 13:42 UTC (permalink / raw)
  To: Jan Klod; +Cc: netfilter


On Thursday 2008-08-21 09:32, Jan Klod wrote:

>I have an unanswered question: how active interface is determined in Linux? I 
>mean, interface, which is used by web / mail / ping (default) ?

Routing. You can obtain the kernel routing code's decision by

	ip route get $destination_address_here

There are a handful of parameters that influence the decision, such as 
TOS and fwmark.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: active interface?
  2008-08-21 13:32           ` active interface? Jan Klod
  2008-08-21 13:42             ` Jan Engelhardt
@ 2008-08-21 14:27             ` Grant Taylor
  1 sibling, 0 replies; 15+ messages in thread
From: Grant Taylor @ 2008-08-21 14:27 UTC (permalink / raw)
  To: Mail List - Netfilter

On 08/21/08 08:32, Jan Klod wrote:
> I have an unanswered question: how active interface is determined in 
> Linux? I mean, interface, which is used by web / mail / ping 
> (default) ?

It's not an ""interface per say.  To the best of my knowledge what 
happens is that your routing stack chooses the best route (gateway) to 
send your request through.  Once it has the route selected it will use 
the interface facing said route as it's source IP unless a specific 
source IP has already been chosen by the application.



Grant. . . .

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: VPN (interface) access for and all traffic through from single user -- how to do it?
  2008-08-17 17:53           ` Grant Taylor
@ 2008-08-22 20:40             ` Jan Klod
  0 siblings, 0 replies; 15+ messages in thread
From: Jan Klod @ 2008-08-22 20:40 UTC (permalink / raw)
  To: netfilter

Well, I got it to work in a mode, where all traffic is going through VPN like 
this:

ip route add $IP_VPN_GATEWAY via $IP_LOCAL_GATEWAY dev eth1
ip route del $IP_REMOTE_VPN_ENDPOINT dev ppp0 src $IP_LOCAL_VPN_ENDPOINT
ip route del default via $IP_LOCAL_GATEWAY dev eth1 && ip route add default 
via $IP_VPN_GATEWAY dev ppp0

But is not as nice as I would like. 

I tried this to achieve my initial goal -- ppp0 for particular user:

	echo localIP_VPN = $1
        echo remoteIP_VPN = IP_VPN_GATEWAY = $2
        echo real interface = $3
        ip rule add from all fwmark 1 table net
        ip rule add from all fwmark 2 table net-2111
        ip route add table net default via $2 dev ppp0
        ip route add table net-2111 default via 0.0.0.0 dev $3
        ip route del $2 dev ppp0 src $1
        ip route flush cache

        iptables -t mangle -A OUTPUT -m mark --mark 1 -j ACCEPT
        iptables -t mangle -A PREROUTING -m mark --mark 2 -j ACCEPT
        iptables -t mangle -A OUTPUT -m mark ! --mark 1 -m owner --uid-owner 
articles -j MARK --set-mark 1
        iptables -t mangle -A PREROUTING -d $1 -m mark ! --mark 2 -j 
MARK --set-mark 2
        iptables -t nat -A POSTROUTING -o ppp0 -j SNAT --to-source $1

But that just didn't worked somehow. Please take a closer look at previous 
commands and give some advices about if that is what I should do...

As you see, I have two tables, so I hope to "take out" outgoing from user 
through ppp0 and forward replies back to eth1, which, I believe is listened 
to, when is default in route main table.

Jan

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2008-08-22 20:40 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-15  9:55 VPN (interface) access for and all traffic through from single user -- how to do it? Jan Klod
2008-08-15 15:29 ` Grant Taylor
2008-08-15 16:14   ` Jan Klod
2008-08-15 16:28     ` Grant Taylor
2008-08-15 16:19   ` Jan Klod
     [not found] ` <200808152212.59882.janklodvan@gmail.com>
     [not found]   ` <48A5F9E2.5080206@riverviewtech.net>
2008-08-16 20:47     ` Jan Klod
2008-08-17  4:30       ` Michael Alaimo
2008-08-17  5:01         ` Grant Taylor
2008-08-21 13:32           ` active interface? Jan Klod
2008-08-21 13:42             ` Jan Engelhardt
2008-08-21 14:27             ` Grant Taylor
2008-08-17  4:31       ` VPN (interface) access for and all traffic through from single user -- how to do it? Grant Taylor
2008-08-17 11:20         ` Jan Klod
2008-08-17 17:53           ` Grant Taylor
2008-08-22 20:40             ` Jan Klod

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox