2015-05-27 3 views
0

Насколько я знаю, только один процесс может быть привязан к порту того же протокола, и для считывания входящей информации в порт сокет должен быть привязан к соответствующему порту. Есть ли способ совместного использования сокета с другим процессом или что-то в этом роде?Как брандмауэр/iptables проверяет входящий трафик tcp уже связанных портов?

ответ

1

есть ли способ совместного использования сокета с другим процессом или что-то в этом роде?

Разделяя гнездо и, таким образом, порт между двумя процессами возможна (например, после того, как вилка), но это, вероятно, не то, что вы хотите для анализа данных, так как если один процесс считывает данные с другой не получает их больше.

Как брандмауэр/iptables проверяет входящий трафик tcp уже связанных портов?

Пакетный фильтр, подобный iptables, работает внутри ядра и получает данные до того, как их отправит в сокет. Даже не имеет значения, существует ли сокет, связанный с этим конкретным портом. Если пакетный фильтр не отрицает данные, они передаются без изменений в сокет (если они есть).

Пассивные IDS, такие как snort или инструменты, такие как tcpdump, получают необработанные пакеты, и здесь также не имеет значения, есть ли сокет вообще. Они могут читать только пакеты, т. Е. Не изменять или блокировать.

Брандмауэры уровня приложений или (обратные) прокси имеют свой собственный сокет и получают там данные (напрямую или перенаправленные фильтром пакетов). Затем они могут анализировать данные и явно перенаправлять данные (возможно, после модификации) в исходное приложение.

+0

Если iptables может обращаться к пакетам, игнорирующим порт, я предполагаю, что он делает это, используя некоторую библиотеку, которая предоставляет API уровня 2 (я имею в виду, если он не прослушивает определенный порт, он, вероятно, прослушивает конкретный MAC-адрес или что-то в этом роде) знаете ли вы, какая библиотека? – user3371266

+0

Фильтр пакетов, например, iptables, работает на другом уровне. Они ничего не слушают, они просто находятся на пути обработки пакетов и получают пакеты, прежде чем вся обработка сокетов и т. Д. Выполняется ядром. –

Смежные вопросы