Радость была не долгой, т.к. следующим шагом была необходимость настройки подключения по vpn на работу. В качестве шлюза, там используется Microsoft сервер, который не умеет работать с международными стандартами. Из возможностей авторизации на нем есть два варианта:
- ms-chap
- ms-chap v2
1. Среди ключей для сборки пакета ppp есть ключ mppe-mppc. Этот ключ необходим если у вас старое ядро (до 2.6.14). С современными ядрами эту опцию в ppp необходимо отключить.
2. Создаем файл для туннеля /etc/ppp/peers/TUN
#/etc/ppp/peers/TUN
pty "pptp ip-vpn-server --nolaunchpppd"
name DOMAIN\\login
# Если не сделать refuse-chap то клиент будет ломиться по chap и получать отлуп сразу.
refuse-chap
# В моем случае надо блокировать eap, т.к. он не используется
refuse-eap
remotename TUN
file /etc/ppp/options.TUN
ipparam TUN
3. Создаем файл с опциями для pppd
#/etc/ppp/options.TUN
lock
noauth
nobsdcomp
nodeflate
# Это самая главная опция. Если не поднимается mppe то ни чего не работает.
require-mppe
# Т.к. мы работаем в интернет тоже по vpn, то для нашего туннеля
# необходимо блокировать смену маршрута по умолчанию
nodefaultroute
4. Пароль записываем в файл /etc/ppp/chap-secrets в следующем формате:
DOMAIN\\login TUN password *
5. Ну и на пред =) последок тестируем работу туннеля
pon TUN debug dump logfd 2 nodetach
6. Маленький тюнинг - установка руками номера ppp интерфейса. Так как у меня несколько туннелей, то каждому следующему присваивается следующий свободный порядковый номер, т.е. если поднят туннель ppp0 то следующими будет ppp1 и так далее. Данное поведение не всегда удобно, по этому я прибиваю номер гвоздями. Для этого в файле /etc/ppp/options.TUN устанавливается опция unit N, где N - номер туннеля, а точнее номер ppp интерфейса.