Пошаговая инструкция четырнадцатая: pptp-client
Рассмотрим случай, когда мы имеем дело с солидным провайдером, который дает диск, вставив его в винде настраивается все автоматически. На какие-либо дополнительные вопросы техническая поддержка отвечать не желает, особенно, если упоминаешь слово Линукс, в лучшем случае отправляя к инструкциям на своей домашней странице.
Привожу свой пример, как у меня заработало. Чтобы не было вопросов где писать с большой буквы или ставить кавычки берем конкретный пример. Итак я получил от провайдера:
Логин: vova174
пароль: aaaWWW111
VPN-сервера: vpn.chelcom.ru
Все манипуляции мы будем проводить на имеющейся под рукой домашней сети is74.ru.
Самое разумное проверить вначале провайдера, действительно ли устанавливается связь, работает ли логин и пароль, сделав все в видновой машине, так по крайней мере, легче будет с тех поддержкой общаться.
Хорошо бы знать еще о об используемом протоколе аутентификации и о наличии шифрования траффика, но солидные провайдеры редко используют что-то экзотическое и это вряд ли повлияет на настройки.
Устанавливая ALT на свой компьютер мы в настройках поставили «использовать DHCP» и подключившись к сети провайдера увидели его локальную сеть, видим его домашний сайт, можем входить в личный кабинет, где менять свой пароль и смотреть статистику. А также пользоваться другими внутренними ресурсами провайдера не устанавливая VPN — соединение.
Какую дополнительную информацию мы можем узнать?
#ip a s
4: eth0: <BROADCAST,MULTICAST,NOTRAILERS,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:16:d3:41:3c:a8 brd ff:ff:ff:ff:ff:ff
inet 10.49.94.43/22 brd 10.49.95.255 scope global eth0
нам присвоен адрес 10.49.94.43/22, но это нас мало интересует, после каждой перезагрузки он меняется.
#ip r s
10.49.92.0/22 dev eth0 proto kernel scope link src 10.49.94.43
default via 10.49.92.1 dev eth0
наш шлюз 10.49.92.1 - вот это интересно. Это мы будем использовать в настройках. Шлюз провайдер меняет редко, но бывает. Поэтому, если мы со временем не можем установить туннель, нужно будет проверять, изменил ли провайдер шлюз в нашей локальной сети и внести изменения.
Бывает идеальный вариант, когда VPN сервер провайдера представлен в единственном числе и имеет один IP. В этом случае именем хоста (vpn.chelcom.ru) можно пренебречь и использовать в настройках только его IP. Однако если провайдер большой, под именем VPN сервера скрывается несколько серверов с разными IP, что позволяет провайдеру динамически регулировать нагрузку на них, останавливать часть серверов на профилактику.
Для того, чтобы выяснить, какие IP имеет хост vpn.chelcom.ru, воспользуемся командой host
$ host vpn.chelcom.ru
vpn.chelcom.ru has address 78.29.3.16
vpn.chelcom.ru has address 78.29.3.1
vpn.chelcom.ru has address 78.29.3.2
vpn.chelcom.ru has address 78.29.3.3
vpn.chelcom.ru has address 78.29.3.4
vpn.chelcom.ru has address 78.29.3.5
vpn.chelcom.ru has address 78.29.3.12
vpn.chelcom.ru has address 78.29.3.13
vpn.chelcom.ru has address 78.29.3.14
Все, можно приступать к настройкам.
Шаг № 1: Ставим:
#apt-get install pptp-client
Шаг №2:
создаем файл
#cat>>/etc/net/ifaces/eth0/ipv4route
78.29.3.0/24 via 10.49.92.1
Эта сеть провайдера и чтобы не писать много строк, и если провайдер добавит сервера. Иначе надо будет описывать каждый IP — адрес
78.29.3.1 via 10.49.92.1
что тоже правильно, но может быть сбой соединения, если провайдер добавит новый VPN -сервер, а в вашем списке его не будет и пакеты не будут направляться на шлюз.
не забываем
#service network restart
Шаг №3: Копируем готовое решение и создаем новый интерфейс
#cp -r /usr/share/doc/etcnet-0.9.7/examples/PPP/ifaces/ppp0 /etc/net/ifaces/ppp0
Правим /etc/net/ifaces/ppp0/options
PPPTYPE=pptp
PPTP_SERVER=vpn.chelcom.ru
и /etc/net/ifaces/ppp0/pppoptions
user vova174
password aaaWWW111
noipdefault
defaultroute
noauth
receive-all
Шаг №4:
Запускаем командой
#ifup ppp0
остановить
#ifdown ppp0
Если у вас настольный компьютер, то как минимум для теста
#ping 213.180.204.8 пройти должен.
но если у вас сервер — то как говорят «Это еще не все». Есть два момента, с которыми я столкнулся:
Мой сервер пропал внутри локальной сети провайдера, так как изменился шлюз.
был #default via 10.49.92.1 dev eth0
стал #default via ppp0 — это нормально.
Но я же хочу, чтобы мои друзья видели мой сервер внутри локальной сети, к которой они подключены и могли пользоваться им, как минимум для почты и прокси. Поэтому в файл
etc/net/ifaces/eth0/ipv4route
помимо строчки 78.29.3.0/24 via 10.49.92.1 я вставил
10.0.0.0/8 via 10.49.92.1 , теперь сервер доступен.
И второй момент:
Мой провайдер использует два вида DNS. Клиент DHCP при подключении получает два DNS 78.29.2.21 и 78.29.2.22. Но они знают только внутренние адреса и ничего не знают о mail.ru и ya.ru . Так провайдер защищает себя, чтобы не пользовались их серверами без VPN -соединения. И уже в туннеле для меня работают 83.142.161.17 и 83.142.161.19.
Более того, я столкнулся с тем, что эти DNS отказываются обслуживать запросы моего прокси.
Поэтому есть смысл запустить bind в режиме ретранслятора.
http://forum.altlinux.org/index.php/topic,964.msg14599.html#msg14599 где в строку forwarders записать все известные DHS провайдера, начиная с тех, которые работают при туннели
forwarders {83.142.161.17; 83.142.161.19; 78.29.2.21; 78.29.2.22; };
а в
listen-on {127.0.0.1; };
и bind сам с ними разберется.
А в клиенте DHCP просто не получаю DNS
в /etc/net/ifaces/eth0/options применяю аргумент "R" - DHCP_ARGS="-R"