30 декабря 2014 г.

Настраиваем автоматическое поднятие VPN (pptp) соединения

Настраиваем автоматическое поднятие VPN (pptp) соединения на примере дистрибутива PuppyRus-A собранного из пакетов Arch Linux. Часть до netctl, поднятие vpn, подходит для любого дистрибутива линукса где есть pptpclient.

Для настройки VPN без использования NetworkManager (все равно пароль в pra не запоминает, а вручную вводить лень), необходимо создать файл /etc/ppp/peers/trion с настройками pptp. У меня провайдер трион и соответственно имя соединения trion и сервер доступа vpn.trion с использованием автоматической настройки dhcp.

cat /etc/ppp/peers/trion

mtu 1416
mru 1500
persist
usepeerdns
maxfail 0
lcp-echo-interval 60
lcp-echo-failure 4
#defaultroute
#При подключении VPN маршрут по умолчанию не изменяется и равен шлюзу локальной сети.
nodefaultroute
pty "pptp vpn.trion --nolaunchpppd"
name cyuixoeo
remotename PPTP
file /etc/ppp/options.pptp
ipparam trion

#replacedefaultroute
noipdefault 50

Проверить, чтобы в /etc/ppp/options.pptp было прописано (в pra с этим все в порядке по умолчанию):
lock
noauth
refuse-pap
refuse-chap
nobsdcomp
nodeflate

В /etc/ppp/pap-secrets и в /etc/ppp/chap-secrets вписываешь логин и пароль для VPN
<логин> PPTP <пароль> *

В консоли пишем sudo pon trion и наслаждаемся интернет серфингом, а для выключения sudo poff trion
Но как обычно нам лень вызывать консоль и выполнять команду включения... да еще противный кот бегает и перехватывает активность окна от терминала на себя при настройке DHCP. Но можно это упростить и ускорить при помощи netctl

Настроим все при помощи "Настройки сети" pra выбрав из списка netctl (Мастер настройки сети). Из примеров выбираем ethernet-dhcp и автозапуск, но не забываем изменить стандартное устройство eth0 на вашу сетевую
карту (у меня это enp3s7, который на самом деле eth1). Все это дело пропишется в настройки systemd и при запуске pra черный кот дорогу нам
уже не перейдет...


Можно конечно и вручную вводить sudo pon trion, но нам же лень! Поэтому воспользуемся хаком netctl и заставим его поднимать VPN соединение автоматически после поднятия DHCP. Для этого необходимо создать скрипт /etc/netctl/hooks/postconnect и установить права на выполнение:

cat /etc/netctl/hooks/postconnect

#!/bin/sh
ExecUpPost="pon trion"

Если уже находитесь в каталоге /etc/netctl/hooks/ то делаем как-то так:
chmod 744 postconnect
ls -la postconnect
-rwxr--r-- 1 root root 37 дек 29 16:58 postconnect

Все, при следующей загрузке pra получаем автоматическое соединение по VPN. Что намного удобнее NetworkManager'а который к тому же требует введения пароля вручную при каждом соединении. В pra NM не запоминает пароль, в отличии от других дистрибутивов. Возможно это когда-нибудь исправят, но меня это сейчас не беспокоит ибо нашел другое решение...

p.s. Если не используете сохранение при помощи changes, не забудьте все изменения добавить в 090-save-*.pfs

n.b. При использовании вместо systemd системы инициализации minirc (например: 075-Minirc-120.2915396-s14) необходимо создать файл /etc/rc.d/net-trion и сделать его исполняемым:
su -
echo "/usr/lib/network/network start ethernet-dhcp &" > /etc/rc.d/net-trion
chmod 744 /etc/rc.d/net-trion
ethernet-dhcp - это ваш профиль netctl, который поднимается при старте minirc.

Комментариев нет: