roysbike Posted March 21, 2014 Posted March 21, 2014 (edited) Добрый вечер уважаемые коллеги. Помогите правильно построить правило для iptables , аналогично ipfw. Блокируем клиентов и редиректим их на страницу в зависимости от состояние нет денег/на паузе. IPFW рабочий конфиг Nginx слушает 127.0.0.1 и все запросы редиректит на http://my.ru #!/bin/sh ext="lagg0" int="vlan290" fwcmd="/sbin/ipfw" ${fwcmd} -f flush #table-7 = 172.29.0.0/24 и тд #Резрешаем по любому ходить клиентам на локальные ресурсы ${fwcmd} add allow all from $pppoe_net, $work_net to 'table(7)' ${fwcmd} add allow all from 'table(7)' to $pppoe_net, $work_net #no money # У кого нет бабла , перекидываем на страницу ${fwcmd} add fwd 127.0.0.1,8888 ip from 'table(2)' to any dst-port 80 via ng* ${fwcmd} add allow tcp from any 80 to 'table(2)' via ng* ${fwcmd} add deny all from any to 'table(2)' via ng* ${fwcmd} add deny all from 'table(2)' to any via ng* #Pause # Кто включил услугу пауза, на страницу , что у него пауза ${fwcmd} add fwd 127.0.0.1,8887 ip from 'table(4)' to any dst-port 80,8080,8081 via ng* ${fwcmd} add allow tcp from any 80,8080,8081 to 'table(4)' via ng* ${fwcmd} add deny all from any to 'table(4)' via ng* ${fwcmd} add deny all from 'table(4)' to any via ng* Теперь с iptables + ipset IPSET ipset -L в таблице debtors - должники , pause кто на паузе, тут все понятно. defaultnet - разрешаю локальные ресурсы по любому. Name: debtors Type: hash:ip Header: family inet hashsize 1024 maxelem 65536 Size in memory: 16504 References: 2 Members: Name: defaultnet Type: hash:net Header: family inet hashsize 1024 maxelem 65536 Size in memory: 16792 References: 2 Members: 172.29.0.0/24 Name: pause Type: hash:ip Header: family inet hashsize 1024 maxelem 65536 Size in memory: 16520 References: 2 Members: 172.30.100.1 IN_IFACE="bond1" IN_IFACE_290="vlan290" IN_IFACE_295="vlan295" OUT_IFACE="bond0" IPTABLES=`which iptables` IPSET="/usr/sbin/ipset" WEB_DEBTORS="172.29.0.4:80" WEB_PAUSE="172.29.0.4:81" TC=`which tc` case "start" in start) echo 1 > /proc/sys/net/ipv4/conf/bond0/proxy_arp echo 1 > /proc/sys/net/ipv4/ip_forward $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD ACCEPT $IPTABLES -F $IPTABLES -X $IPTABLES -t nat -F $IPTABLES -t mangle -F $IPTABLES -t mangle -X $IPTABLES -t filter -F $IPTABLES -t filter -X $IPTABLES -N bad_tcp_packets $IPTABLES -N tcp_packets $IPTABLES -N udp_packets $IPTABLES -N icmp_packets $IPTABLES -t filter -N blocking_udp $IPTABLES -t filter -N blocking_tcp $IPTABLES -A INPUT -i lo -j ACCEPT $IPTABLES -A OUTPUT -o lo -j ACCEPT $IPTABLES -A tcp_packets -p TCP -i $IN_IFACE_295 -s 172.29.5.0/24 --dport 22 -j ACCEPT $IPTABLES -A udp_packets -p UDP -i $IN_IFACE_295 -s 172.29.0.0/24 --dport 3799 -j ACCEPT $IPSET -N defaultnet nethash $IPSET -N debtors iphash $IPSET -N pause iphash #Debtors forwarding and block $IPTABLES -I FORWARD -p udp --dport 53 -j ACCEPT #разрешаем ходить на DNS $IPTABLES -I FORWARD -m set --match-set default src,dst -j ACCEPT #разрешаем всем таблицу default $IPTABLES -I FORWARD -m set --match-set default dst,src -j ACCEPT #разрешаем всем таблицу default $IPTABLES -t nat -I PREROUTING -i ppp+ -m set --match-set debtors src -p tcp --dport 80 -j DNAT --to-destination $WEB_DEBTORS $IPTABLES -t nat -I PREROUTING -i ppp+ -m set --match-set pause src -p tcp --dport 80 -j DNAT --to-destination $WEB_PAUSE $IPTABLES -A FORWARD -i ppp+ -m set --match-set debtors src -j DROP $IPTABLES -A FORWARD -i ppp+ -m set --match-set pause src -j DROP $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 0 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 3 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 4 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 12 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT $IPTABLES -A INPUT -p TCP -j bad_tcp_packets $IPTABLES -A INPUT -p ALL -i +ppp -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -p TCP -i +ppp -j tcp_packets $IPTABLES -A INPUT -p UDP -i +ppp -j udp_packets $IPTABLES -A INPUT -p ICMP -i +ppp -j icmp_packets $IPTABLES -A INPUT -p ALL -i $IN_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -p TCP -i $IN_IFACE -j tcp_packets $IPTABLES -A INPUT -p UDP -i $IN_IFACE -j udp_packets $IPTABLES -A INPUT -p ICMP -i $IN_IFACE -j icmp_packets $IPTABLES -A INPUT -p ALL -i $IN_IFACE_290 -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -p TCP -i $IN_IFACE_290 -j tcp_packets $IPTABLES -A INPUT -p UDP -i $IN_IFACE_290 -j udp_packets $IPTABLES -A INPUT -p ICMP -i $IN_IFACE_290 -j icmp_packets $IPTABLES -A INPUT -p ALL -i $IN_IFACE_295 -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -p TCP -i $IN_IFACE_295 -j tcp_packets $IPTABLES -A INPUT -p UDP -i $IN_IFACE_295 -j udp_packets $IPTABLES -A INPUT -p ICMP -i $IN_IFACE_295 -j icmp_packets $IPTABLES -A INPUT -p ALL -i $OUT_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -p TCP -i $OUT_IFACE -j tcp_packets $IPTABLES -A INPUT -p UDP -i $OUT_IFACE -j udp_packets $IPTABLES -A INPUT -p ICMP -i $OUT_IFACE -j icmp_packets ;; stop) ;; *) echo "Usage: start,stop" exit 1 ;; esac exit 0 Проблема в следующем . Когда заношу IP в debtors , то при запросе ya.ru и другие сайты ip которые не из 172.29.0.0/24 , редиректит без проблем, локальные сайт открывает. Если заношу IP в pause , то редирект срабатывает если обращаюсь к сети 172.29.0.0/24, хотя не должно. В linux не превычно, прошу помощи построить грамотно правило. Идея думаю ясна Edited March 21, 2014 by roysbike Вставить ник Quote
Abram Posted March 21, 2014 Posted March 21, 2014 0) Используйте iptables-save / iptables-restore. Ваш скрипт читать невозможно. 1) Не оно? http://forum.nag.ru/forum/index.php?showtopic=92809 Попробуйте keepalive-timeout 0. Вставить ник Quote
roysbike Posted March 21, 2014 Author Posted March 21, 2014 (edited) Да не особо. Дело в том , что разницы в правилах нет, но почему при PREROUTING для 81 , он не пускает на сеть 172.29.0.0/24 и делает редирект. ВОт собственно вопрос $IPTABLES -I FORWARD -m set --match-set default src,dst -j ACCEPT #разрешаем всем таблицу default $IPTABLES -I FORWARD -m set --match-set default dst,src -j ACCEPT #разрешаем всем таблицу default $IPTABLES -t nat -I PREROUTING -i ppp+ -m set --match-set debtors src -p tcp --dport 80 -j DNAT --to-destination 172.29.0.4:80 $IPTABLES -t nat -I PREROUTING -i ppp+ -m set --match-set pause src -p tcp --dport 80 -j DNAT --to-destination 172.29.0.4:81 $IPTABLES -A FORWARD -i ppp+ -m set --match-set debtors src -j DROP $IPTABLES -A FORWARD -i ppp+ -m set --match-set pause src -j DROP # Generated by iptables-save v1.4.12 on Sat Mar 22 01:25:43 2014 *mangle :PREROUTING ACCEPT [78855:19861396] :INPUT ACCEPT [975:60370] :FORWARD ACCEPT [77622:19756070] :OUTPUT ACCEPT [602:74095] :POSTROUTING ACCEPT [73188:19575005] COMMIT # Completed on Sat Mar 22 01:25:43 2014 # Generated by iptables-save v1.4.12 on Sat Mar 22 01:25:43 2014 *nat :PREROUTING ACCEPT [6266:358040] :INPUT ACCEPT [1:48] :OUTPUT ACCEPT [1:70] :POSTROUTING ACCEPT [5662:301274] -A PREROUTING -i ppp+ -p tcp -m set --match-set pause src -m tcp --dport 80 -j DNAT --to-destination 172.29.0.4:81 -A PREROUTING -i ppp+ -p tcp -m set --match-set debtors src -m tcp --dport 80 -j DNAT --to-destination 172.29.0.4:80 COMMIT # Completed on Sat Mar 22 01:25:43 2014 # Generated by iptables-save v1.4.12 on Sat Mar 22 01:25:43 2014 *filter :INPUT DROP [2:656] :FORWARD ACCEPT [29068:7750070] :OUTPUT ACCEPT [599:73639] :bad_tcp_packets - [0:0] :blocking_tcp - [0:0] :blocking_udp - [0:0] :icmp_packets - [0:0] :tcp_packets - [0:0] :udp_packets - [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -j bad_tcp_packets -A INPUT -i +ppp -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i +ppp -p tcp -j tcp_packets -A INPUT -i +ppp -p udp -j udp_packets -A INPUT -i +ppp -p icmp -j icmp_packets -A INPUT -i bond1 -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i bond1 -p tcp -j tcp_packets -A INPUT -i bond1 -p udp -j udp_packets -A INPUT -i bond1 -p icmp -j icmp_packets -A INPUT -i vlan290 -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i vlan290 -p tcp -j tcp_packets -A INPUT -i vlan290 -p udp -j udp_packets -A INPUT -i vlan290 -p icmp -j icmp_packets -A INPUT -i vlan295 -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i vlan295 -p tcp -j tcp_packets -A INPUT -i vlan295 -p udp -j udp_packets -A INPUT -i vlan295 -p icmp -j icmp_packets -A INPUT -i bond0 -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i bond0 -p tcp -j tcp_packets -A INPUT -i bond0 -p udp -j udp_packets -A INPUT -i bond0 -p icmp -j icmp_packets -A FORWARD -i ppp+ -m set --match-set defaultnet dst,src -j ACCEPT -A FORWARD -i ppp+ -m set --match-set defaultnet src,dst -j ACCEPT -A FORWARD -p udp -m udp --dport 53 -j ACCEPT -A FORWARD -i ppp+ -m set --match-set debtors src -j DROP -A FORWARD -i ppp+ -m set --match-set pause src -j DROP -A OUTPUT -o lo -j ACCEPT -A icmp_packets -p icmp -m icmp --icmp-type 0 -j ACCEPT -A icmp_packets -p icmp -m icmp --icmp-type 3 -j ACCEPT -A icmp_packets -p icmp -m icmp --icmp-type 4 -j ACCEPT -A icmp_packets -p icmp -m icmp --icmp-type 11 -j ACCEPT -A icmp_packets -p icmp -m icmp --icmp-type 12 -j ACCEPT -A icmp_packets -p icmp -m icmp --icmp-type 8 -j ACCEPT -A tcp_packets -s 172.29.5.0/24 -i vlan295 -p tcp -m tcp --dport 22 -j ACCEPT -A udp_packets -s 172.29.0.0/24 -i vlan295 -p udp -m udp --dport 3799 -j ACCEPT COMMIT Edited March 21, 2014 by roysbike Вставить ник Quote
martini Posted March 21, 2014 Posted March 21, 2014 ну как же не должно ?? у вас же в прероутинге правило которое заворачивает все пакеты от pause на страничку паузы ) если хочется чтобы на 172.29.0.0/24 был доступ то поместите правило разрешения с дст 172.29.0.0/24 над правилом паузы. Вставить ник Quote
roysbike Posted March 21, 2014 Author Posted March 21, 2014 ну как же не должно ?? у вас же в прероутинге правило которое заворачивает все пакеты от pause на страничку паузы ) если хочется чтобы на 172.29.0.0/24 был доступ то поместите правило разрешения с дст 172.29.0.0/24 над правилом паузы. Попробую , спасибо. Вставить ник Quote
roysbike Posted March 25, 2014 Author Posted March 25, 2014 (edited) ну как же не должно ?? у вас же в прероутинге правило которое заворачивает все пакеты от pause на страничку паузы ) если хочется чтобы на 172.29.0.0/24 был доступ то поместите правило разрешения с дст 172.29.0.0/24 над правилом паузы. Попробую , спасибо. В конфиге скрипта у меня правило для 172.29.0.0/24 (ipset defaultnet) находится над preorouting-ом. $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD ACCEPT $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD ACCEPT $IPTABLES -F $IPTABLES -X $IPTABLES -t nat -F $IPTABLES -t mangle -F $IPTABLES -t mangle -X $IPTABLES -t filter -F $IPTABLES -t filter -X $IPTABLES -N bad_tcp_packets $IPTABLES -N tcp_packets $IPTABLES -N udp_packets $IPTABLES -N icmp_packets $IPTABLES -t filter -N blocking_udp $IPTABLES -t filter -N blocking_tcp $IPTABLES -A INPUT -i lo -j ACCEPT $IPTABLES -A OUTPUT -o lo -j ACCEPT $IPTABLES -I FORWARD -p udp --dport 53 -j ACCEPT #разрешаем ходить на DNS $IPTABLES -I FORWARD -o ppp+ -m set --match-set defaultnet src,dst -j ACCEPT #разрешаем всем таблицу defaultnet $IPTABLES -I FORWARD -o ppp+ -m set --match-set defaultnet dst,src -j ACCEPT #разрешаем всем таблицу defaultnet $IPTABLES -t nat -I PREROUTING -i ppp+ -m set --match-set debtors src -p tcp --dport 80 -j DNAT --to-destination $WEB_DEBTORS $IPTABLES -t nat -I PREROUTING -i ppp+ -m set --match-set pause src -p tcp --dport 80 -j DNAT --to-destination $WEB_PAUSE $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 0 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 3 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 4 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 12 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT $IPTABLES -A INPUT -p TCP -j bad_tcp_packets $IPTABLES -A INPUT -p ALL -i +ppp -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -p TCP -i +ppp -j tcp_packets $IPTABLES -A INPUT -p UDP -i +ppp -j udp_packets $IPTABLES -A INPUT -p ICMP -i +ppp -j icmp_packets $IPTABLES -A INPUT -p ALL -i $IN_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -p TCP -i $IN_IFACE -j tcp_packets $IPTABLES -A INPUT -p UDP -i $IN_IFACE -j udp_packets $IPTABLES -A INPUT -p ICMP -i $IN_IFACE -j icmp_packets $IPTABLES -A INPUT -p ALL -i $IN_IFACE_290 -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -p TCP -i $IN_IFACE_290 -j tcp_packets $IPTABLES -A INPUT -p UDP -i $IN_IFACE_290 -j udp_packets $IPTABLES -A INPUT -p ICMP -i $IN_IFACE_290 -j icmp_packets $IPTABLES -A INPUT -p ALL -i $IN_IFACE_295 -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -p TCP -i $IN_IFACE_295 -j tcp_packets $IPTABLES -A INPUT -p UDP -i $IN_IFACE_295 -j udp_packets $IPTABLES -A INPUT -p ICMP -i $IN_IFACE_295 -j icmp_packets $IPTABLES -A INPUT -p ALL -i $OUT_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -p TCP -i $OUT_IFACE -j tcp_packets $IPTABLES -A INPUT -p UDP -i $OUT_IFACE -j udp_packets $IPTABLES -A INPUT -p ICMP -i $OUT_IFACE -j icmp_packets iptable-save # Generated by iptables-save v1.4.12 on Tue Mar 25 09:42:30 2014 *mangle :PREROUTING ACCEPT [506:78802] :INPUT ACCEPT [250:14960] :FORWARD ACCEPT [256:63842] :OUTPUT ACCEPT [154:16800] :POSTROUTING ACCEPT [410:80642] COMMIT # Completed on Tue Mar 25 09:42:30 2014 # Generated by iptables-save v1.4.12 on Tue Mar 25 09:42:30 2014 *nat :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [10:520] [10:520] -A PREROUTING -i ppp+ -p tcp -m set --match-set pause src -m tcp --dport 80 -j DNAT --to-destination 172.29.0.4:81 [0:0] -A PREROUTING -i ppp+ -p tcp -m set --match-set debtors src -m tcp --dport 80 -j DNAT --to-destination 172.29.0.4:80 COMMIT # Completed on Tue Mar 25 09:42:30 2014 # Generated by iptables-save v1.4.12 on Tue Mar 25 09:42:30 2014 *filter :INPUT DROP [0:0] :FORWARD ACCEPT [193:47471] :OUTPUT ACCEPT [151:16344] :bad_tcp_packets - [0:0] :blocking_tcp - [0:0] :blocking_udp - [0:0] :icmp_packets - [0:0] :tcp_packets - [0:0] :udp_packets - [0:0] [0:0] -A INPUT -i lo -j ACCEPT [247:14840] -A INPUT -p tcp -j bad_tcp_packets [0:0] -A INPUT -i +ppp -m state --state RELATED,ESTABLISHED -j ACCEPT [0:0] -A INPUT -i +ppp -p tcp -j tcp_packets [0:0] -A INPUT -i +ppp -p udp -j udp_packets [0:0] -A INPUT -i +ppp -p icmp -j icmp_packets [0:0] -A INPUT -i bond1 -m state --state RELATED,ESTABLISHED -j ACCEPT [0:0] -A INPUT -i bond1 -p tcp -j tcp_packets [0:0] -A INPUT -i bond1 -p udp -j udp_packets [0:0] -A INPUT -i bond1 -p icmp -j icmp_packets [0:0] -A INPUT -i vlan290 -m state --state RELATED,ESTABLISHED -j ACCEPT [0:0] -A INPUT -i vlan290 -p tcp -j tcp_packets [0:0] -A INPUT -i vlan290 -p udp -j udp_packets [0:0] -A INPUT -i vlan290 -p icmp -j icmp_packets [247:14840] -A INPUT -i vlan295 -m state --state RELATED,ESTABLISHED -j ACCEPT [0:0] -A INPUT -i vlan295 -p tcp -j tcp_packets [0:0] -A INPUT -i vlan295 -p udp -j udp_packets [0:0] -A INPUT -i vlan295 -p icmp -j icmp_packets [0:0] -A INPUT -i bond0 -m state --state RELATED,ESTABLISHED -j ACCEPT [0:0] -A INPUT -i bond0 -p tcp -j tcp_packets [0:0] -A INPUT -i bond0 -p udp -j udp_packets [0:0] -A INPUT -i bond0 -p icmp -j icmp_packets [0:0] -A FORWARD -o ppp+ -m set --match-set defaultnet dst,src -j ACCEPT [63:16371] -A FORWARD -o ppp+ -m set --match-set defaultnet src,dst -j ACCEPT [0:0] -A FORWARD -p udp -m udp --dport 53 -j ACCEPT [0:0] -A OUTPUT -o lo -j ACCEPT [0:0] -A icmp_packets -p icmp -m icmp --icmp-type 0 -j ACCEPT [0:0] -A icmp_packets -p icmp -m icmp --icmp-type 3 -j ACCEPT [0:0] -A icmp_packets -p icmp -m icmp --icmp-type 4 -j ACCEPT [0:0] -A icmp_packets -p icmp -m icmp --icmp-type 11 -j ACCEPT [0:0] -A icmp_packets -p icmp -m icmp --icmp-type 12 -j ACCEPT [0:0] -A icmp_packets -p icmp -m icmp --icmp-type 8 -j ACCEPT [0:0] -A tcp_packets -s 172.29.5.0/24 -i vlan295 -p tcp -m tcp --dport 22 -j ACCEPT [0:0] -A udp_packets -s 172.29.0.0/24 -i vlan295 -p udp -m udp --dport 3799 -j ACCEPT COMMIT # Completed on Tue Mar 25 09:42:30 2014 Edited March 25, 2014 by roysbike Вставить ник Quote
Alex/AT Posted March 25, 2014 Posted March 25, 2014 1. Причина редиректа: $IPTABLES -t nat -I PREROUTING -i ppp+ -m set --match-set debtors src -p tcp --dport 80 -j DNAT --to-destination $WEB_DEBTORS$IPTABLES -t nat -I PREROUTING -i ppp+ -m set --match-set pause src -p tcp --dport 80 -j DNAT --to-destination $WEB_PAUSE -> $IPTABLES -t nat -I PREROUTING -o ppp+ -m set --match-set defaultnet dst -j ACCEPT # не редиректим сеть назначения defaultnet $IPTABLES -t nat -I PREROUTING -i ppp+ -m set --match-set debtors src -p tcp --dport 80 -j DNAT --to-destination $WEB_DEBTORS $IPTABLES -t nat -I PREROUTING -i ppp+ -m set --match-set pause src -p tcp --dport 80 -j DNAT --to-destination $WEB_PAUSE 2. Не совсем верно разрешено ходить в defaultnet (разрешено только из defaultnet в defaultnet)? $IPTABLES -I FORWARD -o ppp+ -m set --match-set defaultnet src,dst -j ACCEPT #разрешаем всем таблицу defaultnet$IPTABLES -I FORWARD -o ppp+ -m set --match-set defaultnet dst,src -j ACCEPT #разрешаем всем таблицу defaultnet -> $IPTABLES -I FORWARD -o ppp+ -m set --match-set defaultnet src -j ACCEPT # разрешаем любой трафик от defaultnet к ppp+$IPTABLES -I FORWARD -i ppp+ -m set --match-set defaultnet dst -j ACCEPT # разрешаем любой трафик от ppp+ к defaultnet Не знаю, насколько это соответствует вашим требованиям, смотрите сами. То, что правила из п.2 выше, чем правила из п.1 - ничего не меняет, они в разных таблицах и цепочках. По теории замечу следующее: не пытайтесь как-то сопоставлять ipfw или pf, и iptables. В iptables именно таблицы и цепочки исполняются в строго определенном порядке, а уже внутри них - правила, строго сверху вниз: 1. Входящий трафик: PREROUTING, INPUT 2. Исходящий трафик: OUTPUT, POSTROUTING 3. Транзитный трафик: PREROUTING, FORWARD, POSTROUTING Порядок таблиц: raw (PREROUTING/OUTPUT), mangle (PREROUTING/OUTPUT/FORWARD/INPUT/POSTROUTING), nat (PREROUTING/OUTPUT/POSTROUTING, если еще не установлено соответствие для соединения), filter (OUTPUT/FORWARD/INPUT). Т.е. для транзита обычный путь следования будет: raw/PREROUTING, mangle/PREROUTING, nat/PREROUTING, mangle/FORWARD, filter/FORWARD, mangle/POSTROUTING, nat/POSTROUTING Вот здесь подробнее: http://www.iptables.info/en/structure-of-iptables.html Вставить ник Quote
roysbike Posted April 15, 2014 Author Posted April 15, 2014 (edited) Спасибо за помощь! Проблема только с таблицей pause. Для каждой страницы у меня свой порт на веб сервере. Для 80 порта правила работают как надо, а для паузы редирект на 81 порт. Вот тут возникает проблема, при обращении к defaultnet таблице , происходит все равно редикт на 172.29.0.4:81. А должно пускать. Не пойму где ошибка code] $IPTABLES -t nat -I PREROUTING -i ppp+ -m set --match-set pause src -p tcp --dport 80 -j DNAT --to-destination 172.29.0.4:81 [/code] Edited April 15, 2014 by roysbike Вставить ник Quote
SABRE Posted April 15, 2014 Posted April 15, 2014 (edited) roysbike Вам Alex/AT уже правильно сказал, нужно вместо $IPTABLES -t nat -I PREROUTING -i ppp+ -m set --match-set debtors src -p tcp --dport 80 -j DNAT --to-destination $WEB_DEBTORS $IPTABLES -t nat -I PREROUTING -i ppp+ -m set --match-set pause src -p tcp --dport 80 -j DNAT --to-destination $WEB_PAUSE поставить $IPTABLES -t nat -A PREROUTING -i ppp+ -m set --match-set defaultnet dst -j ACCEPT $IPTABLES -t nat -A PREROUTING -i ppp+ -m set --match-set debtors src -p tcp --dport 80 -j DNAT --to-destination $WEB_DEBTORS $IPTABLES -t nat -A PREROUTING -i ppp+ -m set --match-set pause src -p tcp --dport 80 -j DNAT --to-destination $WEB_PAUSE а в форвард, точно как он написал: $IPTABLES -I FORWARD -o ppp+ -m set --match-set defaultnet src -j ACCEPT # разрешаем любой трафик от defaultnet к ppp+ $IPTABLES -I FORWARD -i ppp+ -m set --match-set defaultnet dst -j ACCEPT # разрешаем любой трафик от ppp+ к defaultnet Edited April 15, 2014 by SABRE Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.