Фильтр сетей на IPTABLES
LinAdmin 20 сентября, 2009 - 22:57
Приветствую всех гентушников!
У меня есть небольшая проблема...
Имеются 2 сети:
NET1 – сеть корпуса
NET2 – сеть интернет
надо сделать так чтобы юзерам была доступна NET1, а в NET2 попадали только те IP которые я указал, причем они должны еще шейпится. NET1 доступна всем без ограничений.
Вот мой скрипт настройки iptables:
#!/bin/bash
#
DEV_IN="eth1"
fwscript="/etc/init.d/iptables"
fwcmd=`which iptables`
# Basic rules
${fwcmd} -F
${fwcmd} -t nat -F
${fwcmd} -t mangle -F
${fwcmd} -X
tc qdisc del dev ${DEV_IN} root
# Default policy
${fwcmd} -P INPUT ACCEPT
${fwcmd} -P OUTPUT ACCEPT
${fwcmd} -P FORWARD DROP
# Create chains
${fwcmd} -N NET1
# Redirect all trafic in filter
${fwcmd} -A FORWARD -s 192.168.1.3 -j NET1
${fwcmd} -A FORWARD -s 192.168.1.4 -j NET1
# Shaper
tc qdisc add dev ${DEV_IN} root handle 1: htb default 99
tc class add dev ${DEV_IN} parent 1: classid 1:1 htb rate 10mbit ceil 10mbit
tc class add dev ${DEV_IN} parent 1:1 classid 1:99 htb rate 256kbit ceil 256kbit
tc qdisc add dev ${DEV_IN} parent 1:99 handle 99: sfq perturb 10
# Rule by default
${fwcmd} -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
${fwcmd} -A FORWARD -j REJECT --reject-with icmp-net-prohibited
##############################################################################
wgetcmd=`which wget`
neturl="http://192.168.10.1/nets.txt"
#
${wgetcmd} -c ${neturl}
cat nets.txt | while read ip_addr; do
if [ "${ip_addr}" ] ; then
${fwcmd} -A NET1 -d ${ip_addr} -j ACCEPT
fi
done
##############################################################################
${fwcmd} -t mangle -A POSTROUTING -s 192.168.1.4 -j MARK --set-mark 99
${fwcmd} -t mangle -A POSTROUTING -d 192.168.1.4 -j MARK --set-mark 99
${fwcmd} -A NET1 -s 192.168.1.3 -j ACCEPT
${fwcmd} -A NET1 -s 192.168.1.4 -j ACCEPT
#
${fwcmd} -t nat -A POSTROUTING -o ${DEV_IN} -j MASQUERADE
Здесь в примере IP 192.168.1.4 шейпится, а 192.168.1.3 — нет.
Проблема в том что у IP 192.168.1.4 шейпится ВЕСЬ трафик, как этого избежать?
Заранее спасибо за ответ.
NightNord: теги [code], очевидно, придумали глупые инопланетяне?
»
- Для комментирования войдите или зарегистрируйтесь

Неужели никто не сталкивался
Неужели никто не сталкивался с такой проблемой?
Я пробовал сделать через маркиравки пакетов, но все пакеты попадающие в TC имеют одни и те же метки и TC эти пакеты благополучно фильтрует...
Если ничего не помогает, прочти наконец инструкцию...
А если помечать трафик на том
А если помечать трафик на том интерфейсе на котором требуется его шейпить?