LINUX.ORG.RU
ФорумAdmin

connlimit & iptables ???


0

0

Кто-то использует connlimit в iptables?
проблема в том, что хочеться ограничить одновременное количество p2p соединений с одного клиентского хоста, при этом используеться SNAT.
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP
неделю назад я пробывал уже задать этот вопрос
http://www.linux.org.ru/view-message.jsp?msgid=549167&back=view-group.jsp...
но никто так и не ответил.

Я делаю следующим образом:

создаю цепочку в которую будет поподать весь p2p трафик
iptables -t mangle -N my_p2p_chain

направляю весь p2p трафик в эту цепочку
iptables -t mangle -A PREROUTING -m p2p --p2p all -j my_p2p_chain

далее для каждого хоста добовляю правило
iptables -t mangle -A my_p2p_chain -s x.x.x.x -p tcp -m connlimit --connlimit-above 5 -j DROP
(пробовал так-же вместо DROP ставить -j MARK --set-marks 0x100 и потом в цепочке FORWARD делал REJECT всем помеченным пакетам, результат тот-же) всё ужасно глучить, может есть какие мысли?

есть два вопроса:
1) если делаеться SNAT
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP
то можно ли в цепочке FORWARD видеть внутренние IP адреса (192.168.1.xx). Я сколько не пытался видел их только в цепочке PREROUTING.

2) connlimit имеет такой параметер как маска и по умолчанию она равна 32, то есть для 1 хоста и не надо прописывать правила для каждого, но мне кажеться, что если написать
iptables -t mangle -A my_p2p_chain -p tcp -m connlimit --connlimit-above 5 -j DROP
роутер пропустит всего 5 соединений на всю сеть.

anonymous

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.