Windows Server 2012 및 2012R2에서는 공용 방화벽 프로필을 기본값으로 설정하는 대신 개인 방화벽 프로필을 사용하도록 향후 네트워크 연결을 설정할 수 있습니까?
-> 보안 설정 -> 네트워크 목록 관리자 정책 에서 모든 네트워크 항목을 비공개로 설정하려고 시도했지만 secpol.msc
새 네트워크에 연결할 때마다 항상 기본값은 공개로 설정됩니다.
또는 서버 버전이 아닌 Windows에 표시되는 "네트워크 위치 설정" 대화 상자를 다시 활성화하는 방법이 있습니까? 이는 적어도 문제를 완화하는 데 도움이 될 것입니다.
답변1
이 보안 "기능"은 의도적으로 설계된 것입니다. "새" 또는 "인식할 수 없는" 네트워크의 서버는 기본적으로 공개 프로필로 설정됩니다. 도메인 프로필에 없고 DC가 아니며 DNS 조회(네트워크 식별)가 실패하기 때문에 현재 있는 네트워크를 "알 수 없는" 네트워크로 정의하므로 기본적으로 "공용" 프로필이 사용됩니다.
서버를 도메인에 가입시키면 이 문제를 해결할 수 있으며, 그렇게 하면 네트워크 위치가 "도메인 네트워크"로 설정됩니다. "새로운" 네트워크에 지속적으로 연결하는 경우 이 솔루션은 이상적이지 않거나 가능하지 않을 수도 있습니다.
신뢰할 수 있는 네트워크에 있고 이런 일이 발생하거나 이 서버가 DC인 경우 "네트워크 위치 인식" 서비스를 지연된 시작으로 설정하면 이 문제가 해결됩니다.
서버가 다른 네트워크로 "이동 중"이거나 DC가 없는 경우 다음 powershell 스크립트를 실행할 수 있습니다(Windows Powershell 팀 블로그) 모든 네트워크 프로필을 "비공개"로 설정하려면 다음을 수행하세요.
# 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)}
부팅 시 이 스크립트를 실행하기 위해 예약된 작업을 생성하려면 다음 튜토리얼을 참조하세요."Windows 작업 스케줄러를 사용하여 Windows PowerShell 스크립트 실행".