В Ubuntu 12.04 и выше нет правил iptable, определенных по умолчанию. Я добавил следующее правило, и оно отлично работает:(Обновление)

iptables -A INPUT -p tcp -j QUEUE -m string --string xyz --algo bm

Теперь в fedora 15 и выше есть несколько предопределенных правил по умолчанию. Вывод iptables -L:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Теперь, когда я добавляю свое правило в iptables, оно не работает. Чтобы это работало, я должен очищать iptables каждый раз перед добавлением своего правила, что нежелательно. Так что, если кто-то может разрешить конфликт между приведенными выше правилами и моим правилом, или если есть альтернативный метод, чтобы убедиться, что такой конфликт не возникает в любом случае, я был бы глубоко благодарен.

1 ответ1

1

У вашей команды есть -D которая используется для удаления правила, поэтому я предполагаю, что это опечатка. Я также предполагаю, что вы хотели сказать, что вы используете команду append (-A) для добавления правила в цепочку (INPUT). В этом случае новое правило появится в конце цепочки после REJECT all так, что это никогда не получит удар. Попробуйте запустить:

iptables -I INPUT 1 -p tcp -j QUEUE -m string --string xyz --algo bm

Это вставит правило перед любым другим правилом в цепочке INPUT вызывая его первое попадание.

НТН

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .