Воскресенье, 20 мая 2012
Всемирный День Метролога.
Блог директора

Настройка VPN в Linux (ver-B)

Для начала удостоверимся, что наша сетевая плата обнаружилась и присутствует среди списка сетевых интерфейсов:

[root@gw etc]# ifconfig

Отлично! Теперь, чтобы не мучиться с прописыванием маршрутов, немного поправим конфиги и скрипты isc dhclient'a:
В /etc/dhclient-ethX.conf пишем:

timeout 60;
retry 60;
reboot 10;
select-timeout 5;
initial-interval 2;

interface "ethX" {
send host-name "linux-box";
send dhcp-lease-time 3600;
prepend domain-name "ufanet.ru";
prepend domain-name-servers 81.30.199.5;
request subnet-mask, broadcast-address, time-offset, routers;
script "/sbin/dhclient-script-ufanet";
}

где вместо X - номер интерфейса, вместо linux-box - хостнейм машины, а также создадим копию имеющегося скриптика /sbin/dhclient-script:

cp /sbin/dhclient-script /sbin/dhclient-script-ufanet

и в двух местах, где фигурирует добавление роутеров убираем (комментируем или удаляем) строчку создания маршрута по умолчанию и добавляем маршруты до pptp-сервера pptp.ufanet.ru и dhcp/dns-сервера 10.8.3.1
было:

for router in $new_routers; do
route add default gw $router $interface
done

стало:

for router in $new_routers; do
route add -host pptp.ufanet.ru gw $router $interface
route add -host pptp.ufanet.ru gw $router $interface
done

перезапускаем dhclient и проверяем, что у нас хорошего в таблице маршрутизации и в /etc/resolv.conf:

[root@gw sbin]# route -n

Никаких маршрутов до 0.0.0.0 там быть не должно. Проверяем связь до pptp.ufanet.ru и 10.8.3.1:

[root@gw sbin]# ping 10.8.3.1

Счастье есть.

Далее приступаем к настройке pptp-client и pppd. Сразу хочу сказать, что лучше всего ставить самые свежие версии этих программ, а не использовать идущие в дистрибутивах. Загрузить их можно с: http://pptpclient.sourceforge.net/#download (внешний траффик) и http://ppp.samba.org/ppp/download.html (внешний траффик) сначала ставим pppd: ./configure && make && make install, а потом pptp: make && make install (под root разумеется). затем создаем файлик ufanet в /etc/ppp/peers следущего содержания:

name LOGIN
remotename LOGIN
unit 5
pty "pptp pptp.ufanet.ru --nolaunchpppd"
lock
noauth
defaultroute
persist
idle 0
maxfail 15
debug
nobsdcomp
nodeflate
lcp-echo-failure 36
lcp-echo-interval 5
lcp-max-failure 0
#mppe-40
#mppe-128
#mppe-stateless

вместо LOGIN пишем логин с карты регистрации, затем в /etc/ppp/chap-secrets пишем строку в формате:

LOGIN  LOGIN PASSWD

где LOGIN и PASSWD - соотвественно логин и пароль с карты регистрации.

Теперь, чтобы установить соединение делаем pppd call ufanet и через несколько секунд получаем интерфейс ppp5 с (не)реальным адресом и работающий интернет:

[root@gw peers]# ifconfig ppp5

Счастья нет? Перечитываем ман, думаем, читаем логи (для незнающих: /var/log/messages), думаем ещё раз, заодно подучиваем английский язык :) Всё равно не получается? Пишем мне на rodionov собако ufanet точка ru

Послесловие

Иногда возникает проблема с автонастроенным iptables/shorewall. Рекомендую в первом случае выключить его, сбросив политики цепочек в ACCEPT командой service iptables stop (в rpm-based дистрибутивах), а во втором и вовсе снести его.

Написать лично директору
Как со мной связаться:
Закрыть Отправить
Обратная связь
Как со мной связаться:
Закрыть Отправить
Обращение в техподдержку
Номер договора:
Как со мной связаться:
Закрыть Отправить
Личный кабинет
  • Интернет

    Номер договора для просмотра статистики вводится полностью, без пробелов, например, 283NK12345-10

  • Кабельное и цифровое ТВ
  • IP-Телефония
Кодовое слово Закрыть
Заявка на подключение
Я,  хочу:
по адресу:
мой телефон:
Есть еще пожелания:
Закрыть Отправить

Ваша заявка принята!

Закрыть