Jump to content
Калькуляторы

ipfw & iptales ,ipset

Добрый вечер уважаемые коллеги.

Помогите правильно построить правило для 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 by roysbike

Share this post


Link to post
Share on other sites

Да не особо. Дело в том , что

разницы в правилах нет, но почему при 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 by roysbike

Share this post


Link to post
Share on other sites

ну как же не должно ?? у вас же в прероутинге правило которое заворачивает все пакеты от pause на страничку паузы )

если хочется чтобы на 172.29.0.0/24 был доступ то поместите правило разрешения с дст 172.29.0.0/24 над правилом паузы.

Share this post


Link to post
Share on other sites

ну как же не должно ?? у вас же в прероутинге правило которое заворачивает все пакеты от pause на страничку паузы )

если хочется чтобы на 172.29.0.0/24 был доступ то поместите правило разрешения с дст 172.29.0.0/24 над правилом паузы.

Попробую , спасибо.

Share this post


Link to post
Share on other sites

ну как же не должно ?? у вас же в прероутинге правило которое заворачивает все пакеты от 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 by roysbike

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Спасибо за помощь! Проблема только с таблицей 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 by roysbike

Share this post


Link to post
Share on other sites

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 by SABRE

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this