Написание скриптов является специфической настройкой, которая очень сильно зависит от аппаратных возможностей десктопа, поэтому это не выход. Да, я получу результат, но я должен быть как минимум не новичком в Linux. Я не новичок, танцы с бубнами прошел, но главное, наконец я нашел способ как БЕЗБОЛЕЗНЕННО и быстро решить проблему с VPN В UBUTNU!. При этом настройка не сложнее чем в Windows XP. Для начала необходимо раскрыть теоретические подробности данной проблемы. И так приступим.
Все наверное знают, что VPN в Windows XP поднимается за пару кликов мыши. Для этого надо просто запустить мастер и указать, что будем выходить в сеть через VPN, а потом ввести шлюз, логин и пароль. Что же нам мешает сделать тоже самое в Linux? НИЧЕГО! Убеждаемся что соединение к локальной сети происходит посредством DHCP-сервера, а не вручную.Ставим пакет pptp-linux, и через GUI создаем VPN-соединение поверх основного соединения к локальной сети (у меня это интерфейс eth0). Единственное что надо сделать, так это убрать (кнопка «Дополнительно…») специфические для Linux способы сжатия трафика (BSD и DEFLATE). Но… это НЕ БУДЕТ РАБОТАТЬ, если сервер DHCP работает под Windows! (да и *nix-сервера настраивают так, чтобы они работали «подобно» win-серверам, все-таки основная масса клиентов «сидит» на Windows). К сожалению, в нашем случае в 90% он БУДЕТ работать под Windows. %?:%!(?*). Ну, Вы поняли…
Все дело в том, что реализация протокола DHCP от Microsoft ОТХОДИТ ОТ СТАНДАРТА. Казалось бы мелочь, но для передачи статических маршрутов Microsoft использует опцию 249 протокола DHCP (RFC 3442), а вот Linux напротив, придерживается официального протокола, по которому для этих целей выделена опция 121. А ведь именно DHCP-сервер является тем самым звеном, через который и происходит автоматическая настройка локальной сети (без этой настройки не будет VPN). И это ПРАВИЛЬНО И УДОБНО. Ведь если в дальнейшем провайдер изменит параметры сети, например, сменит ip-шлюза, то ему надо будет только изменить настройки DHCP-сервера, а пользователи получат эту информацию автоматически.
Вывод один, чтобы настроить VPN, необходимо настроить DHCP-клиент таким образом, чтобы он использовал опцию 249 вместо опции 121. Каюсь, делал данную процедуру ТОЛЬКО в Ubuntu 9.10. В других дистрибутивах эта процедура может отличаться и существенно. Главное, чтобы Вы поняли суть проблемы!
И так, в Ubuntu 9.10 запускаем терминал и набираем «sudo gedit» и вводим пароль если необходимо. Далее открываем файл настройки DHCP-клиента «/etc/dhcp3/dhcpclient.conf». Находим там строчку «option rfc3442-classes-static-routes code 121 = array of unsigned integer 8;». Как Вы уже наверное поняли, здесь указывается значение опции управления статическими маршрутами. Поэтому меняет 121 на 249 и сохраняем файл. ВСЕ!!! Перезагружаемся, чтобы настройки вступили в силу и VPN РАБОТАЕТ АВТОМАТИЧЕСКИ И БЕЗ ДОПОЛНИТЕЛЬНЫХ НАСТРОЕК!!!
В заключении отмечу, что в Ubuntu 9.10 “option rfc3442-classes-static-routes” реализована в виде надстройки (hooks), скрипт которого расположен в каталоге «/etc/dhcp3/dhcpclient-exit-hooks.d/». Пусть спецы адаптируют эту фичу для других дистрибутивов, и будет Вам счастье. Ну что же господа, удачи в Вашем нелегком деле адаптации Linux к «стандартам Windows».
В качестве альтернативы можно предложить первоначальную коммутацию VPN-соединения из под Windows, и дальнейшее «переписывание» всех активных маршрутов в Linux. Согласитесь, что это тупиковая ветвь развития. Пока Linux не станет платформой №1 для десктопов, диктовать «свои» условия она не сможет, поэтому надо приспосабливаться. Се ля ви.