13 августа 2009 г.

HowTo: НАДЕЖНЫЙ и простой способ поднять VPN (pptp) в ЛИНУКСЕ!!!

У меня Ubuntu Linux настроенной сетью и pptp (сначала нужно установить пакет pptp-linux и если нужно, то network-manager-pptp). Поднимал VPN в два способа: А. скриптами (еще на 7.04, до этого локалки не было) и В. через network-manager с версии 0.7.1 на u_9.10, который очень удобен если вы работаете в Гноме.

A. Консольный способ

1. Запускаешь в консоли 'sudo network-admin' (это Система-Администрирование-Сеть) и настраиваешь Статический IP, можно и DHCP.
2. В /etc/ppp/peers/ создаем файлик trion в котором записано:
mtu 1416
mru 1500
persist
usepeerdns
maxfail 0
lcp-echo-interval 60
lcp-echo-failure 4
defaultroute
#pty "pptp vpn.trion --nolaunchpppd"
pty "pptp 10.1.9.254 --nolaunchpppd" #(сервер VPN)
name <твое имя для VPN>
remotename PPTP
#require-mppe-128
file /etc/ppp/options.pptp
ipparam trion
replacedefaultroute
noipdefault 50
    2.а В /etc/ppp/options.pptp прописать:
lock
noauth
refuse-pap
refuse-chap
nobsdcomp
nodeflate
3. в /etc/ppp/pap-secrets и в /etc/ppp.chap-secrets вписываешь логин и пароль для VPN
<логин> PPTP <пароль> *

4. создаем скрипт ip-up.local и ip-down.local

paul@ubuntu:/etc/ppp$ cat ip-up.local

#!/bin/sh
# pppd ip-up script for all-to-tunnel routing

# name of primary network interface (before tunnel)
PRIMARY=eth0

# address of tunnel server
SERVER=vpn.trion

# provided by pppd: string to identify connection aka ipparam option
CONNECTION=$6
if [ "${CONNECTION}" = "" ]; then CONNECTION=${PPP_IPPARAM}; fi

# provided by pppd: interface name
TUNNEL=$1
if [ "${TUNNEL}" = "" ]; then TUNNEL=${PPP_IFACE}; fi

# if we are being called as part of the tunnel startup
if [ "${CONNECTION}" = "trion" ] ; then

# direct tunnelled packets to the tunnel server
route add -host ${SERVER} dev ${PRIMARY}

# direct all other packets into the tunnel
route del default ${PRIMARY}
route add default dev ${TUNNEL}

fi


paul@ubuntu:/etc/ppp$ cat ip-down.local
#!/bin/sh
# pppd ip-down script for all-to-tunnel routing

# name of primary network interface (before tunnel)
PRIMARY=eth0

# provided by pppd: string to identify connection aka ipparam option
CONNECTION=$6
if [ "${CONNECTION}" = "" ]; then CONNECTION=${PPP_IPPARAM}; fi

# provided by pppd: interface name
TUNNEL=$1
if [ "${TUNNEL}" = "" ]; then TUNNEL=${PPP_IFACE}; fi

# if we are being called as part of the tunnel shutdown
if [ "${CONNECTION}" = "trion" ] ; then

# direct packets back to the original interface
route del default ${TUNNEL}
route add default dev ${PRIMARY}

fi

5. в консоли пишем sudo pon trion, а для выключения sudo poff trion

P.S. Можно и графическими утилитами настраивать, например VPN Connection Manager или pptpconfig, но мне нравиться так больше...

N.B. Для последних изменений в Трионе нужно закоментировать в п. 2 строки: #defaultroute и #replacedefaultroute и прописать nodefaultroute. А также не создавать или сделать неисполняемыми скрипты: ip-up.local ip-down.local


B. Способ настройки VPN соединения через Network Manager для Триона

Все настраиваем через DHCP. Создаем соединение VPN нажав правой кн.мыши и войдя в пункт "Изменить соединения..." Далее во вкладке VPN добавляем свою уч.запись с данными шлюза, логина и пароля. Во вкладке "Параметры IPv4" -> "Маршруты..." устанавливаем галочку на "Использовать это соединение только для ресурсов этой сети". Если включено, это соединение никогда не будет использоваться как сетевое соединение по умолчанию. На значке NM левой кнопкой мыши ... тык..тык..тык и вы в сети...

Устанавливаем deb пакет (на данный момент - linuxdcpp 1.0.3+bzr333 для lenny, squeeze, sid, jaunty, karmic. Aрхитектуры: amd64, i386)  c блога "Записки Alex_P" и в локальный "бой", если оно вам конечно нужно... ;-)

4 комментария:

Luckyander комментирует...

Как настроить IP в первом пункте?
буду ставить Линукс минт 7 XFCE, и я тож с Николаева и тоже на Трионе

Анонимный комментирует...

DHCP в Трионе уже отлично работает, но если есть желание вручную настраивать, то IP и т.д. дает провайдер...

P.S. простите, что долго не отвечал. Настройки, блоггера, по умолчанию не давали возможности опубликовать ответ :-( Сменил шаблон расположения ответа и все ок.

Droll комментирует...

спасибо вам большее)
а можно как то с вами связаться?
не все получилось выполнить как в инструкции, есть пару вопросов.

imhology комментирует...

VPNPPTP - это простая в использовании и конфигурировании программа для VPN-соединений через PPTP и через L2TP для Linux. Она написана на FreePascal с использованием Shell скриптов.
http://code.google.com/p/vpnpptp/