URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 72194
[ Назад ]

Исходное сообщение
"iptables -t nat -d (!net1 and !net2) -j DNAT"

Отправлено DeusInversus , 14-Фев-07 12:37 
Добрый день!

Есть squid, на который с помощью iptables заворачиваются запросы по 80-у порту, только если
они не идут в сеть 10.0.0.0/8:
iptables -t nat -A PREROUTING -d !10.0.0.0/8 -p tcp --dport 80 -j REDIRECT --to-ports 3128

Теперь понадобилось, чтобы они также НЕ заворачивались и в случае если идут в сеть 192.168.0.0.
Т.е. нужно что-то вроде такой записи: iptables -t nat -d !(10.0.0.0/8 and 192.168.0.0/16) -j REDIRECT ...

Как это можно сделать??


Содержание

Сообщения в этом обсуждении
"iptables -t nat -d (!net1 and !net2) -j DNAT"
Отправлено pavel , 14-Фев-07 13:52 
создай новую цепочку
заворачивай в неё то, что нужно
а в этой цепочке отправляй всё что нужно на squid

"iptables -t nat -d (!net1 and !net2) -j DNAT"
Отправлено pavel , 14-Фев-07 14:19 
да блин понаписал ----

iptables -N nonredir
iptables -A PREROUTING -d 10.0.0.0/8 -p tcp --dport 80 -j nonlocal
iptables -A PREROUTING -d 192.168.0.0/24 -p tcp --dport 80 -j nonlocal
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128

iptables -A nonlocal -j ACCEPT(или как там дальше фильтровать пакеты)


"iptables -t nat -d (!net1 and !net2) -j DNAT"
Отправлено pavel , 14-Фев-07 14:31 
>да блин понаписал ----
неее -- вот ведь чудак --- надо спать,надо спать,надо спать,надо спать....

"iptables -t nat -d (!net1 and !net2) -j DNAT"
Отправлено DeusInversus , 15-Фев-07 01:16 
Благодарю!

Без опечаток решение выглядит так:

iptables -t nat -N nonredir

iptables -t nat -A PREROUTING -d 10.0.0.0/8 -p tcp --dport 80 -j nonredir
iptables -t nat -A PREROUTING -d 192.168.0.0/24 -p tcp --dport 80 -j nonredir
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128

iptables -A nonredir -j ACCEPT


"iptables -t nat -d (!net1 and !net2) -j DNAT"
Отправлено PavelR , 15-Фев-07 08:59 
>Благодарю!
>
>Без опечаток решение выглядит так:
>
>iptables -t nat -N nonredir
>
>iptables -t nat -A PREROUTING -d 10.0.0.0/8 -p tcp --dport 80 -j
>nonredir
>iptables -t nat -A PREROUTING -d 192.168.0.0/24 -p tcp --dport 80 -j
>nonredir
>iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports
>3128
>
>iptables -A nonredir -j ACCEPT

Несколько улыбнуло -  почему же сразу не сделать:

iptables -t nat -A PREROUTING -d 10.0.0.0/8 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -d 192.168.0.0/24 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128

и не создавать лишние цепочки "ни о чем"?