[Sysadmins] прозрачный прокси и несколько локальных подсеток
Dank Bagryantsev
=?iso-8859-1?q?4alt_=CE=C1_mail=2Eru?=
Пн Июл 10 13:55:25 MSD 2006
Здравствуйте, Anton.
Вы писали понедельник 10 июля 2006 г., 12:13:04:
AG> Появилось желание поднять прозрачный прокси..Точнее он уже есть на
AG> тестовом сервере и даже работает.. Но встала 1 задача - добиться чтоб на
AG> несколько локальных подсеток трафик ходил мимо прокси.
AG> На сколько я понимаю в правиле для iptables нельзя несколько -d указать.
AG> Что здесь можно придумать?
AG> # iptables -t NAT -A PREROUTING -d ! адрес_самого_сервера \
AG> -i внутренний_сетевой_интерфейс -p tcp -m tcp --dport 80 \
AG> -j REDIRECT --to-ports 3128
2 варианта:
1. Через ACCEPT:
$IPTABLES -t nat -A PREROUTING -p tcp -i внутренний_сетевой_интерфейс -d 192.168.1.0/24 --dport 80 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -p tcp -i внутренний_сетевой_интерфейс -d 192.168.2.0/24 --dport 80 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -p tcp -i внутренний_сетевой_интерфейс -d адрес_самого_сервера --dport 80 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -p tcp -i внутренний_сетевой_интерфейс --dport 80 -j REDIRECT --to-ports 3128
2. Через mark:
$IPTABLES -t mangle -A PREROUTING -i внутренний_сетевой_интерфейс -d 192.168.1.0/24 -j MARK --set-mark 100
$IPTABLES -t mangle -A PREROUTING -i внутренний_сетевой_интерфейс -d 192.168.2.0/24 -j MARK --set-mark 100
$IPTABLES -t mangle -A PREROUTING -i внутренний_сетевой_интерфейс -d адрес_самого_сервера -j MARK --set-mark 100
$IPTABLES -t nat -A PREROUTING -m mark --mark ! 100 -p tcp --dport 80 -j REDIRECT --to-ports 3128
или
$IPTABLES -t nat -A PREROUTING -m mark --mark 100 -p tcp --dport 80 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128
естественно, еще:
IPTABLES="/sbin/iptables"
$IPTABLES -t nat -A OUTPUT -p tcp --dport 80 -j ACCEPT
--
С уважением,
Dank
Подробная информация о списке рассылки Sysadmins