Решил настроить vpn в archlinux. С этой проблемой я уже сталкивался, решил ее в gentoo, но то решение было изощренное и делалось методом тыка. Так что теперь решил поднять это дело, и чтобы мне самому было понятно.
Зачем собственно vpn? В нашей сети интернет предоставляет провайдер и получаем мы интернет через proxy и socks. Как известно, не все программы спосбны работать через сокс и прокси. Для этого в венде есть куча программ. В linux же ситуация с этим посложнее, проги есть, но они либо сложны в настройке, либо не рабатаются(возможно у меня не удалось), и они уже не развиваются, не выходят новые версии. Но НИКС предоставляет еще и выход в интернет через vpn, за что собственно берет дополнительную плату. VPN, как известно шифрует пакеты. Так что его можно использовать для шифрования, защиты от снифферов и т.д. Здесь я подключаюсь к серверу 217.21.42.199.
Есть у вас ядро выше 2.6.16 более всего у вас включена поддержка mppe, которая необходима для установеления соединения, иначе включи ее в ядре.
Для начала ставим pptpclient:
pacman -S pptpclient
Далее редактируем файл /etc/ppp/chap-secrets. Добавляем в нем логин и пароль следующим образом:
логин PPTP "пароль" *
Кто еще не знает, в логинах никса не обязательно прописывать
niks\.
Потом создаем файл /etc/ppp/peers/niks и в нем указываем:
pty "pptp 217.21.42.199 --nolaunchpppd"
name login
remotename PPTP
require-mppe-128
require-mschap-v2
usepeerdns
file /etc/ppp/options.pptp
Вместо login укажыте свой. Можно изменить ip. Я использовал впн без получения реального айпи. Если вам нужен именно real-ip от niks, то измените 217.21.42.199 на 217.21.42.209.
Теперь перейдем к редоктированию файла /etc/ppp/options.pptp:
lock
noauth
refuse-eap
refuse-chap
refuse-mschap
nobsdcomp
nodeflate
defaultroute
persist
Скажу, что значит опции defaultroute и perist. Первая устанавливает, что созданное соединение будет использоваться по умолчанию для выхода во внешнюю сеть. С этим параметром нужно быть внимательным, так как чтобы он работал нужно чтобы в таблице роутингов не было дефолтного роута. Ниже я напишу как решил эту проблему для своей сети. Опция perist указывает, что необходимо опять соединиться при разрыве.
Решение проблемы с роутами. Как я уже писал выше, чтобы использовать defaultroute у вас не должно быть дефолтного ротера в таблице роутинга. Чтобы посмотреть маршруты на вашей машине, наберите
route -n
Если у вас есть в Distination default либо 0.0.0.0, у вас есть роут дефотовый и от него нужно избавляться. В арчлинукс я сделал следующие монипуляцию. Редактируем файл
/etc/rc.confИщем раздел связаный с сетью,а именно роутами, настроенный у меня он выглядит так:
h12_0="-net 172.16.0.0 netmask 255.255.255.0 gw 172.16.3.253"
h12_1="-net 172.16.1.0 netmask 255.255.255.0 gw 172.16.3.253"
vpn="217.21.42.199 gw 172.16.3.253"
dns="217.21.42.5 gw 172.16.3.253"
ROUTES=(h12_0 h12_1 vpn dns)
Синтаксис у него следующий. Мы сосздаем роуты, обзываем их. А потом пишем, какие использовать. Роуты dns и vpn это, чтобы он знал какой путь к днс и впн серверу. Можете указать, куда вы хотите ходить не используя, впн соединение. Роуты h12_0 и h12_1 это маршруты в соседнию сеть, с которой мы соединямся без интернета. у вас не должно быть строчек
gateway="default gw 172.16.3.253" или чего нить похожего, это говорит, что вы создаете роут по умолчанию. Не используейте его.
Ну собственно и запуск впн соединяния:
pppd call niks
А разъединяться будем таким способом(убийством демона pppd):
killall pppd
Можно это все всунуть в автозапуск, то есть чтобы устанавливалось vpn при загрузке системы, для этого добавляем строчки в
/etc/rc.local:
pppd call niks
P.S. Все это проверено и работат на Archlinux c ядром 2.6.24 и провайдером niks
Использовались следующие ресурсы:
Блог OneilnsФорум никсLinuxForumИ вот
это вики