DNS Socket Pool 이해하기


DNS Server를 설치하면 DNS Server Process가 상당한 메모리(약 150MB)를 사용하게 된다. 그 이유는 Socket Pool을 사용하기 위해서 DNS와 관련된 Process가 갑자기 많이 실행된다. DNS Socket Pool은 DNS 서버 보안을 위해서 필요한 기능이다. 혹시 DNS 보안 보다 메모리 활용에 더 중점을 둔다면  SocketPoolSize를 조정하여 운영하면 된다.

DNS Socket Pool (Source Port Randomization)에 대한 자세한 내용은 다음 동영상(http://technet.microsoft.com/en-us/video/video-source-port-randomization-socket-pool-in-windows-server-2008-r2-dns.aspx)을 보면 알 수 있다. 좋은 동영상이므로 자세히 보면 왜 이런 기능이 Default로 설정되어 많은 메모리를 차지하게 되는지를 알 수 있다.

다음과 같이 테스트를 해본다.
1) DNS Server를 설치한다.
2) Task Manager를 실행하여 DNS Server Process가 얼마나 많은 메모리를 사용하는지 확인한다
3) netstat -ano를 실행한다. 그러면 많은 프로세스가 실행중임을 알 수있다
4) DNS socket pool size를 확인하기 위해 DNSCMD /Info /SocketPoolSize를 실행하거나 Get-DNSServer | more를 실행하여 현재 크기를 확인한다 (기본 설정 2500)
5) DNS socket pool size를 다음과 같이 진행하여 줄여 본 후 그 결과를 확인한다.
DNScmd /Config /SocketPoolSize 5
DNScmd /Info /SocketPoolSize
net stop dns & net start dns  (dns 서버를 재시작하기)
6) Task manager를 실행하여 DNS Server Process가 얼마 만큼의 메모리를 차지하는지 확인한다. 상당히 많이 줄어들었다는 것을 알 수 있다.
7) netstat -ano를 실행한다. 그 결과 이전보다 프로세스 및 열린 포트 수량이 확 줄어 든 것을 알 수 있다.

** DNS Socket Pool을 이용하여 DNS Port Spoofing 공격을 방어하는 기능은 Windows Server 2008 R2에서 처음 제공되었고, Windows Server 2012에서 계속 제공되는 기능이다. 이것을 모르는 상태에서 DNS Server를 설치하면 상당히 많은 메모리를 점유하는 것을 보고 놀라게 되지만 보안을 우선하게 된다면 DNS Socket Pool 기능을 Default로 사용하거나 적당히 줄여서 사용하고, 보안보다는 메모리 활용에 더 중요도를 둔다면 DNS Socket Poolsize를 확 줄여서 DNS server를 운영하면 된다. DNS Socket Pool Size를 줄이는 방법은 DNScmd /Config /SocketPoolSize 원하는값   으로 하면 된다.

 

Advertisements

컴퓨터가 얼마동안 켜져 있는지를 확인하는 방법


====

$os = Get-WmiObject -Class Win32_OperatingSystem
$boottime =
[System.Management.ManagementDateTimeConverter]::
ToDateTime($os.LastBootupTime)
$timedifference = New-TimeSpan -Start $boottime
$days = $timedifference.TotalDays
‘Your system is running for {0:0.0} days.’ -f $days
=====

위의 내용을 .ps1 파일로 만들어 실행하면 알 수 있다.

 

OS별로 PowerShell 버전 지원 현황


  • 사용하는 시스템의 OS에 따라서 지원되는 Powershell version이 다르다
  • 아래의 표를 보면 정확하게 알 수 있다. [기본]은 원래부터 설치되어 있는 것이다. [추가] Feature를 추가하는 것이고, [다운로드]는 Microsoft web site에서 다운로드 한다는 뜻이다. 이 , 적절한 .Net Framework 버전도 함께 설치해야 한다.


  • Version2.0 시스템에서 원격으로 Version3.0에 접속하여 Version3.0 명령어를 사용할 수 있다. 이 때 사용하는 명령어는 Enter-PSSession, Invoke-Command 이다
  • Windows Server 2012 PowerShell의 원격 관리에 대한 영문 동영상 주소는 http://youtu.be/WveEUCTvlYA