Сразу говорю, что в iptables не шарю.
Сейчас у меня на серваке для раздачи инета с DSL-модема в локалку настроен шлюз. Со скриптом помогли на форуме, вот он:
/usr/sbin/iptables -N To_Local
/usr/sbin/iptables -N From_Local
/usr/sbin/iptables -A FORWARD -s 10.255.255.0/24 -j From_Local
/usr/sbin/iptables -A FORWARD -d 10.255.255.0/24 -j To_Local
for ch in To_Local From_Local ; do
/usr/sbin/iptables -F $ch
/usr/sbin/iptables -A $ch -m state --state ESTABLISHED -j ACCEPT
done
cat /etc/gwhosts | while read ip ; do
/usr/sbin/iptables -A To_Local -d $ip -j ACCEPT
/usr/sbin/iptables -A From_Local -s $ip -j ACCEPT
done
for ch in To_Local From_Local ; do
/usr/sbin/iptables -A $ch -j DROP
done
/usr/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 10.255.255.0/24 -j MASQUERADE
Так же на серваке поднят сквид - для кеширования, и таким образом у юзеров есть возможность юзать любой сетевой софт - через шлюз, и в то же время пользоваться кешем сквида, прописав в браузере его адрес.
Сейчас возникла необходимость завернуть весь http-трафик, идущий через шлюз, на сквид, т.е. принудительно пустить его через прокси. Где-то видел такую команду:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
Но т.к. у меня уже есть какие-то правила форвардинга, то думаю, что их + эту команду нужно каким-то образом скрестить. Т.к. сам в правилах iptables не шарю, то прошу помощи у вас.