No Windows Server 2012 e 2012R2, é possível definir futuras conexões de rede para usar o perfil de firewall Privado em vez de usar como padrão o perfil Público?
Tentei definir todos os itens de rede como Privados em secpol.msc
-> Configurações de segurança -> Políticas do Gerenciador de Lista de Rede, mas sempre que conecto uma nova rede, o padrão é sempre Público.
Como alternativa, existe uma maneira de reativar a caixa de diálogo "Definir local de rede" apresentada em versões do Windows que não sejam de servidor. Isso pelo menos ajudaria a aliviar o problema.
Responder1
Esse "recurso" de segurança ocorre intencionalmente. Os servidores em uma rede "nova" ou "não reconhecida" terão como padrão o perfil público. Como não está em um perfil de domínio, não é um DC e as pesquisas de DNS (para identificar a rede) estão falhando, ele define a rede em que você está como uma rede "Desconhecida" e, portanto, padronizando para o perfil "público".
Você poderia contornar esse problema associando o servidor a um domínio e, ao fazer isso, definiria o local da rede como “Rede de domínio”. Embora esta solução possa não ser ideal ou mesmo possível para você se você se conectar constantemente a "novas" redes.
Se você estiver em uma rede confiável e isso estiver acontecendo ou se este servidor for um DC, configurar o serviço "Reconhecimento de local de rede" para início atrasado resolverá esse problema.
Se o seu servidor estiver "viajando" para redes diferentes ou um DC não estiver presente, você poderá executar o seguinte script do PowerShell (doblog da equipe do windows powershell) para definir todos os perfis de rede como "privados":
# Skip network location setting for pre-Vista operating systems
if([environment]::OSVersion.version.Major -lt 6) { return }
# Skip network location setting if local machine is joined to a domain.
if(1,3,4,5 -contains (Get-WmiObject win32_computersystem).DomainRole) { return }
# Get network connections
$networkListManager = [Activator]::CreateInstance([Type]::GetTypeFromCLSID([Guid]"{DCB00C01-570F-4A9B-8D69-199FDBA5723B}"))
$connections = $networkListManager.GetNetworkConnections()
# Set network location to Private for all networks
$connections | % {$_.GetNetwork().SetCategory(1)}
Se você deseja criar uma tarefa agendada para executar este script na inicialização, aqui está um ótimo tutorial:"Use o Agendador de Tarefas do Windows para executar um script do Windows PowerShell".