LINUX.ORG.RU
ФорумAdmin

Добавить правило или изменить существуюущие?

 


0

1

Здравствуйте. На шлюзе использую некоторые правила для iptables. Все перечислять не буду, а только то, что интересует. Есть два правила, одно для таблицы нат, другое для фильтра.

-A PREROUTING -i eth1 -p tcp ! -s 192.168.0.2 -m multiport --dport 80 -j REDIRECT --to-port 3128
-A FORWARD -i eth1 -s 192.168.0.2 -o eth0 -j ACCEPT
Мне необходимо, чтобы еще один хост, к примеру 192.168.0.5, подпадал под те же правила. Сделать так:
-A PREROUTING -i eth1 -p tcp ! -s 192.168.0.2,192.168.0.5 -m multiport --dport 80 -j REDIRECT --to-port 3128
не катит, ошибка синтаксиса. В мануале не нашел как явно указать в одном правиле несколько IP-адресов. Если же я сделаю так,
-A PREROUTING -i eth1 -p tcp ! -s 192.168.0.2 -m multiport --dport 80 -j REDIRECT --to-port 3128
-A PREROUTING -i eth1 -p tcp ! -s 192.168.0.5 -m multiport --dport 80 -j REDIRECT --to-port 3128
-A FORWARD -i eth1 -s 192.168.0.2 -o eth0 -j ACCEPT
-A FORWARD -i eth1 -s 192.168.0.5 -o eth0 -j ACCEPT
то по логике вещей, пакет от узла 5 попадает под первое правило для узла 2 и на дальнейшие правила не обращает внимание? Или же я ошибаюсь, и такое сделать можно?


Попробуй наоборот. Если адрес .2 или .5 - выход из PREROUTING. Остальным REDIRECT. Что-то вроде такого:

-A PREROUTING -i eth1 -p tcp -s 192.168.0.2,192.168.0.5 -m multiport --dport 80 -j ACCEPT
-A PREROUTING -i eth1 -p tcp -m multiport --dport 80 -j REDIRECT --to-port 3128
iptables, вроде, не любит несколько адресов в правиле только в сочетании с отрицанием.

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

Как вариант дома на виртуалке попробую. А ipset для двух IP кажется громостким. Да и его установка устрашает :)

massive
() автор топика

А если сначала вырезать все пакеты на эти две машины 2мя правилами, а потом уже редиректить? Т.е. избавиться от отрицания ;)

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