Брандмауэр Windows - открытие портов путем указания.exe
Обычно вы открываете порты, указывая номер порта и протокол - TCP или UDP. Тем не менее, Windows позволяет мне добавлять исключения, указав исполняемый файл. Как это работает? Что происходит под капотом, когда я выбираю, например, "mygame.exe"?
Я думаю, как это реализовано в ОС. Windows должна будет отслеживать программы, которые объявили, что они прослушивают определенный порт X. Затем, когда пакет приходит, он проверяет его порт назначения, затем он проверяет, прослушивает ли какая-либо из программ в списке исключений этот порт, и если mygame.exe есть, он пересылает пакет в mygame.exe. Если в списке исключений нет соответствующей программы, она проверяет список открытых портов. Если порт назначения отсутствует в этом списке, пакет игнорируется.
Это как это работает?
2 ответа
Я думаю, как это реализовано в ОС. 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 переслать его соответствующей программе.
Да, вот как это работает. Microsoft предлагает сделать это следующим образом:
Когда вы добавляете программу в список разрешенных программ в брандмауэре или открываете порт брандмауэра, вы разрешаете определенной программе отправлять информацию на ваш компьютер или с вашего компьютера через брандмауэр. Позволить программе взаимодействовать через брандмауэр (иногда называемый разблокировкой) - все равно что пробить дыру в брандмауэре.
Каждый раз, когда вы открываете порт или разрешаете программе взаимодействовать через брандмауэр, ваш компьютер становится все менее безопасным. Чем больше разрешенных программ или открытых портов имеет ваш брандмауэр, тем больше у хакеров или вредоносного программного обеспечения возможностей использовать одно из этих средств для распространения червя, доступа к вашим файлам или использования компьютера для распространения вредоносного программного обеспечения среди других.
Обычно безопаснее добавлять программу в список разрешенных программ, чем открывать порт. Если вы открываете порт, он остается открытым, пока вы его не закроете, независимо от того, использует ли его программа. Если вы добавляете программу в список разрешенных программ, "дыра" открывается только тогда, когда это необходимо для конкретного сообщения.