Назад | Перейти на главную страницу

Подключите Linux-сервер к VPN-серверу через PPTP

Я пытаюсь подключить сервер Linux (Ubuntu 10.04 LST) к VPN-серверу через Клиент PPTP к серверу VPN. Я настроил PPTP-клиент, как сказано в документация. Соединение правильно добавлено как интерфейс, но каким-то образом соединение не работает. ping -I ppp0 google.com доза ничего не вернуть и traceroute -i ppp0 показывает только первый прыжок, а затем ничего не отображает. Есть идеи, что происходит не так? Неправильная конфигурация маршрутизации?

ifconfig вывод для настроенного интерфейса:

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:xx.x.xxx.xxx  P-t-P:10.0.0.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1496  Metric:1
          RX packets:415 errors:0 dropped:0 overruns:0 frame:0
          TX packets:468 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:31428 (31.4 KB)  TX bytes:32394 (32.3 KB)

route вывод

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
xx.x.x.1        *               255.255.255.255 UH    0      0        0 ppp0
xx.xxx.xxx.xx   sp.ip           255.255.255.255 UGH   0      0        0 eth1
192.168.3.0     *               255.255.255.0   U     0      0        0 eth2
192.168.2.0     *               255.255.255.0   U     0      0        0 eth1
default         sp.ip           0.0.0.0         UG    100    0        0 eth1

Вам необходимо настроить NAT IP-Masquerading с помощью iptables на удаленном сервере. В противном случае ваш клиентский сервер не сможет получить доступ к Интернету через VPN с одним IP-адресом удаленного сервера.

в двух словах:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

эти две строки показывают, как можно настроить IP-Masquerading.

если вы не знакомы с iptables, в Интернете есть множество руководств.

К вашему сведению, tldp содержит довольно подробную инструкцию по настройке IP-маскарадинга. http://tldp.org/HOWTO/html_single/Masquerading-Simple-HOWTO/

Как можно что-то пинговать через ppp0, если у вас нет маршрута для этого.

Во-первых: добавьте маршрут к VPN-серверу

route add $VPN_SERVER_IP gw $GATEWAY_TO_VPN_SERVER

(как я вижу, $ GATEWAY_TO_VPN_SERVER = sp.ip)

Во-вторых: удалить маршрут по умолчанию для eth1

route del default dev eth1

В-третьих: добавьте маршрут по умолчанию для ppp0

route add default dev ppp0

И с этого момента все пакеты будут маршрутизироваться через dev ppp0.