LINUX.ORG.RU
ФорумAdmin

iptables помогите написать правило

 , ,


0

1

На OpenWRT нужно написать правило, суть в чем, есть локальная сеть 192.168.1.0/24, сам роутер - это 192.168.1.1, в сети есть прокси-сервер - это 192.168.1.12.

Рабочий комп в сети 192.168.1.50

НУЖНО: Сделать маркировку пакетов идущих на 80,443 порт всей сети 192.168.1.0/24 КРОМЕ 192.168.1.1 и 192.168.1.12.

Проверяю работу прокси-сервера таким правилом:

iptables -A PREROUTING -t mangle -s 192.168.1.50 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 3

ВСЕ НИШТЯК! (P/S: на роутере я добавил таблицу с маршрутами с этой маркировкой)

КАК мне написать правило, которое будет маркировать всю сеть КРОМЕ 2-х IP-адресов?

Если написать так:

iptables -A PREROUTING -t mangle -s 192.168.1.0/24 ! -d 192.168.1.1,192.168.1.12 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 3

То ошибка:

iptables v1.6.2: ! not allowed with multiple source or destination IP addresses
Try `iptables -h' or 'iptables --help' for more information.

Подскажите пожалуйста.



Последнее исправление: dirsex (всего исправлений: 1)

КАК мне написать правило, которое будет маркировать всю сеть КРОМЕ 2-х IP-адресов?

проверка идёт по порядку, до первого попадания. Сделай set в ipset и для этого сета сделай правило без маркировки. Далее правило с маркировкой, для всех адресов.

http://ipset.netfilter.org/iptables-extensions.man.html

 -m set --match-set

targitaj ★★★★★
()
Последнее исправление: targitaj (всего исправлений: 2)
Ответ на: комментарий от targitaj

Спасибо за ответ

Т.е. простыми словами, я должен сделать примерно так:

Создать список того, что не надо маркировать:

ipset -N myipnomark nethash
ipset -A myipnomark 192.168.1.1
ipset -A myipnomark 192.168.1.12
Потом наколбасить список для маркировки:
ipset -N myipmark nethash
ipset -A myipmark 192.168.1.2
ipset -A myipmark 192.168.1.3
ipset -A myipmark 192.168.1.4
......
......
ipset -A myipmark 192.168.1.254

Потом так:

iptables -A PREROUTING -t mangle set --match-set myipnomark -p tcp -m multiport --dports 80,443
iptables -A PREROUTING -t mangle set --match-set myipmark -p tcp -m multiport --dports 80,443 -j MARK --set-mark 3

??

у меня но openwrt нет команды ipset ;( надо ставить optware туда, флешку искать и ставить? только так?

dirsex
() автор топика
Ответ на: Спасибо за ответ от dirsex

ipset -A myipmark 192.168.1.2
ipset -A myipmark 192.168.1.3
ipset -A myipmark 192.168.1.4

Если тебя устраивает много правил, то ты можешь сделать и так:

iptables -A PREROUTING -t mangle -s 192.168.1.0/24 ! -d 192.168.1.0/24 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 3

# single addresses
iptables -A PREROUTING -t mangle -s 192.168.1.0/24 -d 192.168.1.2 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 3
iptables -A PREROUTING -t mangle -s 192.168.1.0/24 -d 192.168.1.3 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 3
iptables -A PREROUTING -t mangle -s 192.168.1.0/24 -d 192.168.1.4 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 3
...
iptables -A PREROUTING -t mangle -s 192.168.1.0/24 -d 192.168.1.11 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 3
iptables -A PREROUTING -t mangle -s 192.168.1.0/24 -d 192.168.1.13 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 3
iptables -A PREROUTING -t mangle -s 192.168.1.0/24 -d 192.168.1.14 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 3
iptables -A PREROUTING -t mangle -s 192.168.1.0/24 -d 192.168.1.15 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 3

# subnets
iptables -A PREROUTING -t mangle -s 192.168.1.0/24 -d 192.168.1.16/28 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 3
iptables -A PREROUTING -t mangle -s 192.168.1.0/24 -d 192.168.1.32/27 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 3
iptables -A PREROUTING -t mangle -s 192.168.1.0/24 -d 192.168.1.64/26 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 3
iptables -A PREROUTING -t mangle -s 192.168.1.0/24 -d 192.168.1.128/25 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 3
Tanger ★★★★★
()
Ответ на: комментарий от Tanger

Спасибо!

Я установил ipset на роутер, без флешки встало.

Подскажи пожалуйста, эти 2-а правила iptables для 2-х списков

в списке myipnomark - то, что нельзя маркировать в списке myipmark - то, что маркируем

Список в принципе я могу через for создать и в роутере сохранить.

Спасибо

dirsex
() автор топика
Ответ на: комментарий от Tanger

Сделал 3-мя правилами!)))

iptables -A PREROUTING -t mangle -s 192.168.1.1 -p tcp -m multiport --dports 80,443 -j RETURN
iptables -A PREROUTING -t mangle -s 192.168.1.12 -p tcp -m multiport --dports 80,443 -j RETURN
iptables -A PREROUTING -t mangle -s 192.168.1.0/24 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 3

Готово!)))))) Еее.. все пашет) нафиг ipset)

dirsex
() автор топика
Ответ на: комментарий от dirsex

Молодец! Но с ipset красивее и состав ip адресов можно менять налету, без изменений правил iptables.

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