Понимание Iptables

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000:7010 -j ACCEPT

Я пытаюсь понять часть -m state --state NEW.

Поиск по страницам руководства и исправьте меня, если я ошибаюсь.

  • NEW означает, что пакет установил новое соединение или иным образом связан с соединением, которое не видимые пакеты в обоих направлениях

  • -m = match

  • --state, где state - разделенный запятыми список состояний соединения с матч. Возможные состояния недействительны, что означает, что пакет не может быть идентифицирован по какой-либо причине, которая включает в себя нехватку памяти и ошибки ICMP, которые не соответствуют ни одному известному соединению, ESTABLISHED означает, что пакет связан с соединением, которое увидело пакеты в обоих направления, NEW означает, что пакет установил новое соединение или иным образом связан с соединением, которое как не видит пакеты в обоих направлениях, и СВЯЗАНО с тем, что пакет начинает новое соединение, но связано с существующим соединением, таким как передача данных по FTP или ошибка ICMP. UNTRACKED означает, что пакет вообще не отслеживается, что происходит, если вы используете цель NOTRACK в необработанной таблице.

Мой вопрос: в чем разница между этими двумя командами

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000:7010 -j ACCEPT 
iptables -A INPUT  -p tcp --dport 7000:7010  -j ACCEPT 
1
задан 17 September 2013 в 20:05

1 ответ

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000:7010 -j ACCEPT

Используется технология межсетевого экрана с сохранением состояния. Благодаря этому iptables отслеживает состояние каждого соединения, например, NEW, ESTABLISHED, RELATED, чтобы назвать несколько.

NEW - это состояние соединения, когда оно впервые получено из локального интерфейса или других машин, пытающихся подключиться к вашему устройству, как описано на странице руководства. [ 115]

ESTABLISHED - это когда пакет подтверждается хостом назначения. Поэтому пакет виден в обоих направлениях.

При использовании техники межсетевого экрана Stateful у вас будет больше контроля, но меньше строк кода, когда вам нужно будет добавить больше правил межсетевого экрана.


iptables -A INPUT -p tcp --dport 7000:7010 -j ACCEPT

Это правило просто разрешает НОВОЕ входящее соединение в цепочке INPUT iptables с портом 7000: 7010, но не отслеживает состояние пакета для последующего использования.

Подробнее о брандмауэре с сохранением состояния: http://en.wikipedia.org/wiki/Stateful_firewall

0
ответ дан 17 September 2013 в 20:05

Другие вопросы по тегам:

Похожие вопросы: