Настройка VPN в Gentoo Linux

Материал из МФТИ-телеком.

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

Помимо этой статьи вы можете также ознакомиться с общим руководством

Данная статья описывает настройку VPN в Gentoo Linux для подключения к МФТИ-телеком по т.н. «безлимитным» тарифам.

Содержание

[править] Конфигурация ядра

Убедитесь, что у Вас включены следующие опции:

  • CONFIG_PPP
  • CONFIG_PPP_ASYNC

При необходимости — включите, пересоберите ядро, перезагрузитесь с новым ядром.

[править] Требуемые пакеты

Понадобятся пакеты pptpclient и, желательно, iproute2:

# emerge -av pptpclient iproute2

Кроме того, для динамических адресов также нужен DHCP-клиент. Вы можете выбрать один из dhcp, dhcpcd, pump, udhcp. Например, если нам больше нравится dhcpcd (он используется по умолчанию):

# emerge -av dhcpcd

[править] Настройка маршрутизации

В файле /etc/conf.d/net прописываем примерно следующее:

modules=( "iproute2" )

# MIPT-telecom setup
config_eth0=( "dhcp" )
modules_eth0=( "dhcpcd" )
dhcpcd_eth0="-S -h you_ddns_hostname"

В качестве DHCP-клиента по умолчанию используется dhcpcd, если он установлен. Если у вас установлено несколько DHCP-клиентов, то можно использовать именно тот, который вы хотите. Тогда статические маршруты придется вбивать руками.

[править] Предварительная проверка

Перезапускаем сеть и проверяем, всё ли работает.

/etc/init.d/net.eth0 restart
ping -w 3 vpdn.mipt.ru # для кампуса: vpdn-campus.mipt.ru

[править] Настройка pptp

[править] Соединение

В файле /etc/ppp/peers/telecom пишем:

pty "pptp vpdn.mipt.ru --nolaunchpppd" # для кампуса: vpdn-campus.mipt.ru
connect /bin/true
file /etc/ppp/options.pptp.telecom

В файле /etc/ppp/options.pptp.telecom пишем:

user ваш_логин_для_vpn # <-- поменять тут
lock
noauth
nobsdcomp
nodeflate
remotename Telecom
defaultroute
persist
ipparam telecom  # может пригодиться для использования скриптами ip-up и ip-down

[править] Авторизация

Добавим пользователя в /etc/ppp/chap-secrets (вместо login -- ваш логин для vpn, вместо password -- ваш пароль для vpn)

login Telecom password *

[править] Пробный запуск

Дописываем в /etc/ppp/options.pptp.telecom

debug
nodetach

Запускаем туннель:

# pon telecom

И наблюдаем в логах примерно такую картину:

Serial connection established.
Using interface ppp0
Connect: ppp0 <--> /dev/pts/0
CHAP authentication succeeded
CHAP authentication succeeded
local  IP address 81.5.99.xxx
remote IP address 193.125.142.xxx

При убивании туннели (процесса pptp) (например, по Ctrl-C)

Terminating on signal 2
Modem hangup
Connect time 2.0 minutes.
Sent 2197 bytes, received 30049 bytes.
Connection terminated.

[править] Финальные настройки и проверки

Убираем (или коментируем) из /etc/ppp/options.pptp.telecom

debug
nodetach

Запускаем туннель:

pon telecom

Проверяем, работает ли интернет:

ping -w 3 kernel.org

Для отключения от инета:

poff telecom

[править] Автозапуск туннеля

Если Вы хотите сделать так, чтобы туннель поднимался при загрузке системы, то у Вас есть два варианта на выбор:

  1. Добавить VPN соединение в стандартные загрузочные скрипты Gentoo
  2. Написать свой собственный сценарий

[править] Стандартный загрузочный сценарий

1. Добавим настройки для ppp соединения в /etc/conf.d/net

RC_NEED_ppp0="net.eth0" # здесь eth0 - сетевой интерфейс в сеть МФТИ-Телеком
config_ppp0=( "ppp" )
link_ppp0="pty 'pptp vpdn.mipt.ru --nolaunchpppd'" # для кампуса: vpdn-campus.mipt.ru
username_ppp0="ваш_логин_для_vpn"
pppd_ppp0=( "file /etc/ppp/options.pptp.telecom" )

2. Создадим сам загрузочный сценарий и добавим его в автозагрузку

# cd /etc/init.d/
# ln -s net.lo net.ppp0
# rc-update add net.ppp0 default

Всё, настройка завершена.

[править] Альтернативный вариант: отдельный сценарий

Напишите такой скрипт:

$ cat /etc/init.d/mipt-inet 
#!/sbin/runscript
# A simple init script to start Internet via pptp.

depend() {
        need net
        before firewall
}

start() {
        ebegin "Starting mipt-inet"
        pon telecom
        eend $?
}

stop() {
        ebegin "Shutting down mipt-inet"
        poff telecom
        eend $?
}

Выставите на файле бит x:

# chmod a+x /etc/init.d/mipt-inet

Добавьте его в автозапуск:

# rc-update add mipt-inet default

[править] Возможные проблемы и пути решения

[править] Маршрутизация

Большинство ошибок связано с неправильной настройкой маршрутизации. Вдумчиво смотрите на вывод /sbin/ip a l.

[править] Маршруты по DHCP

Не все клиенты DHCP «понимают» classless маршруты, которые передаёт DHCP сервер. Если после соединения у вас не появляется примерно 7–8 новых маршрутов, в которых в качестве шлюза указан 172.18.0.1 — попробуйте использовать другой DHCP клиент (альтернатива — узнать все маршруты и прописать их статически).

[править] Неправильный логин/пароль

Если ppp говорит что-то вроде «Authentication failure» — проблема в неправильном логине или пароле.

Личные инструменты