Архивировано

Эта тема находится в архиве и закрыта для публикации сообщений.

orivej

[HOWTO]: подключение, VPN через L2TP

Рекомендованные сообщения

HOWTO версия 2.1.2

 

Тема создана как полное и по-возможности дистрибутивонезависимое описание первоначального подключения к Corbina.

 

Для определённости сетевой интерфейс - eth0, никаких ppp подключений (модем, ADSL-модем, другие VPN) нет.

 

1. Получение настроек сетевой карты

dhcpcd eth0 -h hostname

hostname - любая строка

После этого ifconfig eth0 должен, среди прочего, выдавать ip-адрес, начинающийся на 10., nslookup www.ru должен сразу выдавать ip-адрес www.ru

 

2. Настройка маршрутизации

Маршрутизировать мимо будущего соединения с интернетом нам нужно, во-первых, трафик до l2tp серверов корбины и, во-вторых, трафик до интересующих нас локальных ресурсов (радио, ftp, почта и т. д.). Настройку маршрутизации будем проводить ДО подключения к интернету (а не сразу после этого).

Скрипты: для ArchLinux - /etc/rc.d/routesroutes.txt/etc/conf.d/routesroutes.conf.txtоснова для других дистрибутивов - routes.shroutes.sh.txtПосле этого стоит посмотреть вывод команды route и убедиться, что l2tp.corbina.ru начал пинговаться (ping l2tp.corbina.ru).

 

3. Настройка VPN

Предварительно устанавливаем portmap (если ещё не установлен). Он должен быть загружен до запуска openl2tpd.

Нужно установить openl2tp (и pppol2tp-kmod). Для пользователей ArchLinux соответствующие скрипты есть в AUR. После установки выполняем "depmod -a", подгружаем модуль pppol2tp командой "modprobe pppol2tp". В ядре должен присутствовать модуль ppp_generic и pppox, pppol2tp автоматически загрузит их. Сохраняем файл /etc/openl2tpd.confopenl2tpd.conf.txtзаменяем в нём LOGIN и PASSWORD на ваши логин и пароль, IPADDR на любой ip из вывода "host l2tp.corbina.ru". Запустим openl2tpd. Если ifconfig среди прочего выдаёт ppp0, то соединение установлено и у вас есть доступ в интернет! Если ppp0 есть, но www.ru не пингуется (ping www.ru), проверьте, что "route" в конце списка показывает, что маршрут по-умолчанию - ppp0 (Это настраивается в ip-up, см. ниже). Если ppp0 нет, запустите openl2tpd с отладкой - "openl2tpd -f -d 0xffffffff -D". Если неверный логин или пароль, вы увидите что-то вроде "PROTO: session 17767/9158, CDN error 2/6: A generic vendor-specific error occurred - Locally generated disconnect". Если вы хотите разорвать сессию с интернетом, выполните 'l2tpconfig "session delete tunnel_name=corbina session_name=corbina"'

 

Скрипты ip-up и ip-down (которые в разных дистрибутивах могут находиться в разных директориях и называться немного по-другому) должны настраивать роутинг всего, кроме локальных ресурсов, в интернет. Рабочий пример: /etc/ppp/ip-upip_up.txtОн автоматически запускается pppd и содержит две команды: 'route del default; route add default dev ppp0'. После этого у вас должен быть полностью рабочий доступ в интернет!

 

P.S. Внизу сообщения файлы, которые сохранились от старых редакций страницы, но больше не нужны.

l2tp.conf.txt

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ChangeLog:

2.1.2: обновлены маршруты (добавлена sansara.corbina.tv для приватных каналов корбины)

2.1: добавлена зависимость от portmap

2: теперь вместо rp-l2tp используется openl2tp - стабильный, надёжный, развивающийся l2tp клиент с ядерным модулем и лёгкой настройкой. Если у вас проблемы с другими клиентами - попробуйте его!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

коммент: portmap в седьмой федоре нет, есть rpcbind заместо него.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3. Настройка VPN

Сохраняем файл /etc/openl2tpd.confopenl2tpd.conf.txtзаменяем в нём LOGIN и PASSWORD на ваши логин и пароль, IPADDR на любой ip из вывода "host l2tp.corbina.ru".

