Вы здесь

Ubuntu Server 16.04 pptp клиент с автоматическим подключением


Ubuntu Server 16.04 - автоматическое подключение к pptp

Привет, в прошлой статье я показал, как можно настроить на Ubuntu PPTP сервер. Сегодня я покажу, как можно подключиться к этому серверу, с другой системы под управлением все той же Ubuntu Server 16.04. Так же покажу, как можно сделать, что бы соединение поднималось автоматически и перезапускалось, при каких-либо "зависаниях", и как сделать, что бы автоматически добавлялся маршрут до нашей vpn сети.

Переходим в режим суперпользователя:

sudo su

Обновим нашу систему:

apt-get update && apt-get upgrade && apt-get dist-upgrade

Установим клиента:

apt-get install pptp-linux

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

 nano /etc/ppp/peers/vpn

Его содержимое:

pty "pptp 192.168.1.125 --nolaunchpppd" #здесь измените адрес сервера, на ваш
require-mschap-v2
require-mppe-128
user test1 #имя пользователя
password "testtest" #пароль
nodeflate
nobsdcomp
noauth
nodefaultroute  #отключаем маршрут по умолчанию,
                #если он вам нужен - замените на defaultroute
persist #пере подключаться при обрыве
maxfail 10 #количество попыток пере подключения
holdoff 15 #интервал между подключениями

пробуем подключиться:

pppd call vpn 

Если подключение прошло успешно появится сетевой интерфейс ppp:

ifconfig ppp

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:192.168.6.100  P-t-P:192.168.6.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1396  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:68 (68.0 B)  TX bytes:68 (68.0 B)

Для того что бы отключиться, можно набрать команду:

killall pppd

Так же, если вы не сделали маршрут по умолчанию, неплохо бы прописать маршрут до VPN сети, чтобы иметь доступ к ресурсам в этой сети. Что бы не делать это руками при каждом запуске, и не заморачиваться с дополнительными скриптами, выполним:

nano /etc/ppp/ip-up

И в конец файла добавим:

case "$5" in
        192.168.6.1)
                        route add -net 192.168.6.0/24 gw 192.168.6.1
                ;;
        *)
esac

Соответственно - 192.168.6.1 - адрес шлюза (нашего vpn сервера), 192.168.6.0 - наша vpn сеть, замените шлюз и сеть на свои.

Так же неплохо было бы сделать так, чтобы наше pptp подключение автоматически поднималось, и случае "зависания" - происходило пере подключение.
Для этого сделаем 2 скрипта, один для собственно подключения, второй для проверки связи, и пере подключения в случае каких-либо затупов.

Первый - pptp.sh:

nano ~/pptp.sh
#!/bin/sh
vpn='192.168.1.125' #внешний адрес или имя вашего pptp сервера
ps=`ps ax | grep $vpn | wc -l`
if [ $ps -ge 2 ]; then
exit 1;
else /usr/sbin/pppd call vpn
exit 0;
fi

Второй - pptp-reconnect.sh:

nano ~/pptp.sh
#!/bin/bash
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
#замените 192.168.6.1 на ваш внутренний адрес сервера.
if ! ping -Q 2 -c 4 -t 2 192.168.6.1; then
pids=( $(pgrep -f pppd) )
for pid in "${pids[@]}"; do
  if [[ $pid != $$ ]]; then
    kill "$pid"
  fi
done
/root/pptp.sh
fi

Не забываем сделать эти скрипты исполняемыми:

chmod +x ~/pptp.sh ~/pptp-reconnect.sh

Дальше добавим их в cron:

crontab -e

В конец файла добавляем:

*/1 * * * * /bin/bash /root/pptp-reconnect.sh

Соответственно */1 - означает, что нужно выполнять проверку раз в минуту, можно увеличить интервалы до значения, которое вы считаете нужным.

Пожалуй, всё. PPTP клиент на Ubuntu Server 16.04 у нас настроен.

0 0

Поделитесь статьей с друзьями в соц. сетях, возможно, она будет им полезна.


Если вам помогла статья, вы можете >>отблагодарить автора<<