Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

Исторически сложилось, что многие российские провайдеры предоставляют подключение к интернет через VPN-соединение. Соответственно, пользователям Linux для этого приходится настраивать подключение по PPTP. Относительно недавно у некоторых провайдеров появилась возможность подключения по протоколу L2TP. Не вдаваясь в технические подробности, скажу, что для пользователей Linux теперь появилась возможность кардинально улучшить свое интернет-соединение. Забегая вперед, замечу, что результат превзошел все мои ожидания.

Такая возможность появилась с поддержкой OpenL2TP в последних ядрах Linux. В этой заметке пойдет речь о настройке L2TP-соединения в Ubuntu Linux на примере провайдера Corbina Telecom. Для других провайдеров, думаю, настройка будет не сильно отличаться. Выражаю огромную благодарность sdvn, написавшему очень толковую инструкцию по настройке.

Настройка L2TP-соединения

1. Вначале необходимо установить пакет xl2tp. В репозиториях Ubuntu 8.04 он уже есть.

$ sudo apt-get install xl2tpd

2. Редактируем файл /etc/xl2tpd/xl2tpd.conf:

$ sudo gedit /etc/xl2tpd/xl2tpd.conf

Необходимо прописать в него следующее:

[global]
access control = yes
 
[lac corbina]
lns = l2tp.corbina.net
redial = yes
redial timeout = 1
require chap = yes
require authentication = no
name = <corbina-user-name-without-brackets>
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
require pap = no
autodial = yes

где <corbina-user-name-without-brackets> - ваше имя пользователя в Corbina.

3. Редактируем /etc/ppp/options.xl2tpd:

$ sudo gedit /etc/ppp/options.xl2tpd

Прописываем в него:

unit 0
name <corbina-user-name-without-brackets>
remotename l2tp
ipparam corbina
connect /bin/true
mru 1460
mtu 1460
nodeflate
nobsdcomp
persist
maxfail 0
nopcomp
noaccomp
defaultroute
replacedefaultroute

4. В /etc/ppp/chap-secrets добавляем строку (если ее еще там нет):

<corbina-user-name-without-brackets> * <corbina-password-without-brackets>

5. Вносим изменения в /etc/init.d/xl2tpd:

$ sudo gedit /etc/init.d/xl2tpd

Необходимо поменять секцию start следующим образом:

start)
      if !([ -f /var/run/xl2tpd/l2tp-control ]) ; then
              mkdir -p /var/run/xl2tpd
              touch /var/run/xl2tpd/l2tp-control
      fi
 
      echo -n "Starting $DESC: "
      start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
               --exec $DAEMON -- $DAEMON_OPTS
      echo "$NAME."
 
      route add -host <host l2tp.corbina.ru> gw <default-gw>
      route add -host <dns-server-1> gw <default-gw>
      route add -host <dns-server-2> gw <default-gw>

Здесь <host l2tp.corbina.ru> (L2TP-сервер провайдера), <dns-server-1> (первый DNS-сервер), <dns-server-2> (второй DNS-сервер), <default-gw> (шлюз по умолчанию) определяются для каждого случая свои. Для их определения можно воспользоваться командами:

$ host l2tp.corbina.ru
$ cat /etc/resolv.conf
$ route -n

Или уточнить их в службе технической поддержки провайдера. Очень важно, чтобы маршруты были прописаны правильно.

6. Прописываем в /etc/network/interfaces свои настройки сети для карточки:

auto lo eth0
iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0
iface eth0 inet dhcp

7. Удаляем network-manager из системы, чтобы не мешал работать стандартной дебиановской сетевой системе и позволил проинициализировать eth0 до того, как будет подниматься ppp0 через xl2tpd:

$ sudo aptitude remove network-manager

8. Теперь можно перезагрузиться и посмотреть на результат. Если все нормально, то по команде ifconfig мы получим три интерфейса - lo, eth0 и ppp0. Что и требовалось.

9. В случае, если необходимо расшарить интернет на другие машины, можно в /etc/init.d/xl2tpd в секцию start после route -add добавить строчки:

echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -I POSTROUTING -o ppp0 -j MASQUERADE
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Возможные проблемы

В случае неправильных настроек может наблюдаться следующая проблема: соединение устанавливается, но через минуту-две обрывается либо без каких-либо сообщений, либо с сообщением в /var/log/messages:

No response to 4 echo-requests

