Frequently Asked Questions

Question
PPTP клиент на FreeBSD средствами встроенного ppp

Answer
Как уже упоминалось в одной из местных тем мной же любимым, mpd отличается кривизной с MTU на создаваемом интерфейсе, точнее - отсутствием "сглаживающих" разность значений MTU средств. Посему мы долго и далеко не ходим, а создаем автоподнимающийся pptp клиент посредством запуска уже предустановленного софта в FreeBSD. Для того чтобы это все дело автозапускалось правим rc.conf:

ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="corbina"
ppp_nat="NO"


ну да... Я использую копипасту с живого примера настроек для корбины. Потому что именно корбина отличается кривизной создания VPN соединений, требуя от владельца никс сервера доставания языком затылка. Далее переходим в /etc/ppp и создаем там файлик ppp.conf:

# more ppp.conf
corbina:
    set dial
    set login
    set timeout 0
    set ifaddr 0 0
    resolv restore
    set authname yourlogin
    set authkey yourpassword
    set device "!/usr/local/sbin/pptp vpn.spb.corbina.net --nolaunchpppd --nobuffer"
    set log Phase command
    add default HISADDR
    nat enable no


Про nat enable , думаю, понятно. Хотите включаете, хотите - нет. Т.е. от ппое отличается только технологической строкой запуска тп клиента с параметрами. Что касается опять же корбины, она требует спец прибабахов чтобы не пустить машину в разнос. Например под адресом vpn.spb.corbina.net кроется целая туча ип, которые приходится отдельным скриптом маршрутизировать через шлюз локалки. Проще всего выбрать один из ип с этого адреса, просто сказав ping vpn.spb.corbina.net , затем вписать вместо имени в строку ип. И забыть нафиг. Но что делать дальше? Проблема, как уже писалось, в том что корбина мухлюет с маршрутами, требуя создания кривого п-п соединения, посему мы рассматриваем вариант "автопатчения" новосозданного туннеля средствами того же встроенного ррр. В каталоге /etc/ppp создаем 2 файла, ppp.linkup :

# more ppp.linkup
corbina:
  !bg /etc/ppp/linkup


и ppp.linkdown :

# more ppp.linkdown
corbina:
  !bg /etc/ppp/linkdown


Надеюсь, все понятно? Один файлик (указанием какой и являются эти файлы с соотв. названиями) исполняется при поднятии линка, второй - при его пропадании. Теперь мы совершенно спокойно можем создавать 2 файлика, путь и название которых указали в файлах. Это /etc/ppp/linkdown :

# more linkdown
/sbin/route delete default
/sbin/route add default 10.116.8.1
/sbin/route delete -host 83.102.254.231


и /etc/ppp/linkup :

# more linkup
/sbin/route delete -host 83.102.254.231
/sbin/route add -host 83.102.254.231 10.116.8.1
/sbin/route delete default
/sbin/route add default 83.102.254.231


Поясню... Линкуп говорит о том что он меняет создающийся pptp маршрут до сервера впн корбины с "через интерфейс" на "через шлюз локалки", затем меняет шлюз по умолчанию с "что там у вас" на "ип адрес" впн сервера корбины. Вот теперь мы создали то убожество, которое типаадмины корбины считают VPN соединением. Ну... Флаг им во все места. Линкдаун какбе гаварит нам(с) вернуть все в исходное состояние. Шлюз возвращается на место, убивается созданный руками путь до сервера впн корбины.

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


Details
Info Sunday 14 March 2010 - 17:45:28 by




Vampyr`s House!


Protected by Copyscape DMCA Plagiarism Check