Алексей Козлов кратко рассказал как подключить машину работающую под управлением Mandrake-9.2 к сервис провайдеру, посредством PPTP туннеля.URL: http://linuxshop.ru/unix4all/?cid=&id=432
Новость: http://www.opennet.me/opennews/art.shtml?num=3393
После попыток поднять VPN оказалось, что руками сделать на порядок проще, чем лазить по непонятнім менюхам скрипта. По крайней мере в RH 7.3, pptp-linux с pptpclient.sf.net.
Для этого нужно создать файлы типа:
###/etc/ppp/chap-secrets
login PPTP password ip.addres.vpn.servera
###end of /etc/ppp/chap-secrets
###/etc/ppp/peers/homenet
name login
remotename PPTP
linkname homenet
#defaultroute - по необходимости
pty "/usr/sbin/pptp 192.168.156.1 --nolaunchpppd --logstring 2mcl"
###end of /etc/ppp/peers/homenet
###end of /etc/ppp/peers/dsl
linkname dsl
/dev/ttyS1
115200
defaultroute
crtscts
nobsdcomp
nodeflate
###end of /etc/ppp/peers/dsl
###end of /etc/ppp/peers/dialup
linkname dialup
/dev/ttyS0
38400
modem
crtscts
asyncmap 20A0000
escape FF
kdebug 0
connect /etc/ppp/redialer
# redialer - скрипт для дозвона из поставки pppd
###end of /etc/ppp/peers/dialupТеперь что бы поднять линию даём команду "pppd call имя_скрипта_из каталога_peers"
Например
# pppd call dslПосле установки соеденения в каталоге /var/run/ появится файл /var/run/ppp-linkname.pid. Соответсвенно для убиения линка dsl нужно выполнить команду
# kill `cat /var/run/ppp-dsl.pid`
или, если смущают ошибки про ppp,
# kill `head -n 1 /var/run/ppp-dsl.pid`
Кроме того, в засимоти от имени линка, можно выполнять разные действия в /etc/ppp/ip-up, /etc/ppp/ip-down. Пример:
### /etc/ppp/ip-up.local
if [ x"$LINKNAME"x = "xdslx" ]; then
route add -net 193.0.5.0 netmask 255.255.255.0 dev $IFNAME
route add -net 192.168.200.0 netmask 255.255.255.0 dev $IFNAME
# route add -host bla.bla.com.ua dev $IFNAME
fi
### end of /etc/ppp/ip-up.local
linkname очень полезен, так как в моём случае (домашняя сеть, IDSL, пров на даялапе) зараннее не известно, какое имя интерфейса будет у конкретного linka.
Как-то сложно./etc/ppp/options
name <LOGIN>
remotename vpn
defaultroute
noauth
asyncmap 0
crtscts
lock
hide-password
local
noproxyarp
lcp-echo-interval 30
lcp-echo-failure 4
noipxгде <LOGIN> - имя пользователя для авторизации на VPN сервере.
/etc/ppp/chap-secrets должен содержать строку:
<LOGIN> vpn <PASSWORD>
где <LOGIN> - имя пользователя для авторизации на VPN сервере, а <PASSWORD> - его пароль.
Подключение к VPN серверу выполняется командой, запущенной с правами администратора:
# /usr/local/sbin/pptp <IP_address_of_VPN_server>, где <IP_address_of_VPN_server> - IP адрес VPN сервера.
Обращу внимание,что у меня три ppp соединения. Dial-up, VPN по ethernet, iDSL. Потому и сложно. Даже если у тебя VPN + модем, твоя схема уже не пройдёт.
А так, да.
И, кстати, намного проще чем во всяких how-to. И делается и объясняется за 5 минут. В отличии от бодания со скриптом.
Есть ещё небольшой нюанс который у меня возник про поднятии VPN соеденения после рестарта сетевых устройств (eth1 eth0) роут на одном из устройств прописывался не то который надо для этого пришлось применить команду
- route del default dev eth1
- route add default gw "IP" dev eth1
Опция call в pppd позволяет создать свой файл опции для конкретного соединения.
Для клиента станет так pptp IP.A.D.R call NAME
Далее я модифицировал /etc/ppp/ip-up (see man pppd) скриптик где по $PEERNAME или PPP_REMOTE (смотри сам скрипт) проставил поднятие маршрутов ( используемая переменная зависит от того сервер или клиент ).
Стоит MDK92 и все настройки первоначально делал через webmin доставив пакет со стороны :pptpd-1.1.4-1.
Подсмотрелд что и почем.
Там немного криво с поднятием маршрутов, потому модифицировал ip-up скриптик. И ушел полностью на конандную строку.
А как сделать так, чтобы при падении линка pppd
сам восстанавливал соединение? прописывание запуска pptp в /etc/inittab не очень помогает, поскольку начинает плодиться куча процессов pptp, они друг другу естесственно мешают, вобщем, бардак получается ;(
добавить в options параметры
persist
maxfail 0
и запустить pptp один раз.
Главное не забыть про
nodetach
Через inittab и всё ОК, просто надо запускать pppd, который вызывает pptp и перезапускаться после падения pppd.
у меня заработал pptp-клиент только после загрузки модуля:
insmod ip_gre
Как сделать чтобы pptp-command загружался на запуске системы??? Плиз намыльте!!
А может кто нибудь подробно помочь с настройкой vpn. Ситация такая. Есть офис. В нём локалка. Есть adsl в офисе и у меня дома есть adsl. Мне бы хотелось из дома работать с нашей сеткой. Как мне это сделать ????