В таком случае можно попытаться сделать следующее:

  • Убедиться, что network-manager удален из системы. Кроме того, убедиться, что нет еще каких-либо факторов, мешающих стандартной дебиановской сетевой системе. Таковым может являться firestarter или некорректные настройки dnsmasq или ipmasq.
  • Убедиться, что указан верный маршрут к L2Tp-серверу провайдера. В случае чего уточнить его в службе технической поддержки.

Если же интерфейс ppp0 успешно поднимается и не обрывается, но сайты не открываются, то проблема скорее всего в DNS-серверах. Нужно указать их правильные адреса в маршрутах.

Результаты

В моем случае результаты оказались следующими.

При работе через PPTP:

При работе через L2TP:

Результат потрясающий и говорит сам за себя.

Комментарии

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

Unknown error аватар

Отличная работа проведена! респект!

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

flycat аватар

О! Я давано облизывался на L2TP как раз под Корбиной. Буду пробовать. Спасибо за инструкцию (ну и за "пинок" тоже :-) )

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

SolarWind аватар

Да, настройка, на первый взгляд, не очень тривиальна, но результат действительно того стоит. :-)

Для затравки =-)

sdvn аватар

Вот что у меня выдает speedtest.net на тарифе в 25000 Mbit/s через xl2tpd:

Re: Для затравки =-)

SolarWind аватар

Ага, мощно. :-) Я уже и сам думаю, а не перейти ли на этот тариф. ;-)

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

Виолетта аватар

Дня три назад хотела настроить VPN по L2TP на Ubuntu 8.04, хотела но не смогла. Теперь все работает как часики, SolarWind спасибо вам!

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

dorofeevilya аватар

Саш, я чего-то не понимаю. Провайдер же дает какую-то определенную скорость в соответствии с тарифом. Как удается ее повысить?

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

SolarWind аватар

Ну вообще говоря, у меня сейчас тариф - 12.5 Мбит. Судя по результатам с L2TP как раз его я и получил. Честные 12.5 мегабит на download. А вот почему такие запредельные цыфры на аплоад - не знаю. Может связано с сжатием данных на уровне протокола...

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

Мак Сим аватар

Настроил вот только что. Скорость конечно небо и земля. Но вот почему то не прописывается роутинг. Пока что выкинул его из скрипта инициализации. И запускаю руками скриптик из трёх строк. Так всё работает. Не знаю в чём дело.

С уважением, Мак Сим.
http://mak-sim.ru

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

xzirrow аватар

Как то с удалением network-manager грусно, у меня вот несколько профилей - для дома, для работы и я их каждый день меняю. чтож мне ручками все менять ?

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

SolarWind аватар

Вообще говоря, теоретически можно и не удалять. Надо его просто настроить так, чтобы он не инициализировал eth0. Во всяком случае, при загрузке. Тогда должно работать и без его удаления. Мне он просто как таковой не нужен, и мне было проще его просто удалить, чтобы не мешался. Если у вас получится настроить без удаления network-manager, отпишитесь здесь пожалуйста.

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

DM аватар

Чтоб NM не трогал eth0 его просто надо упомянуть в /etc/network/interfaces.

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

SolarWind аватар

Кстати, о профилях. Если речь идет о настройках сетевой карты для работы и дома, то это решается двумя скриптами, каждый из которых состоит из одной строчки. Тянуть для этой задачи network-manager как-то и не очень нужно...

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

Гость аватар

:) Согласен, только так приятно жамкать кнопкой, вредные привычки еще остались знаете ли :) Но он зараза очищает мне /etc/hosts(каждый раз при переключении профиля), который мне очень нужен. Когда вконец достанет - убью, сделаю скрипты :) к тому же с route у него все равно проблемы даже после переключения профиля(одно устройство отключаем, другое включаем ну почему бы не убить route первого).
Ну может я просто еще мало знаю/мало покрутил. Работает и ладно.

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

Maxim Yudin аватар

На Ubuntu пока не настроил, нет времени поставить Ubuntu, но уже скачал ее. Для Корбины настроил под Windows скорость выросла, на тарифе 7.5 Мбит/с скорость download была в районе 8500, после настройки L2TP - 11400 :)

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

SolarWind аватар

Ага. Я уже третий день пребываю в тихом восторге от скорости канала. :-)

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

Гость аватар

Я впечатлен!
Спасибо!
Как круто, работать на опенсорс, да еще под такую скоростуху....
Да и восславится Убунту в веках!

Злобный.

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

Zombieff аватар

Работает) прекрасно) скорость выросла в разы) и соединение стабильное)

