Я пытаюсь выяснить, где приложение брандмауэра на сервере вписывается в программный стек, и в какой момент сетевого процесса «срабатывает» брандмауэр с точки зрения приложения на сервере, пытающегося установить связь через программный брандмауэр на том же сервере.
Без межсетевого экрана:
program asks OS for port; then poof:
program --> port --> internet
Куда подходит межсетевой экран?
program asks OS for port; then poof:
program --> firewall(block/pass) --> port --> internet
или
program asks OS for port; then poof:
program --> port --> firewall(block/pass) --> internet
Проще говоря, локальный брандмауэр на вашем компьютере действует как привратник для фактического трафика, который будет проходить через сетевой стек вашей операционной системы.
Итак, это будет так:
Программное обеспечение -> Сетевой стек (вход / выход) -> Брандмауэр -> Сеть
Оно делает не предотвращать привязку портов, поскольку ядро обрабатывает это. Однако он предотвратит трафик на портах, если настроен для этого.
Есть (для всех практических целей) два разных уровня в игре с тем, что вы просите.
Приложение, запрашивающее привязку порта, находится на другом уровне, чем то, на котором работает брандмауэр. Приложение будет связываться напрямую со стеком TCP / IP, чтобы получить привязку. Это происходит полностью независимо от любого брандмауэра, независимо от того, является ли брандмауэр локальным для узла приложения или удаленной системы.
Межсетевые экраны будут перехватывать пакеты на портах, на которые они настроены, чтобы обращать внимание, как только привязки уже предоставлены. Затем, когда пакеты начинают проходить через эти порты, брандмауэр может выполнять свою работу и проверять трафик. Именно тогда брандмауэр разрешит или заблокирует.