iptables: Invalid argument

Не могу понять почему не додается правило
# iptables -A INPUT -p icmp -m state --state ESTABLISHED -j ACCEPT
iptables: Invalid argument

Хотя на другой машыне все ок, netfilter ans state вкомилены в ядро

#uname -r
2.6.25-gentoo-r7

conntrack

Смотрите в параметрах ядра:
- Netfilter connection tracking support
- IPv4 connection tracking support (required for NAT)
(модулем, либо в ядре).
После этого вывод lsmod.

s30 пишет:Не

s30 написал(а):
Не могу понять почему не додается правило
# iptables -A INPUT -p icmp -m state --state ESTABLISHED -j ACCEPT
iptables: Invalid argument

Хотя на другой машыне все ок, netfilter ans state вкомилены в ядро

#uname -r
2.6.25-gentoo-r7

Странно, у меня это правило работает..... Значит косяк в ведре.....

Quote: iptables -A INPUT

Цитата:
iptables -A INPUT -p icmp --state ESTABLISHED

Никакого косяка в ведре нет :)
Ребята, выделенные фрагменты вместе сосуществовать просто не смогут. Потому что протокол ICMP просто не может иметь тех характеристик, которые пытаются забить в правило! Оно не имеет смысла!
Установка соединения, и соответственно состояние ESTABLISHED - возможности TCP, но никак не ICMP. С помощью ICMP протокола не устанавливается никаких соединений, просто ходят пакеты туда-сюда.
Если нужно пропускать все ICMP пакеты на вход, то правило должно быть таким:
iptables -A INPUT -p icmp -j ACCEPT
И все, этого достаточно. :)

+1 Хотя кстати

+1

Хотя кстати проверил у меня оно добавляется, видимо ньюансы модуля state. По ману оно вроде может применятся совместно с icmp пакетами, но когда --state INVALID - сюда будут подходить пакеты с ICMP ошибками, которые не ассоциированы ни с одним TCP соединением.

В любом случае именно iptables -A INPUT -p icmp --state ESTABLISHED - бессмыслица.

почитай

По указанной

По указанной ссылке вовсе не сказано, что ICMP протокол может создавать соединения. И правило '-p icmp --state ESTABLISHED' все равно не имеет никакого смысла. Для чего пропускать только пакеты, являющиеся ответами на ранее посланный запрос? Уж если не пропускать icmp на INPUT, так не пропускать совсем, и дело с концом. Только нужно учесть, что несмотря на то, что пакеты не пропускаются брандмауэром, они все равно поступают на входящий интерфейс и обрабатываются. Для чего возня со state, совершенно непонятно.

О смысле

О смысле спрашивай автора поста, я просто хотел сказать,

alexpro написал(а):
....
Установка соединения, и соответственно состояние ESTABLISHED - возможности TCP, но никак не ICMP. С помощью ICMP протокола не устанавливается никаких соединений, просто ходят пакеты туда-сюда....

что протокол icmp может иметь состояние ESTABLISHED. Вот и всё.

Да ну? Что по

Да ну? Что по этому поводу написано в RFC? И кстати, какой RFC определяет характеристики ICMP? И что такое RFC?
А если в ядре нет поддержки conntrack? ;) Тогда как? Тоже имеет?
Читайте приведенную вами же ссылку внимательнее, и в первую очередь - общее название материала. Оно говорит само за себя.

А это RFC, на всякий случай:
http://www.faqs.org/rfcs/rfc792.html
http://www.faqs.org/rfcs/rfc777.html
Почитайте, весьма занятно.
В любом случае - это документ, а не статья по применению iptables. :)

Да ну?!

alexpro написал(а):
Никакого косяка в ведре нет :)

Да ну?! А как тогда вы объясните тот факт, что

joper написал(а):
Странно, у меня это правило работает.....

Storm написал(а):
Хотя кстати проверил у меня оно добавляется

s30 написал(а):
# iptables -A INPUT -p icmp -m state --state ESTABLISHED -j ACCEPT
iptables: Invalid argument

Если абстрагироваться от абсурдности сего правила, то не видите ли вы в приведенных мною цитатах каких-либо странностей?

Человек выше по

Человек выше по ветке привел ссылку на статью. На русском языке. В ней все написано :) Почитайте внимательно.
В случае с ICMP, ESTABLISHED - это виртуальное понятие, имеющее место быть только при наличии conntrack, и отношение имеет только к этому модулю. К протоколу ICMP оно имеет отношение косвенное, ибо без этого модуля ICMP не создает никаких соединений, и соответственно - понятие "ESTABLISHED" к нему неприменимо. Я не знаю, зачем в conntrack фиксируются ICMP "соединения". Наверное, это зачем-то кому-то было нужно.

Бесспорно. Я с

Бесспорно. Я с этим и не спорил, если вы заметили.

Quote: iptables -A INPUT

Цитата:
iptables -A INPUT -p icmp -m state --state ESTABLISHED -j ACCEPT

У меня это правило работает тоже, чему я сначала очень удивился, но прочитав статью, ссылку на которую указали в посте выше по теме, все понял. Причем, даже пакеты считает, т.е. - что-то туда таки попадает.
Уж я не знаю на кой потребовалось разработчикам netfilter реализовывать такие вещи... Смысла в подобном правиле нет, и опытному админу просто не могло бы прийти в голову написать такое правило. Разве что с бодуна, или по пьяни.
Кстати.
Можно попробовать netstat, он никаких ESTABLISHED icmp "соединений" не показывает. :)

потому что оно

потому что оно ESTABLISHED наносекунды, пока ответный пакет формируется видимо )

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".