автору огромная благодарность)

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

start2000 аватар

Есть вопрос - а как сделать чтобы тоже самое было, но соединялось не по проводной сети, а по беспроводной. У меня корбина дома, я себе специально Голден за полцены подключил для бука и соединяюсь я через голден ВиФи, у них VPNтрафик для корбиновцев оставлен неприкосновенным ))). А дома у меня роутер которы мне все настройки на блюдечке приносит =) поэтому проводной интернет мне не критичен

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

SolarWind аватар

Я предполагаю, что совершенно точно так же, только вместо eth0 будет wlan-интерфейс. Но я сомневаюсь, что голден сам по себе предоставляет L2TP.

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

start2000 аватар

я в никсах очень ламер =) подробностей ответов need. то есть во всех исправлениях которые были выше eth0 заменить на wlan и все? или что-то еще надо сделать?

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

Мак Сим аватар

Для начала весьма бы не помешало выяснить предоставляет ли корбина вообще доступ до l2tp сервера через Golden Wi-Fi.
Подключитесь к сети wi-fi и посмотрите это, а там уж видно будет.

С уважением, Мак Сим.
http://mak-sim.ru

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

start2000 аватар

после вышеописаных манипуляций у меня из ГУЯ исчезли меню с эти вопросом связанные =) поэтому я проверить могу только методом тыка, спрошу у них завтра, хотя на сайте написано что через ВиФи все то же работает что и по проводам.

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

SolarWind аватар

Ну на сайте у них много чего написано. Корбина вообще любит вводить клиентов в заблуждение. К тому же поддержка L2TP, по сути, еще экспериментальная. Я все равно сомневаюсь, что у голден вайфай есть эта поддержка.

А насчет того, что исчезли гуи-настройки, так это естественно. Настройка L2TP по описанному мной методу подразумевает удаление network-manager. Если он все-таки нужен, можно поставить его обратно командой:

$ sudo apt-get install network-manager

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

start2000 аватар

в тех поддержке сказали, что тоже работает =)

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

start2000 аватар

В связи с тем, что мне сказали что все у них работает, как мне настроить L2TP для WiFi?

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

SolarWind аватар

Насколько я понял, у вас интернет-соединение устанавливает wifi-роутер. Тогда я тут ничем помочь не могу, потому что все зависит от конкретного роутера. Если он умеет L2TP, то подключиться можно. В любом случае, это надо разбираться с роутером, а какая ОС на компьютере конечного пользователя, не важно.

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

start2000 аватар

вовсе нет, роутер проводной и интернет раздает по проводам, в т.ч. может и в бук, в буке же есть и WiFi, и мне нужно настроить чтоб l2tp лезло через WiFi, но если нет возможности помочь, тогда ладно =) может ссылкой на маны поделитесь?

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

SolarWind аватар

В том то и дело, что интернет раздает именно роутер. Т. е. роутер устанавливает соединение. И совершенно не важно, как он его раздает компьютерам. По вайфай или проводам - это не важно. Надо настраивать именно роутер, а не комп на линуксе. А какие маны вам посоветовать - не знаю. Я же даже не знаю, какой именно у вас роутер. Но совершенно однозначно - надо читать документацию по роутеру.

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

Zombieff аватар

По-моему, тут есть некоторое недопонимание.

Насколько я понял, у человека есть ноут и 2 подключения - одно через роутер по проводам, а другое - через ноутовский вай-фай и "Голден вай-фай".

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

SolarWind аватар

Хмм... Кстати, да, возможно. В таком случае, как я полагаю, действительно будет достаточно указать вместо eth0 wlan-интерфейс. Но я с вайфай в линуксе не работал, поэтому точно не знаю...

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

start2000 аватар

попробую - доложусь =)

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

start2000 аватар

зомбиеф правильно сказал =) я иногда сам удивляюсь насколько коряво могу выражать мысли ))) попытался изменить /etc/network/interfaces etho на wlan, а он не дает =(, даже только что открытый файл без изменений не может сохранить с чем это связано?

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

SolarWind аватар

Видимо, вы открываете под своими правами. Надо открывать через sudo, тогда позволит сохранить. Но прописывать надо не дословно "wlan". Это уже зависит от того, как именуется wifi-интерфейс в вашей системе. Скорее всего это будет ath0, но не обязательно. Тут на самом деле нужно изучать вопрос с wifi еще.

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

start2000 аватар

точно-точно, через sudo все открывается, ath0 - тоже верно, проверено через iwconfig , только у меня там стоит eth0 в трех местах, в каком конкретно менять пока не понял, бессистемные попытки результатов не дали, хотя к местной сетке в офисе подключился нормально, может все-таки дадите ссылки на маны )))

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

