Инструменты пользователя

Инструменты сайта


linux:kernel:firewall:conntrack

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
linux:kernel:firewall:conntrack [2021/04/20 09:34]
admin
— (текущий)
Строка 1: Строка 1:
-====== Conntrack ====== 
- 
-Компонент [[:linux:kernel:firewall:netfilter|netfilter]], обеспечивающий отслеживание состояния соединения и классификацию пакетов по **принадлежности к соединениям**, что обеспечивает **stateful-фильтрацию**.\\ 
- 
-===== Сведения ===== 
- 
-**Классифицирует каждый пакет** либо как открывающий новое соединение, либо относящийся к уже установленному. При этом, понятие "состояние соединения" искусственно вводится даже для протоколов не использующих его (UDP, ICMP).\\ 
-**Отслеживание связанных соединений**, ICMP-ответы на TCP и UDP, FTP сессии с несколькими соединениями и т.д.\\ 
-Механизм анализирует все пакеты, кроме помеченных **NOTRACK** в таблице **raw**, функция удобна например во время DDoS-атаки, что бы не тратить ресурсы на отслеживание с этих хостов.\\ 
- 
-==== Критерий состояния соединения ==== 
-Критерий **conntrack** позволяет классифицировать пакеты на основании их отношения к соединениям.\\ 
-Возможные состояния (**--ctstate**): 
-  * **NEW** - соединение еще не открыто т.е. пакет первый в соединении. 
-  * **ESTABLISHED** - пакет относится к уже установленному соединению, обычно принимаются без доп фильтрации (как и RELATED) 
-  * **RELATED** - пакет открывает новое соединение, логически связанное с уже установленным соединением. 
-  * **INVALID** - пакет по смыслу должен принадлежать к уже установленному соединению, но оно не зарегистрировано, обычно используют **DROP**. 
-  * **UNTRACKED** - отслеживание отключено для этого пакета. 
-  * **DNAT** - применена операция **подмены адреса назначения**. 
-  * **SNAT** - применена операция **подмены адреса источника**. 
-   
-Возможные состояния (**--ctstatus**):   
-  * **EXPECTED** - соединение ожидалось по результатам анализа других соединений (пассивный FTP). 
-  * **CONFIRMED** - подтвержденное состояние, инициатор начал передачу пакетов. 
-  * **SEEN_REPLY** - соединение по которому поступил ответ (имеет место передача в обоих направлениях). 
-  * **ASSURED** - соединение можно считать полностью установленным (присваивается после передачи определенного кол-ва данных, увеличивается тайм-аут). 
-  * **NONE** - не соответствует ни одному из перечисленных. 
- 
-**conntrack** пришел на замену старому критерию **state** (использование его уже не рекомендуется).\\ 
- 
-==== Маркировка соединений ==== 
-Позволяет классифицировать соединение в целом на основании одного пакета. Маркировку автоматически приобретают все пакеты в данном соединении и связанными с ним. 
- 
-==== Статистика по соединениям ===== 
-Критерий **connbytes** позволяет контролировать кол-во байт или пакетов, переданных по каждому конкретному соединению (возможность квот или приоритетов загрузки). 
- 
-==== Количество соединений ==== 
-Критерий **connlimit** позволяет ограничивать число одновременно открытых TCP-соединений с каждого хоста или подсети. 
- 
-===== Модули ===== 
-Часть функционала содержится в модулях, некоторые из них нужно **включать вручную**, например **nf_conntrack_ftp**, модуль для распознавания связанных ftp соединений.\\ 
-Просмотреть список модулей в системе: 
-<code bash># lsmod</code> 
-Включить модуль **nf_conntrack_ftp**: 
-<code bash># modprobe nf_conntrack_ftp</code> 
- 
- 
-===== Утилиты (conntrack-tools) ===== 
-Комплект **conntrack-tools** содержит две утилиты: 
-  * **[[:linux:kernel:firewall:conntrack_util|conntrack]]** - позволяет наблюдать таблицы состояний соединений и взаимодействовать с ними. 
-  * **conntrackd** - демон, обеспечивающий синхронизацию таблиц состояний с другими хостами, используется в кластерах высокой доступности. 
- 
  
linux/kernel/firewall/conntrack.1618911273.txt.gz · Последнее изменение: 2021/04/20 09:34 — admin