O problema era o adaptador de rede "Adaptador Ethernet VirtualBox Host-Only Network" do Oracle VirtualBox. Este adaptador de rede foi registrado no Windows como sendo uma rede "pública", ativando assim meu perfil público para regras de firewall. Consegui corrigir esse problema usando o método deste artigo:
A idéia é informar ao Windows que este adaptador de rede é virtual, então ele pode ignorá-lo até onde as regras de firewall vão. uma simples edição de registro fará isso. aqui está algum powershell que aplicará automaticamente essa alteração no registro:
cd 'HKLM:\system\CurrentControlSet\control\class\{4D36E972-E325-11CE-BFC1-08002BE10318}'
ls ???? | where { ($_ | get-itemproperty -name driverdesc).driverdesc -eq 'VirtualBox Host-Only Ethernet Adapter' } | new-itemproperty -name '*NdisDeviceType' -PropertyType dword -value 1
Ainda estou perdendo o motivo pelo qual o Windows decide usar o perfil Público para todo o tráfego, em vez de apenas o tráfego proveniente desse adaptador de rede. Eu tenho outras máquinas que não parecem ser afetadas por esse fenômeno. Por exemplo, em uma máquina eu tenho a seguinte saída para netsh advfirewall firewall show rule name="Remote Desktop (TCP-In)"
Rule Name: Remote Desktop (TCP-In)
----------------------------------------------------------------------
Enabled: Yes
Direction: In
Profiles: Domain,Private
Grouping: Remote Desktop
LocalIP: Any
RemoteIP: Any
Protocol: TCP
LocalPort: 3389
RemotePort: Any
Edge traversal: No
Action: Allow
Ok.
e a seguinte saída para netsh advfirewall show currentprofile
Domain Profile Settings:
----------------------------------------------------------------------
State ON
Firewall Policy BlockInbound,AllowOutbound
LocalFirewallRules N/A (GPO-store only)
LocalConSecRules N/A (GPO-store only)
InboundUserNotification Enable
RemoteManagement Disable
UnicastResponseToMulticast Enable
Logging:
LogAllowedConnections Enable
LogDroppedConnections Enable
FileName %systemroot%\system32\LogFiles\Firewall\pfirewall.log
MaxFileSize 4096
Public Profile Settings:
----------------------------------------------------------------------
State ON
Firewall Policy BlockInbound,AllowOutbound
LocalFirewallRules N/A (GPO-store only)
LocalConSecRules N/A (GPO-store only)
InboundUserNotification Enable
RemoteManagement Disable
UnicastResponseToMulticast Enable
Logging:
LogAllowedConnections Disable
LogDroppedConnections Disable
FileName %systemroot%\system32\LogFiles\Firewall\pfirewall.log
MaxFileSize 4096
Ok.
e ainda sou capaz de fazer conexões de desktop remotas para este computador muito bem. Na verdade, se o meu problema ocorreu a qualquer momento em que o adaptador do VirtualBox estava presente, do que qualquer pessoa com o VirtualBox instalado não seria capaz de remoto em seu computador, então isso deve ser um caso especial ainda não determinado.
Portanto, a questão ainda permanece, como o Windows lida com vários perfis diferentes para várias conexões de rede? Qual variável é diferente entre a minha máquina original de problema e a minha máquina de trabalho? Escolhe o perfil menos seguro e aplica-o a todo o tráfego de rede, como a minha primeira máquina implicaria, ou aplica um perfil para cada adaptador separadamente, como o meu segundo implicaria? Eu vou editar este post se eu descobrir uma resposta a esta pergunta. Nesse meio tempo, pelo menos eu tenho uma solução para o meu problema!