Гость аватар

А можно как-то самому узнать поддерживает ли провайдер L2TP или нет?

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

start2000 аватар

думаю, только позвонив в службу поддержки =)

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

fatboy аватар

Может подскажете как подправить данную инструкция для спутникового интеренета? Имеется только ip адрес vpn сервера провайдера opensky. Исходящий трафик через skylink. Все адреса назначаются автоматически. Спасибо.

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

SolarWind аватар

Skylink - это ведь не спутниковый интернет, насколько я знаю. Я, честно говоря, сильно сомневаюсь, что L2TP там вообще поддерживается. Этот момент нужно выяснить у провайдера. Ну а вообще инструкция, по идее, отличается только тем, что в интернет смотрит не eth0, а другой интерфейс (какой именно в вашем случае, я не знаю).

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

fatboy аватар

skylink- это исходящий(запросной канал), а входящий идет через спутниковую тарелку. Соединение организовано в виде vpn. l2tp поддерживается точно, т.к в винде я именно им и пользуюсь. Вопрос такой, что если провайдер не выдает информации о dns, netmask, gateway, мне эти строки в конфигах просто не прописывать и все?

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

Zombieff аватар

А вышеописанным способом их определить не получается?

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

SolarWind аватар

Эти параметры надо прописывать обязательно. Я в статье писал, как их определять:

$ host l2tp.corbina.ru
$ cat /etc/resolv.conf
$ route -n

Только, конечно, хост другой будет. Вообще говоря, в техсуппорте эти параметры должны подсказать. То, что они "не светятся" нигде в настройках, не значит, что их нет. Они есть точно и у провайдера их можно узнать. Корбиновские инженеры их говорят, во всяком случае, если у них спросить.

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

Strock аватар

Господа, а у меня вот проблема возникла. После перезагрузки ничего не поднялось, в выводе ifconfig -a только два интерфейса, eth0 и lo, host l2tp.corbina.ru не работает, а попытки добавить route руками приводят к возникновению следующего сообщения: SIOCADDRT: No such process. Нагуглил, что такое сообщение возникает, если в network-manager'е снять галочку "DHCP". Однако весь фокус-то в том, что network-manager я удалил )))) Что я, в общем, делаю не так?

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

SolarWind аватар

Странно. У меня такой проблемы не было... Можно попробовать установить network-manager заново, настроить в нем обычное PPTP-соединение и сделать host l2tp.corbina.net. Потом, соответственно, опять удалить network-manager. Или второй вариант - просто позвонить в поддержку корбины и уточнить у них точные адреса l2tp.corbina.net, dns и gateway.

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

Strock аватар

Ну я собственно host l2tp.corbina.net сделал, и шлюз с dns'ами я тоже знаю, проблема в другом - что route наглухо не работает.

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

Strock аватар

Паранормально (для меня), но помогло восстановление network-manager и удаление из /etc/network/interfaces трех последних строчек, т.е. в нем у меня сейчас только
auto lo eth0
iface lo inet loopback

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

DRONx117 аватар

Есть вопрос: у меня имеется две сетевухи, когда кабель с инетом был подключён к eth1, ничего не работало. Как только я подключил кабель к eth0 (изменив /etc/network/interfaces c eth1 на eth0) всё стало прекрасно!
Скажите мне, может быть нужно было изначально где-то что-то поправить, чтобы ppp0 поднимался на eth1???

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

SolarWind аватар

Хмм... Может дело в настройках маршрутизации? У вас точно никаких маршрутов не прописывается дополнительно?

Re: Настройка VPN по L2TP в Ubuntu 8.04 Hardy Heron

DRONx117 аватар

Лишних строчек в маршрутах вроде нет.
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.128.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.254.16.0 0.0.0.0 255.255.248.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
0.0.0.0 10.254.16.1 0.0.0.0 UG 100 0 0 eth1

Только странные веши происходят... Скачал все обновления. Теперь ppp0 не поднимается при старте (даже если кабель в eth0), зато если провести следующие операции:

# /etc/init.d/xl2tpd stop
# /etc/init.d/xl2tpd start

то ppp0 поднимется (даже если кабель в eth1).

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу. Если у вас есть аккаунт в Gravatar, он будет использован для показа вашей аватарки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.