Настройка PPTP VPN в консоли: различия между версиями

Материал из Wiki МИАЦ ВО
Перейти к навигации Перейти к поиску
(Создаем файл настроек подключения)
(Создаем нужные роуты)
Строка 31: Строка 31:
 
Создаем файл /etc/ppp/ip-up.d/$TUNNEL и прописываем роуты, при подключении  
 
Создаем файл /etc/ppp/ip-up.d/$TUNNEL и прописываем роуты, при подключении  
 
<pre>
 
<pre>
 +
#!/bin/sh
 
route del default
 
route del default
 
route add default dev ppp0
 
route add default dev ppp0
Строка 37: Строка 38:
 
Создаем файл /etc/ppp/ip-down.d/$TUNNEL и прописываем роуты, при отключении  
 
Создаем файл /etc/ppp/ip-down.d/$TUNNEL и прописываем роуты, при отключении  
 
<pre>
 
<pre>
 +
#!/bin/sh
 
route add default gw $GW dev eth0
 
route add default gw $GW dev eth0
 
</pre>
 
</pre>
 +
Даем нужные права
 +
<pre>$sudo chmod 755 /etc/ppp/ip-up.d/$TUNNEL
 +
$sudo chmod 755 /etc/ppp/ip-down.d/$TUNNEL</pre>
  
 
==Пробуем!==
 
==Пробуем!==

Версия 11:45, 20 сентября 2013

Взято тут
Итак, займемся делом! Поскольку все будем настраивать вручную, все действия выполняем в консоли.

Устанавливаем клиентскую программу.

Для этого выполняем всего одну команду.

$ sudo apt-get install pptp-linux

Создаем общий файл настроек.

В этом файле буду располагаться настройки для всех pptp подключений. Это на тот случай, если вы подключитесь к еще одному провайдеру ;-)

$ sudo sh -c 'echo "lock noauth nobsdcomp nodeflate" > /etc/ppp/options.pptp'

Записваем имя пользователя и пароль в отдельный файл.

$ sudo sh -c 'echo "$USERNAME PPTP $PASSWORD *" >> /etc/ppp/chap-secrets'

$USERNAME - логин, $PASSWORD - пароль соответственно.

Чтобы всякие злобные вредители не прочитали ваши секреты, убедитесь, что файл паролей не общедоступен.

$ sudo chmod o-rw /etc/ppp/chap-secrets

Создаем файл настроек подключения

Создаем файл /etc/ppp/peers/$TUNNEL
$TUNNEL - название подключения. Придумайте его сами. Вместо vim можно написать название любого любимого вами текстового редактора.

В файл пишем следующие строки:

pty "pptp $SERVER --nolaunchpppd"
name $USERNAME
remotename PPTP
require-mschap-v2
# (note that MPPE requires the use of MSCHAP-V2 during authentication)
require-mppe-128
file /etc/ppp/options.pptp
ipparam $TUNNEL

Где $SERVER - это адрес VPN-сервера. Сохраняем файл и приступаем к тестированию.

Создаем нужные роуты

Создаем файл /etc/ppp/ip-up.d/$TUNNEL и прописываем роуты, при подключении

#!/bin/sh 
route del default
route add default dev ppp0

Тут могут быть и другие строки. Создаем файл /etc/ppp/ip-down.d/$TUNNEL и прописываем роуты, при отключении

#!/bin/sh 
route add default gw $GW dev eth0

Даем нужные права

$sudo chmod 755 /etc/ppp/ip-up.d/$TUNNEL
$sudo chmod 755 /etc/ppp/ip-down.d/$TUNNEL

Пробуем!

$ sudo pon $TUNNEL debug dump logfd 2 nodetach

Эта команда запустит подключение в отладочном режиме. nodetach означает, что вся отладочная информация будет выводиться прямо в консоль. Если в конце вы увидите следующие строки

Script /etc/ppp/ip-up started (pid 9658)
Script /etc/ppp/ip-up finished (pid 9658), status = 0x0

это означает, что подключение успешно выполнено. В противном случае попробуйте еще пару раз. Возможно просто произошел какой-то сбой при подключении.

Для запуска подключения в штатном режиме достаточно выполнить:

$ sudo pon $TUNNEL

Чтобы отключиться:

$ sudo poff $TUNNEL

Последние штрихи

Чтобы соединение было стабильным и автоперезапускаемым в случае обрыва, в файл настроек подключения нужно добавить следующие строки:

persist
holdoff 10
maxfail 0

И чтобы соединение запускалось автоматически при загрузке операционной системы, добавим его в файл сетевых интерфейсов /etc/network/interfaces

auto ppp0
iface ppp0 inet ppp
provider $TUNNEL

В идеале все должно сразу же заработать. Однако, жизнь - не такая простая штука, как нам того хотелось бы. Лично у меня возникли проблемы с моим персональным фаирволом, и мне пришлось еще немного попотеть, прежде чем все получилось. А у вас заработало?