CentOS 6 как pptp client

Материал из База знаний
Перейти к: навигация, поиск

CentOS 6 как pptp client на основе АЦК

yum install pptp

редактируем /etc/ppp/options.pptp:

lock
noauth
refuse-pap
refuse-eap
nobsdcomp
nodeflate
require-mppe-128

Создаем файл: /etc/ppp/peers/azk:

updetach
remotename azk
linkname azk
ipparam azk
pty "pptp 82.200.76.2 --nolaunchpppd "
name Login_AZK_VPN
password Password_PPP_открытым_текстом
nodefaultroute
noauth
file /etc/ppp/options.pptp

Создаем файл: /etc/sysconfig/network-scripts/ifcfg-azk:

# VPN to azk
ONBOOT=yes
USERCTL=yes
TYPE=Modem
PEERDNS=no
DEVICE=ppp0
PROVIDER=azk
DEFROUTE=no

Создаем файл: /etc/sysconfig/network-scripts/azk.route:

ADDRESS0=192.168.128.0
NETMASK0=255.255.240.0
GATEWAY0=192.168.136.1

Поднимаем интерфейс

ifup azk

Думает секунд 30... смотрим логи messages... если все хорошо, должен появиться интерфейс ppp0 и измениться таблица маршрутизации. что бы все нормально работали с АЦК, надо на этом же маршрутизаторе настроить натинг в iptables до них. Чтобы постоянно поддерживалось соединение и восстанавливалось после разрыва, ставим в кроне скрипт:

crontab -e

# проверка соединения с департаментом финансов АЦК
*/5****/root/Scripts/azk_check

и создаем этот скрипт. Текст скрипта:

#!/bin/bash

Debug=0

ping -c 3 -s 100 192.168.131.19 > /dev/null
if [ $? -ne 0 ]; then
  if [ $Debug -eq 1 ]; then echo "Failed AZK VPN!"; fi
  VPNUP=0
else
  if [ $Debug -eq 1 ]; then echo "AZK VPN - Ok"; fi
  VPNUP=1
fi

if [ $VPNUP -eq 0 ]; then
  if [ $Debug -eq 1 ]; then echo "AZK shutdowning..."; fi
    /sbin/ifdown azk
    /bin/sleep 2
  if [ $Debug -eq 1 ]; then echo "AZK VPN upping..."; fi
    /sbin/ifup azk
    /bin/sleep 2
    # Сброс кеша маршрутизации, пакет conntrack-tools
    /usr/sbin/conntrack -F 2>/dev/null
    /sbin/ip route flush cache

fi

if [ $VPNUP -eq 0 ]; then
    ping -c 3 -s 100 192.168.131.19 > /dev/null
    if [ $? -ne 0 ]; then
      if [ $Debug -eq 1 ]; then echo "Failed AZK VPN!"; fi
    else
      if [ $Debug -eq 1 ]; then echo "AZK VPN - Ok"; fi
    fi
fi

Делаем его запускаемым:

chmod +x  /root/Scripts/azk_check

Еще можно создать скрипт запуска /sbin/ifup-local:

#!/bin/bash
test -x /etc/sysconfig/network-scripts/ifup-$1 && /etc/sysconfig/network-scripts/ifup-$1

И скрипт остановки /sbin/ifdown-local:

#!/bin/bash
test -x /etc/sysconfig/network-scripts/ifdown-$1 && /etc/sysconfig/network-scripts/ifdown-$1

Затем можно их использовать в /etc/sysconfig/network-scripts/ifup-azk:

#!/bin/bash
ip route add default via 217.76.32.61 metric 5
# или что-то еще... например iptables -A ...

Аналогично и с /etc/sysconfig/network-scripts/ifdowd-azk:

#!/bin/bash
ip route del default via 217.76.32.61 metric 5
# или что-то еще... например iptables -D ...

Не забываем сделать:

chmod +x /sbin/ifdown-local
chmod +x /sbin/ifup-local

И на скрипты /etc/sysconfig/network-scripts/ifdowd-* и /etc/sysconfig/network-scripts/ifdowd-* тоже делаем chmod +x