Homepage: PPTP Client
Для поднятия и настройки VPN-соединения нам потребуются всего две программы - Протокол PPP (http://samba.org/ppp/) и pptp (http://pptpclient.sourceforge.net/). Программа ppp с вероятностью 99% уже стоит в вашем дистрибутиве, пакет, содержащий pptp, в разных дистрибутивах называется по-разному, в основном pptp-linux. После установки в системе должны присутствовать два исполняемых файла - /usr/sbin/pppd и /usr/sbin/pptp. Вкратце - pptp создает туннель к VPN-серверу, через который ppp соединяется и работает как обычное модемное соединение. Естественно, для поднятия соединения нам необходима рабочая локальная сеть и данные провайдера об IP (или имени) VPN-сервера, VPN-логине и VPN-пароле. Также пригодится информация об используемом протоколе аутентификации и о наличии шифрования траффика. Подавляющее большинство провайдеров используют протокол аутентификации MS-CHAP v2, а о наличии шифрования нам подскажут логи ошибок pppd.
# aptitude install pptp-linux # nano /etc/ppp/peers/sparvpnmpd pty "pptp x.x.x.x --nolaunchpppd" user VPN_LOGIN password "VPN_PASSWORD" nodeflate nobsdcomp noauth require-mppe-128 refuse-eap refuse-chap refuse-mschap # pppd call sparvpnmpd debug nodetach
Когда pppd устанавливает соединение, он автоматически выполняет скрипты из директории /etc/ppp/ip-up.d, когда соединение рвется - /etc/ppp/ip-down.d. Создадим файл и впишем туда роутинг.
# touch /etc/ppp/ip-up.d/sparvpnmpd # chmod +x /etc/ppp/ip-up.d/sparvpnmpd # nano /etc/ppp/ip-up.d/sparvpnmpd route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.101 route add -net 192.168.35.0 netmask 255.255.255.0 gw 192.168.1.101 route add -net 10.90.90.0 netmask 255.255.255.0 gw 192.168.1.101 route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.1.101 route add -net 10.26.95.0 netmask 255.255.255.0 gw 192.168.1.101
pon sparvpnmpd poff sparvpnmpd
Если есть необходимость запускать соединение от простого пользователя, установите программу sudo и в файл /etc/sudoers впишите:
sergo myhost = NOPASSWD: /usr/bin/pon, /usr/bin/poff
Соответственно, замените sergo и myhost на имя вашего пользователя и его машины. Он сможет запускать и прерывать соединение командами
sudo pon sparvpnmpd sudo poff sparvpnmpd