Я после некоторого уточнения отслеживания состояния / соединения в iptables.
В чем разница между этими двумя правилами?
iptables -A FORWARD -m state --state УСТАНОВЛЕНО, СВЯЗАННО -j ПРИНЯТЬ
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED, RELATED -j ACCEPT
Кажется, что оба загружают модуль nf_conntrack, если указано -m state или -m conntrack. Оба параметра включают отслеживание состояния или подключения.
Примечание: я не спрашиваю, что делает conntrack, я просто спрашиваю, эквивалентны ли они. Я уже знаю, что у модуля conntrack больше возможностей.
Если приведенное выше эквивалентно, нужно ли вам использовать версию conntrack при использовании conntrackd?
Включено ли отслеживание соединения при первом сопоставлении пакета, содержащего -m state --state BLA, или отслеживание соединения всегда включено для всех потоков трафика?
например В FreeBSD PF вы указываете keepstate для правила для отслеживания состояния. Не то же самое и с netfilter? т.е. он включен для всех потоков, как только модуль загружен?
Можно / нужно ли использовать отслеживание соединения для быстрого сопоставления, как показано ниже? Если он не используется, как показано ниже, не будет ли это означать, что брандмауэр снова будет проходить через набор правил, ища совпадение для пакета, а не просто попадет в первое УСТАНОВЛЕННОЕ правило? [многие примеры, кажется, не используют это, если это правда]
например допустим это какой то роутер / файрволл (без нац).
# Default DROP policy
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# Drop invalid
iptables -A FORWARD -m state --state INVALID -j DROP
# Accept established,related connections
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow ssh through, track connection
iptables -A FORWARD -p tcp --syn --dport 22 -m state --state NEW -j ACCEPT
Посмотреть здесь: Стреляйте себе в ногу с помощью iptables и автоматической загрузки kmod
Первый вопрос - что это Conntrack. Это сайт для Conntrack-Tools. Имея это в виду, что делает государство?
Государственный матч
Наиболее полезный критерий соответствия предоставляется
state' extension, which interprets the connection-tracking analysis of the
ip_conntrack 'модуль. Это очень рекомендуется.Указание
-m state' allows an additional
Параметр --state, который представляет собой список состояний, разделенных запятыми, для сопоставления (флаг `! 'указывает, что эти состояния не совпадают). Это следующие состояния:NEW Пакет, который создает новое соединение.
УСТАНОВЛЕНО Пакет, принадлежащий существующему соединению (т. Е. Пакет ответа или исходящий пакет в соединении, которое получило ответы).
СВЯЗАННЫЙ Пакет, который связан с существующим соединением, но не является его частью, например, ошибка ICMP или (со вставленным модулем FTP) пакет, устанавливающий соединение для передачи данных ftp.
INVALID Пакет, который не удалось идентифицировать по какой-либо причине: это включает нехватку памяти и ошибки ICMP, которые не соответствуют ни одному известному соединению. Обычно эти пакеты следует отбрасывать.
Примером этого мощного расширения соответствий может быть:
# iptables -A FORWARD -i ppp0 -m state! --state NEW -j DROP
Вопросы о состоянии и политике брандмауэра?
Итак, чтобы ответить на вопрос, conntrack предназначен для использования с набором инструментов conntrack и заменяет состояние в этой связи. Лучше, чем заявить, если вы планируете использовать набор инструментов conntrack.
Для потоков трафика включено отслеживание соединений, оно постоянно пытается согласовать потоки с правилами.
Ответ на вопрос 2: да, используйте conntrack.
Чтобы ответить на вопрос 3, в каком случае? Ответ на вопрос о состоянии содержится в приведенном выше определении.
Ответ на 4: conntrack предназначен для использования с набором инструментов conntrack, а состояние - для неиспользования набора инструментов. Да, вы можете использовать conntrack без каких-либо штрафов за использование состояния в вашем примере.