VPN (L2TP) сервер на основе xl2tpd

Используем пакеты, расширяющие возможности оборудования
goddamnlb
Сообщения: 11
Зарегистрирован: 11 фев 2016, 12:47

Сообщение goddamnlb » 17 фев 2016, 11:31

Код: Выделить всё

/opt/sbin/iptables -t nat -A POSTROUTING -o ppp+ -j MASQUERADE


В принципе, после правки конфигов xl2tp, локалка заработала нормально, но вот инет правилом выше получить не удалось

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1264
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 17 фев 2016, 12:02

goddamnlb, если нужен маскарад, то его правильнее делать в ip-up.sh - там известно ($1) имя интерфейса.
Не совсем понял, что значит
goddamnlb писал(а):Источник цитаты но вот инет правилом выше получить не удалось


Вы хотите, чтобы клиент ходил в инет через кинетик? Тогда проверяйте маршрутизацию на кинетике. У xl2tpd с этим вроде могут быть проблемы.
Есть обычный route (апплет busybox), можно поставить iproute2 (opkg install ip-legacy).

Будет время - опишите свой опыт и настройки подробнее, включая сам роутер. Для других.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1264
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 17 фев 2016, 14:33

В первом сообщении разметил инструкцию - дорабатывайте.

goddamnlb
Сообщения: 11
Зарегистрирован: 11 фев 2016, 12:47

Сообщение goddamnlb » 17 фев 2016, 16:28

Zyxmon писал(а):Источник цитаты В первом сообщении разметил инструкцию - дорабатывайте.

Касательно мануала - большое спасибо. Есть несколько моментов.

касательно конфигурационного файла /opt/etc/ppp/options.xl2tpd

Код: Выделить всё

require-mschap-v2
lcp-echo-interval 3
lcp-echo-failure 8
nodeflate
nomppe
noproxyarp
mtu 1410
mru 1410

стоит добавлять nomppe (или же mppe), в противном случае весь лог в вебинтерфейсе будет засорен ошибками
ну и предлагаю использовать mschapv2 как наиболее безопасный метод авторизации

Касательно Ip-up/down.sh
Либо я делаю что-то не так, либо они не работают. Интернет и локалка в туннеле появляются только после этих правил

Код: Выделить всё

/opt/sbin/iptables -I FORWARD -o ppp+ -j ACCEPT
/opt/sbin/iptables -I FORWARD -i ppp+ -j ACCEPT
/opt/sbin/iptables -I INPUT -i ppp+ -j ACCEPT
/opt/sbin/iptables -t nat -A POSTROUTING -o ppp+ -j MASQUERADE


Плюс, с завидной регулярностью правила ndms возвращаются в исходное состояние, как в вебморде роутера. Для того, чтобы это не происходило на форуме keenopt рекомендуют сделать по инструкции, как тут https://github.com/ndmsystems/packages/wiki/Opkg-Component#ndmnetfilterd

Для прописывания правил iptables нужно сделать скрипт /opt/etc/netfilter.d/XXX-openvpn.sh с проверкой $table, как описано здесь. Затем посмотрите, как ваши правила укладываются в существующие чейны, которые отличаются от V1. Если останутся вопросы, присылайте свой iptables -L -v -n.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1264
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 17 фев 2016, 16:38

goddamnlb, есть определенная разница между -I и -A (insert и append). Может в данном случае это не важно.
Я вставлял в хуки вызов logger и получил странный результат.
При подтверждении по DHCP ip адреса (IPoE - ip у меня несколько лет не меняется) вызывается хук из wan.d.
А при срабатывании upnp и изменении настроек - вызываются хуки netfilter.d.
Вопрос требует дополнительного изучения - что происходит - таблицы с нуля переформируются, тогда правила l2tp нужно заново добавлять именно сюда. Или же это баг. В ближайшие дни времени на изучение у меня нет. Вы осилите?

goddamnlb
Сообщения: 11
Зарегистрирован: 11 фев 2016, 12:47

Сообщение goddamnlb » 17 фев 2016, 17:26

Zyxmon писал(а):Источник цитаты Вы осилите?

Вроде как уже осилил. Завтра еще погоняю туннель- отпишусь.
Вкратце создал, как и написано на гите 2 скрипта и ребутнул роутер

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1264
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 18 фев 2016, 07:36

goddamnlb писал(а):Источник цитаты Плюс, с завидной регулярностью правила ndms возвращаются в исходное состояние, как в вебморде роутера.

Простенький эксперимет показал, что это происходит после срабатывания UPnP :
UPnP::Manager: redirect rule added: ....
или
UPnP::Manager: redirect and forward rules deleted:....
Но после этого вызываются хуки netfilter.d с параметрами table=nat и table=filter (именно в такой последовательности). Первый раз сталкиваюсь с подобным. Указывать в скриптах хуках интерфейс ppp+ не очень хорошо, т.к. и подключение к интернету может создавать такой интерфейс. Позже придумаю и проверю универсальное решение. А пока, если подключение к интернет не создает ppp - можно в хук скрипт добавить правила.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1264
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 19 фев 2016, 19:47

