Настройка 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
[править] Автозапуск туннеля
Если Вы хотите сделать так, чтобы туннель поднимался при загрузке системы, то у Вас есть два варианта на выбор:
- Добавить VPN соединение в стандартные загрузочные скрипты Gentoo
- Написать свой собственный сценарий
[править] Стандартный загрузочный сценарий
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» — проблема в неправильном логине или пароле.