Сделал все по инструкции. Были проблемы с компиляцией openl2tp, часть порешил (нехватало либ и хедеров), потом забил (ругалось на нехватку либы, хотя оно в системе было, лениво стало разбираться..) и скачал rpm-ку для FC6. В процессе настройки столкнулся со странным глюком:

если в конфиге /etc/openl2tpd.conf user_password содержит только цифры, то запуск демона не удается с ошибкой error parsing config file и ругается как раз на цифровой пароль. Это глюк такой? Потому как в манах не нашел ничего про ограничения пароля. Попробовал забить туда хотя бы одну букву - все пошло, но естественно авторизация не прокатила. Пришлось поменять пароль в Корбине из под венды, после все заработало.

ЗЫ. А почему бы не включить в инит-скрипт демона openl2tpd в раздел запуска вызов скрипта замены таблицы маршрутизации и смены шлюза, а при стопе - удалить эти параметры, если не нада?

Вот кусок кода из скрипта из rpm-ки

start() {
echo -n $"Starting $prog: "	
	if [ -e /etc/init.d/routes.sh ]; then 
	echo "Modifying routing table"
	/etc/init.d/routes.sh
fi
	if [ -e /var/lock/subsys/openl2tpd ]; then
	if [ -e /var/run/openl2tpd.pid ] && [ -e /proc/`cat /var/run/openl2tpd.pid` ]; then
	echo -n $"cannot start openl2tpd: openl2tpd is already running.";
	failure $"cannot start openl2tpd: openl2tpd already running.";
	echo
	return 1
	fi
fi
modprobe -s --first-time pppol2tp
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
	daemon openl2tpd $OPENL2TPDARGS
fi
RETVAL=$?
echo
if [ $RETVAL -eq 0 ]; then
	touch /var/lock/subsys/openl2tpd
	if [ -n "$OPENL2TPD_CONFIG_FILE" ]; then
	sleep 1
	echo $"Restoring saved openl2tpd configuration..."
	/usr/bin/l2tpconfig config restore file=$OPENL2TPD_CONFIG_FILE
	RETVAL=$?
	fi
fi
	if [ -e /etc/ppp/ip_up.sh ]; then 
	echo "Modifying default gateway"
	/etc/ppp/ip_up.sh
fi
return $RETVAL
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Попробую..

 

2. Настройка маршрутизации

Маршрутизировать мимо будущего соединения с интернетом нам нужно, во-первых, трафик до l2tp серверов корбины и, во-вторых, трафик до интересующих нас локальных ресурсов (радио, ftp, почта и т. д.). Настройку маршрутизации будем проводить ДО подключения к интернету (а не сразу после этого).

Скрипты: для ArchLinux - /etc/rc.d/routes/etc/conf.d/routesоснова для других дистрибутивов - routes.shПосле этого стоит посмотреть вывод команды route и убедиться, что l2tp.corbina.ru начал пинговаться (ping l2tp.corbina.ru).

 

нифига не понял! что и куда ложить. во вложении один сценарий на баше, а для арча у вас тут два места, куда ложить надо.. хз пробую другой, который sh

[ev@localhost ~]$ sudo sh /home/ev/other/vpn/routes.sh.txt 
/home/ev/other/vpn/routes.sh.txt: line 21: host: команда не найдена
/home/ev/other/vpn/routes.sh.txt: line 21: host: команда не найдена
/home/ev/other/vpn/routes.sh.txt: line 21: host: команда не найдена
/home/ev/other/vpn/routes.sh.txt: line 21: host: команда не найдена
/home/ev/other/vpn/routes.sh.txt: line 21: host: команда не найдена
/home/ev/other/vpn/routes.sh.txt: line 21: host: команда не найдена

что за загадочная команда такая... но маршруты прописались.. пробуем дальше..

[ev@localhost ~]$ route
Kernel IP routing table
Destination	 Gateway		 Genmask		 Flags Metric Ref	Use Iface
video1.spb.corb 10.152.26.1	 255.255.255.255 UGH   0	  0		0 eth0
mail.post.ru	10.152.26.1	 255.255.255.255 UGH   0	  0		0 eth0
rec.spb.corbina 10.152.26.1	 255.255.255.255 UGH   0	  0		0 eth0
sansara-a.corbi 10.152.26.1	 255.255.255.255 UGH   0	  0		0 eth0
mara.corbina.ne 10.152.26.1	 255.255.255.255 UGH   0	  0		0 eth0
85.21.138.210   10.152.26.1	 255.255.255.255 UGH   0	  0		0 eth0
oneskelis.corbi 10.152.26.1	 255.255.255.255 UGH   0	  0		0 eth0
mail.axelot.ru  10.152.26.1	 255.255.255.255 UGH   0	  0		0 eth0
85.21.231.32	10.152.26.1	 255.255.255.240 UG	0	  0		0 eth0
85.21.108.16	10.152.26.1	 255.255.255.240 UG	0	  0		0 eth0
85.102.146.96   10.152.26.1	 255.255.255.224 UG	0	  0		0 eth0
85.21.90.0	  10.152.26.1	 255.255.255.0   UG	0	  0		0 eth0
85.21.79.0	  10.152.26.1	 255.255.255.0   UG	0	  0		0 eth0
10.152.26.0	 *			   255.255.254.0   U	 202	0		0 eth0
10.0.0.0		10.152.26.1	 255.0.0.0	   UG	0	  0		0 eth0
default		 10.152.26.1	 0.0.0.0		 UG	202	0		0 eth0
[ev@localhost ~]$ ping l2tp.corbina.ru
PING tp.views.corbina.net (85.21.0.253) 56(84) bytes of data.

 

пинга нет, howto не жизнеспособен

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хав хавом, а мозг включать полезно. Мой путь:

 

* Изучил Настройка VPN для дистрибутивов RedHat (Fedora Core, Enterprise Linux etc). Заработало почти сразу, но как-то нестабильно. Видимо, слишком много юзеров, скорость маленькая, отваливается и перспектива автоматического поднятия была крайне туманная... Отказался Полезного от настроек с этой темы остался скрипт if-up.local, который грамотно обновляет роуты после запуска pppd. Ну и сами роуты соответственно.

 

* Решил перелезть на L2TP. Начал париться с вот этим Автоматический l2tp / xl2tpd. Демон сильно сопротивлялся, при старте автоматом звонить отказывался, а при компиляции с ядреной поддержкой найти оную не мог... Абсурд. Не устроило Плюсом осталось то, что для дальнейшей настройки я использовал это соединение, которое быстро, в отличие от предыдущего, поднималось.

 

* Знакомый посоветовал использовать openl2tp. Погуглил, наткнулся на этот топик. Почитал, осмыслил, нашел исходники: http://sourceforge.net/projects/openl2tp/f...tar.gz/download

* Скомпилировал, создал конфиг /etc/openl2tpd.conf как в первом топике, начал запускать. Проверил chkconfig, убедился, что служба встала. При запуске в лог посыпались сообщения, что клиент не может найти программу: openl2tpd: unable to register UDP RPC program

* Погуглил, дочитал до конца топик. Установил пакет rpcbind. Удостоверился, что служба прописалась и включена. Запустил

* openl2tpd стал ругаться на отсутствие модуля pppol2tp.so. Погуглил. Прочитал, что делают ссылки. Поискал на локальном диске, не нашел. Почесал тыковку, сообразил, что ppp ставил с rpm, а при компиляции наверняка эти модули получатся

* Погуглил, нашел исходники здесь git://ozlabs.org/~paulus/ppp.git. Скачал, скомпилировал...

* Запустил openl2tp. Он продолжил ругаться на отсуствующий модуль. Убедился, что его там нет. Посмотрел, куда встал скомпилированный ppp. Оказалось, это /usr/local/, а репозиторий ставится в /usr/ и openl2tp ищет модули там. Скопировал модули из одной папки в другую :) (По идее, перед установкой можно в Makefile отредактировать путь, но, возможно, бинарник затрется, а после компиляции он получился другого размера)

* Сижу сейчас пишу :P

 

Очень жаль, что тема не прикреплена :lol:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах