Настройка доступа в интернет через l2tp для linux

Материал из campus.mephi.ru

Перейти к: навигация, поиск

Данный мануал основан на этой статье. Доработан специально для сети общежития НИЯУ МИФИ. Тестировался на Ubuntu 10.04. Надеюсь, что он вам поможет.

Настройка

1. Скачать и установить xl2tpd:

$ sudo apt-get install xl2tpd

2. Правим xl2tpd.conf:

$ sudo gedit /etc/xl2tpd/xl2tpd.conf

Добавляем в него следующее (кого напрягает закомметированная инструкция, можете удалить):

[global]
access control = yes

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

,где <user-name-without-brackets> - номер вашей зачетки (без скобок,очевидно).

3. Правим options.xl2tpd:

$ sudo gedit /etc/ppp/options.xl2tpd

Изначально он пустой. Прописываем в него следущее:

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

,вместо <user-name-without-brackets> и <password> соответственно зачетка и пароль. Как вариант, можно прописывать пароль не здесь, а в файле /etc/ppp/chap-secrets (см. изначальную статью).

4. Правим 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 10.50.0.18 gw 10.5y.xx.1
     route add -host 10.50.0.31 gw 10.5y.xx.1
     route add -host 10.50.0.32 gw 10.5y.xx.1
;;

,где вместо хх в адресе шлюза пишем номер этажа, а вместо y - номер корпуса(10.50.0.18 - адрес сервера VPN, 10.50.0.31 и 10.50.0.32 - DNS серверы, 10.5y.хх.1 - шлюз).

5. Удаляем xl2tpd из автозапуска (дабы не запускался раньше network manager'а):

$ sudo update-rc.d -f x2ltpd remove

Желающие могут настроить автозапуск так, чтобы xl2tpd запускался после nm, но это к данному мануалу не относится.

Поднимать и отключать соединение можно следующими командами:

$ sudo /etc/init.d/xl2tpd start
$ sudo /etc/init.d/xl2tpd stop

Если все нормально, то после запуска по команде ifconfig должно получиться три интерфейса - lo, eth0 и ppp0 (хотя количество eth зависит от числа сетевых карт в компьютере, но не в этом суть, главное, чтобы был ppp0).

Замеченные баги

После отключения соединения, сразу же заново поднять его не удается. Но минут через 5 обычно все проходит. В логи сыпет вот что:

Listening on IP address 0.0.0.0, port 1701
Oct  7 16:44:43 *** xl2tpd[1819]: Connecting to host 10.50.0.18, port 1701
Oct  7 16:44:46 *** xl2tpd[1819]: Can not find tunnel 59119 (refhim=0)
Oct  7 16:44:46 *** xl2tpd[1819]: network_thread: unable to find call or tunnel to handle packet.  call = 53618, tunnel = 59119 Dumping.
Oct  7 16:44:48 *** xl2tpd[1819]: Maximum retries exceeded for tunnel 1296.  Closing.

Настроек ipsec в xl2tpd нет, так что реализовывать его придется с помощью других модулей (например racoon).