Когда я перешел на семерку еще с прошлым ноутбуком в 2012-м — сразу поставил в файрволе блокировку всего, кроме явно разрешенного, и создавал правила для отдельных служб/приложений. Когда переходил на нынешний ноутбук в 2016-м — тупо загрузил в реестр набор правил из прежней системы, и все прекрасно работало, как и было задумано. С тех пор много раз создавал и менял правила, всегда все работало, как положено.
Последние несколько дней пытаюсь запинать сетевой принтер Samsung CLP-365W, подключенный по WSD через WiFi точно так же, как и SL-M2070W, который прекрасно работал пять лет, но принтер категорически не хотел ничего печатать
. Я уж подумал, что проблема в принтере, но на всякий случай решил внимательно просмотреть лог файрвола, и обнаружил там множество отказов в доступе к сети для службы Print Spooler (spoolsv.exe). Пошел смотреть правила и обнаружил, что правило для этой службы отключено. Но M2070W все это время успешно печатал, причем именно в режиме спулинга — он и в настройках включен, и задания в очередь ставятся, все, как положено. Возможно, спулер сам не ходил к принтеру, а работал с ним через драйвер.
Ладно, включил правило, но ничего не изменилось — по-прежнему шли отказы для spoolsv.exe. Удивился, попробовал задать службу не выбором из списка, а напрямую именем, а потом и путем к EXE. Путь гарантированно правильный — проверял вводом частичного пути, и затем достраивал выбором из выпадающего списка. Не помогло.
Убрал из Scope единственное ограничение на fakenet, разрешив спулеру вообще все, что можно — без толку. Создал три параллельных правила, указав в каждом процесс разными способами — не помогло.
Отказы прекратились и принтер стал печатать только после того, как я создал правило, разрешающее всем процессам делать что угодно в рамках fakenet (192.168.0.0/16).
Перезапускал файрвол, перегружал систему — без толку. Стоит запретить новое правило для всех процессов, как принтер перестает печатать, в логе идут отказы для spoolsv.exe.
При этом правила для всех остальных процессов (и служб, и обычных) прекрасно работают. Для проверки позапрещал некоторые — доступ пропадает, в логе идут отказы; разрешил — снова все работает, как было. Создал пару новых правил для процессов — тоже работают, как надо. Ни одного сбоя/глюка с другими процессами/службами не увидел.
Никаких других фильтров/антивирусов у меня нет.
Что за мистика с Print Spooler? Кто-нибудь сталкивался с подобной избирательностью?
Re: Firewall в Win 7 не пускает Print Spooler в сеть
Здравствуйте, nodir.temir, Вы писали:
NT>Какое правило файера блокирует программу можно посмотреть например в System Informer: вкладка Firewall.
Разве Filtering Engine отдает наружу сведения о том, какие правила подошли или не подошли? А если System Informer просто сам просматривает правила, то вряд ли обрабатывает их в точности так же, как и движок.
Ну и у меня по умолчанию все заблокировано, а правилами выдаются явные разрешения.
Я вроде вычислил, где был глюк. Когда переделывал правило с указания службы на указание пути к образу, просто ввел этот путь, ожидая, что сведения о службе удалятся автоматически, поскольку в хелпе пишут:
A system service that runs within its own unique .exe file and is not hosted by a service container is considered to be a program and can be added to the rule. In the same way, a program that behaves like a system service and runs whether or not a user is logged on to the computer is also considered a program as long as it runs within its own unique .exe file.
А когда посмотрел, как выглядят параметры правил в реестре, заметил, что там по-прежнему присутствует Svc=Spooler. Тогда пошел во вкладку Programs and Services, нажал кнопку Services, переставил выбор на "Apply to all programs and services", параметр Svc из списка исчез, и доступ к сети заработал.
Я так и не понял, почему так получается. Спулер фигурирует в ряде предопределенных правил, и там он тоже задан двояко — и как App, и как Svc — значит, это не должно мешать опознанию, но почему-то мешает.
Re[3]: Firewall в Win 7 не пускает Print Spooler в сеть
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Здравствуйте, nodir.temir, Вы писали:
NT>>Какое правило файера блокирует программу можно посмотреть например в System Informer: вкладка Firewall.
ЕМ>Разве Filtering Engine отдает наружу сведения о том, какие правила подошли или не подошли? А если System Informer просто сам просматривает правила, то вряд ли обрабатывает их в точности так же, как и движок.
Filtering Engine репортит, какое правило заблокировало или дало доступ соединению.
По логу в System Informer можно узнать что именно блокирует программу, а не гадать.
Ещё все правила можно посмотреть с помощью WFP Explorer.
ЕМ>Ну и у меня по умолчанию все заблокировано, а правилами выдаются явные разрешения.
ЕМ>Я вроде вычислил, где был глюк. Когда переделывал правило с указания службы на указание пути к образу, просто ввел этот путь, ожидая, что сведения о службе удалятся автоматически, поскольку в хелпе пишут:
ЕМ>
ЕМ>A system service that runs within its own unique .exe file and is not hosted by a service container is considered to be a program and can be added to the rule. In the same way, a program that behaves like a system service and runs whether or not a user is logged on to the computer is also considered a program as long as it runs within its own unique .exe file.
Вопрос не по теме: А как вы даёте доступ к сети только определённым сервисам SvcHost.exe?
Здравствуйте, nodir.temir, Вы писали:
NT>Filtering Engine репортит, какое правило заблокировало или дало доступ соединению.
Хм, об этом где-то написано? Ни разу не встречал, и даже не слышал о таком.
Даже если и так, то в моем случае это никак не помогло бы — помог бы только протокол обработки каждого правила, в котором отражались бы результаты сравнений по каждому пункту. Нечто подобное выдает Apache по своим RewriteCond/RewriteRule, но и там часто лишь примерно понятно, в чем проблема, а остальное приходится додумывать.
NT>По логу в System Informer можно узнать что именно блокирует программу, а не гадать.
Я ж подчеркнул, что все программы блокирует общий режим (по умолчанию), задаваемый в настройках WFP. Дополнительные правила только разрешают доступ отдельным процессам/службам. Откуда System Informer возьмет подробности обработки всех правил?
NT>как вы даёте доступ к сети только определённым сервисам SvcHost.exe?
Как положено — указанием конкретной службы. Во многих предопределенных правилах указана и конкретная служба, и путь к процессу-контейнеру, но у меня в семерке работает и без процесса (только с Svc).
Re[5]: Firewall в Win 7 не пускает Print Spooler в сеть
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Здравствуйте, nodir.temir, Вы писали:
NT>>Filtering Engine репортит, какое правило заблокировало или дало доступ соединению.
ЕМ>Хм, об этом где-то написано? Ни разу не встречал, и даже не слышал о таком.
System Informer использует свой драйвер.
ЕМ>Даже если и так, то в моем случае это никак не помогло бы — помог бы только протокол обработки каждого правила, в котором отражались бы результаты сравнений по каждому пункту. Нечто подобное выдает Apache по своим RewriteCond/RewriteRule, но и там часто лишь примерно понятно, в чем проблема, а остальное приходится додумывать.
NT>>По логу в System Informer можно узнать что именно блокирует программу, а не гадать.
ЕМ>Я ж подчеркнул, что все программы блокирует общий режим (по умолчанию), задаваемый в настройках WFP. Дополнительные правила только разрешают доступ отдельным процессам/службам. Откуда System Informer возьмет подробности обработки всех правил?
Да, я думал, что проблема была с определением какое правило блокирует программу.
NT>>как вы даёте доступ к сети только определённым сервисам SvcHost.exe?
ЕМ>Как положено — указанием конкретной службы. Во многих предопределенных правилах указана и конкретная служба, и путь к процессу-контейнеру, но у меня в семерке работает и без процесса (только с Svc).
Спасибо. К сожалению, это не работает на Windows 10+.
Re[6]: Firewall в Win 7 не пускает Print Spooler в сеть
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Что именно не работает? Открыл параметры правил в Win 11 — там есть все то же самое, что и в Win 7, плюс дополнительные параметры.
Здравствуйте, nodir.temir, Вы писали:
NT>Напр., Simplewall, чтобы разрешить только нужные сервисы svchost.exe для обновления Windows, копирует svchost.exe.
Только что проверил в 10.0.22000.593 с DNS Client (Dnscache) — работает, как и положено. От указания svchost.exe не зависит — работает и с ним, и без него.
Как я уже говорил, многие предопределенные правила содержат и svchost.exe, и конкретную службу в контейнере. Если б это не работало, весь сетизм ломался бы напрочь.
Re[9]: Firewall в Win 7 не пускает Print Spooler в сеть
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Только что проверил в 10.0.22000.593 с DNS Client (Dnscache) — работает, как и положено. От указания svchost.exe не зависит — работает и с ним, и без него.
`Dnscache` работает, но не сервисы Windows Update:
"This is a bug in Windows 10 using the thread pool. It is a bug because the Microsoft application is not setting the security context individually per thread or is burying security setting and configuration for Windows update."