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

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

Сообщение goddamnlb » 22 ноя 2016, 16:54

Zyxmon писал(а):Источник цитаты Пишите правильные скрипты-хуки для борьбы с этим явлением.

Тфу, блин. И ведь правда, а я уж совсем забыл, дырявая голова. Вроде бы и прочитал все, а не вспомнил. Спасибо. Допишу решение - копирну готовые правила сюда.

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

Сообщение goddamnlb » 24 ноя 2016, 15:36

Добавлю еще немного своего опыта.

Чтобы раздать NAT нашим клиентам используем команду iptables -A POSTROUTING -t nat -i $1 -j MASQUERADE, в итоге получаем скрипт ip-up.sh

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

#!/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 -A POSTROUTING -t nat -i $1 -j MASQUERADE
echo $1 >> /var/ppp.list


Аналогично поправить для ip-down.sh

Для того, чтобы работали хуки NDM необходимо поставить еще один iptables ( почему ему не подходит /usr/sbin/iptables ?).

Тут-то и начинается самое интересное. /opt/sbin/iptables из entware-3x почему-то ругается на команду iptables -A POSTROUTING -t nat -i ppp13 -j MASQUERADE -

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

iptables v1.4.21: Can't use -i with POSTROUTING
Try `iptables -h' or 'iptables --help' for more information.

хотя /usr/sbin/iptables ее проглатывает и трафик начинает ходить.

скрипт в /opt/etc/ndm/netfilter.d/ соостветственно игнорит мою команду, поскольку iptables ее принимать не хочет

В итоге разбил на 2 скрипта. Взял у zyxmon часть

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

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

if [ "$table" = "filter" ]; then
    while read ppp
    do
         iptables -A INPUT -i $ppp -j ACCEPT
         iptables -A FORWARD -i $ppp -j ACCEPT
         iptables -A FORWARD -o $ppp -j ACCEPT
        done < $PPP_LIST
fi


и добавил такой вот костыль

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

#!/bin/sh

[ "$table" != "nat" ] && exit 0
iptables -t nat -A POSTROUTING -s 172.11.11.0/24 -j MASQUERADE

где 172.11.11.0 подсеть l2tp сервера.

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

Сообщение Zyxmon » 24 ноя 2016, 17:11

goddamnlb писал(а):Источник цитаты хотя /usr/sbin/iptables ее проглатывает

Это Вам повезло, что в тестовой прошивке оказался вариант iptables от разработчиков. В релизной прошивке этого не будет.

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

Сообщение goddamnlb » 25 ноя 2016, 09:11

Zyxmon писал(а):Источник цитаты тестовой прошивке оказался вариант iptables от разработчиков

Теперь понятно, спасибо.
А не поделитесь мнением, почему эта команда не пускает за NAT?

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

iptables -A POSTROUTING -t nat -o $1 -j MASQUERADE


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

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей