|
Настраиваем VPN-соединение с Уфанетом в Debian
(с) http://vladimir-stupin.blogspot.com/2008/10/vpn-debian.html
Дома у меня есть интернет от уфимского провайдера "Уфанет", пользуюсь системой Debian GNU/Linux. Для того, чтобы получить доступ в интернет, нужно установить VPN-соединение, а точнее - PPTP.
Первый этап предполагает настройку Ethernet-соединения, а точнее настройку интерфейса на получение настроек по DHCP.
Делается это элементарно. В файле /etc/network/interfaces нужно добавить пару строчек:
auto eth0
iface eth0 inet dhcp
eth0 - это имя сетевого интерфейса, подключенного к сети Уфанет. Узнать список доступных интерфейсов можно с помощью команды:
ifconfig -a
Далее установим pptp-клиент:
aptitude install pptp-linux
Далее установим пакет resolvconf:
aptitude install resolvconf
Этот пакет добавляет к клиентам dhcp и pptp специальные сценарии, которые перехватывают информацию о DNS-серверах, полученную от dhcp- и pptp-серверов соответственно. Основываясь на перехваченной информации сценарии выполняют корректное обновление списка DNS-серверов в файле /etc/resolv.conf
Процесс настройки состоял из серии проб и ошибок, но в конце концов получилось удачно скомпилировать информацию из разных источников. В результате появился работоспособный набор конфигурационных файлов и скриптов.
Краткие пояснения по настроечным файлам:
login - логин на соединение (именно логин, а не номер договора)
password - пароль на соединения (пароль на соединение, а не на просмотр баланса)
pptp.ufanet.ru - доменное имя VPN-сервера Уфанет
Теперь сами файлы:
/etc/ppp/peers/ufanet
pty "pptp vpn.ufanet.ru --nolaunchpppd"
name login
remotename vpn.ufanet.ru
file /etc/ppp/options.pptp
ipparam ufanet # Этот параметр передаётся в скрипты настройки
# маршрутизации, о которых ниже
/etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
login vpn.ufanet.ru password *
/etc/ppp/options
asyncmap 0
auth
crtscts
lock
hide-password
modem
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
noipx
/etc/ppp/options.pptp
lock
noauth
nobsdcomp
nodeflate
persist # Восстанавливать соединение при обрыве
Теперь собственно скрипты для прописывания маршрутов при поднятии линка и для удаления маршрутов при падении линка. Скрипты были почерпнуты в одной из Интернет-конференций и доработаны под наш случай (в исходном виде скрипты, увы не работали).
/etc/ppp/ip-up.d/route
#!/bin/sh
case "$PPP_IPPARAM" in
ufanet)
SERVER=vpn.ufanet.ru
GW=`route -n | grep ^0\.0\.0\.0 | awk '{print $2}'`
route del $PPP_REMOTE dev $PPP_IFACE
route add -host $SERVER gw $GW
route add default dev $PPP_IFACE
;;
*)
echo "No PPP_IPPARAM defined"
;;
esac
/etc/ppp/ip-down.d/route
#!/bin/sh
case "$PPP_IPPARAM" in
ufanet)
SERVER=vpn.ufanet.ru
route del -host $SERVER
route del default dev $PPP_IFACE
;;
*)
echo "No PPP_IPPARAM defined"
;;
esac
Подключение осуществляется с помощью команды:
pon ufanet
Отключение осуществляется с помощью команды:
poff ufanet
Команды pon и poff нужно выполнять от пользователя root.
Чтобы соединение устанавливалось при старте системы, можно прописать в файл /etc/network/interfaces следующие строки:
auto ufanet
iface ufanet inet ppp
provider ufanet
|