Городим городушки (С) sfstudio

На каждый болт с хитрой левой резьбой у нас найдется. Или городим костыли на костыль по удалению кастомных правил при срабатывании upnp (только ndms v2)!

Основная идея - скрипт ip-up.sh делает все как и раньше плюс пишет имя добавленного ppp интерфейса в файл /var/ppp.list
Скрипт ip-down.sh удаляет имя ppp интерфейса из этого файла.
Скрипт /opt/etc/ndm/netfilter/ppp.sh читает имена интерфейсов из файла и восстанавливает правила iptables.
Файл в папке var выбран, т.к. это tmpfs (файловая система в памяти) и при перезагрузке все имена забудутся.
Примерно так
/opt/etc/ppp/ip-up.sh

Код: Выделить всё

#!/opt/bin/sh
PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin
logger "*** L2TP client connected [$*]; adding iptables rules"
iptables -A INPUT -i $1 -j ACCEPT
iptables -A FORWARD -i $1 -j ACCEPT
iptables -A FORWARD -o $1 -j ACCEPT
iptables -t nat -A POSTROUTING -o $1 -j MASQUERADE
echo $1 >> /var/ppp.list

/opt/etc/ppp/ip-down.sh

Код: Выделить всё

#!/opt/bin/sh
PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin
logger "*** L2TP client disconnected [$*]; deleteting iptables rules"
iptables -D INPUT -i $1 -j ACCEPT
iptables -D FORWARD -i $1 -j ACCEPT
iptables -D FORWARD -o $1 -j ACCEPT
iptables -t nat -D POSTROUTING -o $1 -j MASQUERADE
sed -i "/$1/d" /var/ppp.list

/opt/etc/ndm/netfilter.d/ppp.sh

Код: Выделить всё

#!/opt/bin/sh

TZ=`cat /etc/TZ | tail -n 1`
PPP_LIST=/var/ppp.list
/opt/bin/logger "ppp.sh called with table = $table"
if [ ! -f "$PPP_LIST" ]; then
    exit 0
fi

if [ "$table" = 'nat' ]; then
    while read ppp
    do
        /opt/sbin/iptables -t nat -A POSTROUTING -o $ppp -j MASQUERADE
    done < $PPP_LIST
fi
if [ "$table" = 'filter' ]; then
    while read ppp
    do
        /opt/sbin/iptables -A INPUT -i $ppp -j ACCEPT
        /opt/sbin/iptables -A FORWARD -i $ppp -j ACCEPT
        /opt/sbin/iptables -A FORWARD -o $ppp -j ACCEPT
    done < $PPP_LIST
fi

У Вас есть другие костыли - предлагайте!

orlovmy
Сообщения: 3
Зарегистрирован: 08 апр 2016, 18:46

Сообщение orlovmy » 12 апр 2016, 16:48

Друзья и не очень, огромная просьба опишите как сделать чтобы при конекте(к VPN на кинетикеV2+энтваре при установленной xl2tpd) был доступ как к сети за кинетиком, так и к интернету от кинетика. Очень прошу объяснить прям по пунктам и на русском. Я рад за тех умных людей, которые пишут - "вот как тут http://www.какой-то_програмерский_сайт_ ... _языке.com", они молодцы, а я туп и не понимаю что у них как "там". Можно же копипастнуть и сделать howto грамотный. И я не сказал бы, что я туп или не понимаю в программировании, но зачем усложнять, напиши ты "от" и "до" и будет всем счастье.

А теперь зачем мне это:
Задача с работы конектится через VPN к дому и на больших скоростях получать инет и иногда фильмы на NAS ставить на закачку. На работе и дома один провайдер, но на работе 512кбит, больше начальство жмется ставить. Я как в 90-ые живу там. Дома при этом 42Мбит выдает. Соединение меж домом и работой до 86Мбит. Ну как-то очень-очень-очень хочется воспользоваться домашней скоростью.

Буду очень благодарен подобной инструкции, желательно, чтобы работала на века. А то там про какие-то сбросы до дефолтных пишут.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1264
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 12 апр 2016, 17:06

orlovmy писал(а):Источник цитаты а я туп и не понимаю

Значит этот сайт не для Вас. Все что Вам нужно в теме написано. Или читаете по слогам, или ....

PS Подсказка, тут написано, как отключить то. что Вам нужно. Не отключайте.


Вернуться в «Entware/Qnapware/Optware/Zyxware - обсуждаем репозитории пакетов»

Кто сейчас на конференции

Всего 1 посетитель :: 1 зарегистрированный, 0 скрытых и 0 гостей (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (121) здесь было 18 май 2016, 18:19

Сейчас этот форум просматривают: Yandex [Bot] и 0 гостей