Настройка VPN соединения PPTP-BEST, PPTP-FAKE-IP, PPTP-FULLTUNNEL
Ниже приводятся скриншоты, которые помогут Вам правильно настроить VPN-подключение под Windows 2000 (XP) 1 - Запускаем "Мастер новых подключений" 2 - Выбираем "Подключить к сети на рабочем месте" 3 - Выбираем "Подключение к виртуальной части сети" 4 - В поле Организация, прописываем название VPN соединения. Например VPN PlanetSky. 5 - Теперь смотрим свойства только-что созданного VPN Адрес своего VPN сервера можно узнать здесь _http://sat.net.ua/index.php?Lev=spacegate_param - SpaceGate и _http://sat.net.ua/index.php?Lev=planetsky#m6 - PlanetSky
6 - В дополнительных параметрах безопасности, укажите протокол проверки пароля (CHAP) 7 - После нажатия на ярлык VPN PlanetSky появиться окно в которое Вы должны ввести пароль и логин полученные при регистрации.
VPN туннель под Linux
Создайте новое VPN-подключение.
Используйте адрес VPN-сервера 62.32.51.198
Установите VPN-соединение. На запрос логина/пароля вводите полученные при активации логин/пароль.
Никакие дополнительные настройки браузера не требуются.
Начальные условия: Linux RedHat 7.x-9.0, Mandrake 9.1, ...
Ядро 2.4.х, firewall выключен на период установления соединения.
Проверка корректности настройки сетевой подситемы:
ping vpn.spacegate.com.ua
Если пинг проходит удачно и без больших потерь (при более чем 10% потерь при пинге по "земле"
работать по vpn становится невозможно), то выполняем следующую команду:
telnet vpn.spacegate.com.ua 1723
Должна открыться сессия, которая закрывается после нажатия клавиши Enter:
[root@gw rc.d]# telnet vpn.spacegate.com.ua 1723
Trying 62.32.51.198...
Connected to vpn.spacegate.com.ua.
Escape character is '^]'.
Connection closed by foreign host.
По крайне мере телент сессия покажет нам, что порт 1723 vpn сервера не закрыт firewall-ом на пути следования
пакетов.
Далее качаем pptp клиент - у кого конфигурация системы удовлетворяет зависимостям - то rpm пакет с данного URL:
http://cesnet.dl.sourceforge.net/sourcef....386.rpm
Если зависимости не удовлетворяют (ppp >= 2.4.2 нужен для pptp-linux-1.2.0-1) для установки rpm пакета, то качают сырцы:
http://umn.dl.sourceforge.net/sourcef.....tar.gz
После этого устанавливаем pptp клиент:
rpm -i pptp-linux-1.2.0-1.i386.rpm
или распаковываем pptp-linux-1.2.0.tar.gz в домашнем каталоге:
tar zxf pptp-linux-1.2.0.tar.gz
cd pptp-linux-1.2.0
Проверяем лежит ли pppd в /usr/sbin Если да то компилим и инсталим пакет:
make
make install
Должен собраться без ошибок.
В /etc/ppp/peers создаем файл spacegate :
vi spacegate
Содержимое файла:
name ваш_логин
-pap
+chap
noauth
defaultroute
Редактируем файл /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
ваш_логин * ваш_пароль *
Содержимое /etc/ppp/options
lock
Подгружаем модули необходимые для работы pptp клиента:
/sbin/insmod ipip
/sbin/insmod ip_gre
Запускаем следующие команды необходимые для работы:
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/pentanet0/rp_filter
(pentanet0 при условии наличия самой Pent@NET карты, если карта другая то и путь будет другой).
Все вышеприведенные команды полезно добавить в /etc/rc.d/rc.local чтобы активировались автоматически
при следующей загрузке.
Прописываем нужные нам роуты, допустим прямой роут на DNS наземного провайдера, на отправку и получение
почты по наземному каналу, допустим:
/sbin/route del default
/sbin/ip route add default via 81.85.14.1 src ваш_IP_адрес
/sbin/ip route add сеть_наземного_провайдера/бит via gateway_наземного_провайдера src ваш_реальный_наземный_IP
...
...
DNS сервер в /etc/resolv.conf можно дописать как nameserver 81.85.14.1
Запускаем pptp клиент такой командой:
pptp vpn.spacegate.com.ua call spacegate
Если все сделано правильно то спустя несколько секунд появится сетевой интерфейс ppp с назначенным IP адресом
с сети 81.85.14.х
ppp0 Link encap:Point-to-Point Protocol
inet addr:81.85.14.10 P-t-P:81.85.14.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1476 Metric:1
RX packets:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:66 (66.0 b) TX bytes:72 (72.0 b)
При этом в /var/log/messages будет лог:
May 13 18:56:06 gw pppd[16242]: pppd 2.4.1 started by root, uid 0
May 13 18:56:06 gw pppd[16242]: Using interface ppp0
May 13 18:56:06 gw pppd[16242]: Connect: ppp0 <--> /dev/pts/10
May 13 18:56:06 gw /etc/hotplug/net.agent: assuming ppp0 is already up
May 13 18:56:17 gw pppd[16242]: Remote message: Welcome to lh-bw1.sms.co.uk.
May 13 18:56:18 gw pppd[16242]: Deflate (15) compression enabled
May 13 18:56:19 gw pppd[16242]: local IP address 81.85.14.10
May 13 18:56:19 gw pppd[16242]: remote IP address 81.85.14.1
Для разрыва vpn соединения достаточно набрать команду:
killall pptp
В логе при этому будет:
May 13 18:58:53 gw pptp[16241]: log[callmgr_main:pptp_callmgr.c:245]: Closing connection
May 13 18:58:53 gw pptp[16241]: log[pptp_conn_close:pptp_ctrl.c:307]: Closing PPTP connection
May 13 18:58:55 gw pptp[16241]: log[call_callback:pptp_callmgr.c:88]: Closing connection
May 13 18:58:55 gw pppd[16242]: Hangup (SIGHUP)
May 13 18:58:55 gw pppd[16242]: Modem hangup
May 13 18:58:55 gw pppd[16242]: Connection terminated.
May 13 18:58:55 gw pppd[16242]: Connect time 2.9 minutes.
May 13 18:58:55 gw pppd[16242]: Sent 72 bytes, received 66 bytes.
Смею напомнить - пинг на удаленный конец туннеля на IP 81.85.14.1 будет проходить только при
корректно настроенной и залоченной DVB карте - удаленный конец туннеля "завернут" не в ppp интерфейс,
а на инкапсулятор, поэтому ответы через vpn туннель приходить не будут как и любые другие данные.
Работа через ip gre туннель с динамических и статических IP адресов
Со стороны пользователей стандартная процедура установления туннеля:
===
#!/bin/bash
/sbin/insmod ip_gre
/sbin/insmod ipip
/sbin/ip route add 62.32.51.198 via Ваш_шлюз src Ваш_IP
/sbin/ip tunnel add gre1 mode gre local Ваш_IP remote 62.32.51.198
/sbin/ifconfig gre1 Ваш_IP_SG netmask 255.255.255.255
/sbin/route add -host 81.85.14.1 dev gre1
route del default; route add default dev gre1
===
То есть реально в случае динамически получаемого IP от провайдера нужно написать простенький скрипт анализирующий интерфейс исходящий на провайдера, получить с помощью grep & awk назначенный Вам IP от провайдера, назначить его переменной в скрипте "Ваш_IP" и применить его в вышеприведенном скрипте.