3

Обычно вы открываете порты, указывая номер порта и протокол - TCP или UDP. Тем не менее, Windows позволяет мне добавлять исключения, указав исполняемый файл. Как это работает? Что происходит под капотом, когда я выбираю, например, «mygame.exe»?

Я думаю, как это реализовано в ОС. Windows должна будет отслеживать программы, которые объявили, что они прослушивают определенный порт X. Затем, когда пакет приходит, он проверяет его порт назначения, затем он проверяет, прослушивает ли какая-либо из программ в списке исключений этот порт, и если mygame.exe есть, он пересылает пакет в mygame.exe. Если в списке исключений нет соответствующей программы, она проверяет список открытых портов. Если порт назначения отсутствует в этом списке, пакет игнорируется.

Это как это работает?

2 ответа2

0

Да, вот как это работает. Microsoft предлагает сделать это следующим образом:

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

Каждый раз, когда вы открываете порт или разрешаете программе взаимодействовать через брандмауэр, ваш компьютер становится все менее безопасным. Чем больше разрешенных программ или открытых портов у вашего брандмауэра, тем больше у хакеров или вредоносного программного обеспечения возможностей использовать одно из этих средств для распространения червя, доступа к вашим файлам или использования компьютера для распространения вредоносного программного обеспечения среди других.

Как правило, безопаснее добавить программу в список разрешенных программ, чем открывать порт. Если вы открываете порт, он остается открытым, пока вы его не закроете, независимо от того, использует ли его программа. Если вы добавляете программу в список разрешенных программ, "дыра" открывается только тогда, когда это необходимо для определенного сообщения.

0

Я думаю, как это реализовано в ОС. Windows должна будет отслеживать программы, которые объявили, что они прослушивают определенный порт X. Затем, когда пакет приходит, он проверяет его порт назначения, затем он проверяет, прослушивает ли какая-либо из программ в списке исключений этот порт, и если mygame.exe есть, он пересылает пакет в mygame.exe. Если в списке исключений нет соответствующей программы, она проверяет список открытых портов. Если порт назначения отсутствует в этом списке, пакет игнорируется.

Это как это работает?

Нет, это не так. Это на самом деле проще, чем это:

  • Брандмауэр не имеет дело с пересылкой пакетов в программы - Winsock делает
  • Существует только один свод правил
  • Нет "порядка", в котором проверяются правила

Как работает брандмауэр Windows, подробно описано в этой статье Microsoft technet.

Когда входящий пакет достигает вашего компьютера, брандмауэр Windows проверяет пакет и определяет, соответствует ли он критериям, указанным в списке исключений брандмауэра Windows (комбинация таблицы сопоставления NAT и хранилища правил брандмауэра Windows). Если пакет соответствует записи в списке, брандмауэр Windows передает пакет в протокол TCP/IP для дальнейшей обработки. Если пакет не соответствует записи в списке, брандмауэр Windows автоматически отбрасывает пакет и создает запись в файле журнала брандмауэра Windows (если файл журнала включен в диалоговом окне «Параметры журнала» в брандмауэре Windows). Записи в списке исключений могут состоять из имен программ, имен системных служб, портов TCP и портов UDP. Невозможно создать запись в списке исключений на основе поля «Протокол IP» в заголовке IP.

По сути, в режиме по умолчанию брандмауэр действительно заботится только об отказе в пакетах. Если это не соответствует правилу, брандмауэр удаляет его. В противном случае брандмауэр просто ничего не делает, позволяя Winsock переслать его соответствующей программе.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .