Windows Server 2008이 나오면... (63) - NetSH in Server Core

오늘은 어떠한 정보를 전달하는 포스트보다는 Hyper-V를 Server Core에서 며칠간 써보면서 느꼈던 점을 이리저리 나열해볼까 합니다. 이걸 Windows Server 2008이 나오면...이라는 시리즈에 포함을 시켜야 할까? 라는 생각을 했지만, 나름 필요하신 경우도 있으실 것 같아서 63편으로 자리를 매겨봅니다. ^^;; 첫번째로 NetSH에 대한 이야기를 써보죠.

image

Windows Server 2008 RC1 with Hyper-V Beta 버전을 제가 세미나 데모나 테스트용으로 사용하던 여러 서버중 한대에 설치를 해보았습니다. Hyper-V의 권장 플랫폼이 Windows Server 2008 Server Core 버전이기 때문이기도 하고.. 실제 운영시 어떠한 에로 사항 or 정보가 있을까라는 궁금함도 조금은 있었죠.

설치 후, Administrator 암호 설정은 Windows Server 2008 RC0로 넘어오면서 첫번째 로그인에서 변경을 권장하기 때문에, Net User Administrator *라는 명령어는 필요가 없어졌습니다. 차후 암호를 변경하셔야 할 때도, Ctrl+Alt+Del을 누르시면 암호 변경 메뉴가 나타나기 때문이기도 하죠.

자 그렇다면, 최초에 접근하셔서 하셔야 할 일은 무엇이 있을까요? 바로 IP 설정이죠. 많은 분들께서 이미 IP 설정에 대해서는 명령어를 이제 아실거라 생각합니다. 바로 NetSH입니다.

image

Netsh을 실행하시고 Interface를 치신 후, ?를 쳐봅니다. 언제 어디서나.. 잘 모르겠다.. ?를 치시면 됩니다. 여러 명령어 옵션이 나오는데 바로 IP v4에 대한 IP 주소 설정은 ipv4라는 옵션을 사용합니다. 이제 ipv4 쳐보셔야겠죠? (화면을 잘 보시면.. Commands inherited from the netsh context라는 부분에 나오는 옵션은 Netsh 다음에 붙는 옵션이며, Commands in this context는 현재에 입력할 수 있는 옵션입니다.)

image

ipv4에서는 add, set, show, delete등의 여러 옵션이 있습니다. 주소는 설정(Set)이다보니.. Set만 입력하시고 엔터를 치시면,

image

드디어 원하는 메뉴를 찾은 듯 합니다. 바로 Set Address입니다. 또 명령어를 모르시겠다면, Set Address만 치시고 엔터를 치시면 추가적인 사항을 볼 수 있습니다.

image

Set Address "인터페이스이름" 다음에 옵션이 쭉 붙습니다. 만약 이를 안에서 일일히 옵션까지 안들어가시고 명령어 프롬프트에서 하시고 싶으시다면, NetSH Interface IPV4 Set Address "인터페이스명" Static IP 주소 서브넷마스크 게이트웨이 순으로 치시면 되겠죠. DNS에 대한 추가는 Set DnsServer라는 명령어가 없기 때문에, 추가(Add)가 아닐까 생각해보시면 좋습니다.

image

Add dnsserver가 있네요. Add DnsServer "인터페이스이름" DNS IP

image

이정도만 하셨다면 일차적으로 NetSH에 대한 기본 컨셉은 잡으신 거나 마찬가지죠. Networking에 대한 대부분의 설정은 모두 NetSH에서 가능합니다. IP 주소를 설정하고 원격 컴퓨터에서 접근하려고 MMC나 UNC 경로 접근을 시도하면.. 접근이 안됩니다. 내가 뭔가 잘못했나? 라고 고민하시는 순간에 떠오르실 수 있는 한가지.. "Windows Server 2008은 Windows 방화벽이 기본적으로 켜져있는 서버 운영 체제이다."입니다. 그렇다면 이제 방화벽에서 원하는 포트를 열어줘야 합니다. 서비스를 꺼버리면 되지! 라고 하셨다면, 문제가 생길 수 있습니다. Windows Server 2008, Windows Vista는 Windows Firewall 서비스를 중지시키는 순간에 모든 TCP 교신이 안되게 됩니다.

자 그렇다면, 방화벽 설정은 어떻게 해줘야 할까요? 역시나 NetSH을 사용합니다.

 image

눈 크게 뜨고 찾아보시면 advfirewall이라는 명령어가 있는 것을 찾으실 수 있습니다. 방화벽을 설정할 수 있는 부분이죠.

image

advfirewall에 들어가서 당연히 Set이라는 명령어겠다!라고 해서 Set을 치시면.. 방화벽 전체에 대한 전역 설정이 올라옵니다. 즉 방화벽을 켜고, 끄고에 대한 프로파일 관리가 올라옵니다. 한번더 방화벽 관련 설정으로 들어가기 위해서 Firewall이라는 명령어를 칩니다.

image

add라는 명령어로 새로운 규칙을 생성할 수 있습니다.

image

포트 5959를 열거나, 원격 IP에 대해서 방화벽을 여셔야 할 경우, Windows에서 이미 규칙으로 생성된 것이 아니라면.. 새롭게 규칙을 만들어 주셔야 합니다. Windows Server 2008이나 Windows Vista의 경우에는 많은 포트들에 대해서 관리자의 설정을 도와주기 위해 규칙을 미리 생성해 놓은 것들이 있습니다.

image

전체 설치 버전의 Windows 방화벽 설정에 예외에 가면, 여러 그룹핑된 규칙들이 나열됩니다. 그럼 이런 설정은 Server Core에서는 안될까요? 된다면 어떻게 할까요?

image

네! Set이라고 쳐보니, 원하는 Set Rule이라는 명령어가 있군요. 잘 찾으셨습니다. NetSH Advfirewall firewall set까지 오셨으면 이제 방화벽 설정을 위한 팔부능선은 넘으신 것입니다. Set Rule이라고 치시면 무진장 긴 설명과 예제가 나옵니다. 바로 예제만 보죠.

image

Set Rule 다음에 Name이 나오면.. 바로 기존에 만들어 둔 규칙을 수정한다는 것입니다. Windows에서 미리 필요한 포트들을 그룹으로 묶어 놓았기 때문에, 해당 그룹을 Enable 시키시면 전체가 다 Enable되는 효과를 볼 수 있습니다. 그렇다면 이런 규칙 그룹을 어떻게 보느냐? Show를 쳐보시면 알겠죠?

image 

실제로 쳐보시면 무진장 많습니다. 차라리 문서로 뽑고 보는게 낫겠죠? 명령어 프롬프트에서 NetSH advfirewall firewall show rule name=all dir=in type=dynamic > Firewall.txt라고 입력하시면 Firewall.txt라는 파일로 결과가 저장됩니다. 여러 규칙 중 원격에서 파일 및 프린터 공유에 들어오기 위한 포트 규칙 그룹을 보죠.

image

스크린샷이 많다보니, 포스팅이 길어지네요. 뽑아진 규칙들을 잘 보시면 윗 그림처럼 Grouping 이름이 동일한 것들이 몇개 보입니다. 이는 어떤 작업을 하기 위해서 같이 해줘야 할 묶음입니다. 원격에서 파일 및 프린터 공유로 들어오기 위해서는 단순히 하나의 포트만 열어서는 안되는 것과 동일한 의미입니다.

image

NetSH advfirewall firewall set rule "File and Printer Sharing" new enable=yes 라고 입력하시면, 파일 및 프린터 공유에 대한 방화벽 설정이 완료됩니다. 이제 좀 이해가 가시나요?

Server Core를 사용할 때 반드시 아셔야 할 부분입니다. 터미널 서비스를 설정만 하신다고 접근이 되는 것은 아닙니다. 포트도 열어줘야 되겠죠? 이럴때 NetSh에 대한 명령어를 모르시면, Server Core에서는 대략(?) 난감할 수도 있습니다. 물론 꽁수로 전체 설치 버전의 Windows와 Server Core의 Windows내 Administrator 암호를 동일하게 맞추고, 로컬 그룹 정책 편집기로 접속하셔서 작업을 하시겠다? 고 하실 수 있겠지만, 해당 작업도 최소한의 포트는 열어주셔야 접근이 되겠죠? 바로 이땐 Remote Administration 그룹을 모두 사용으로 변경하시고 하셔야 합니다.

오늘 한번, NetSH을 통해서 Windows Server 2008 방화벽내 기본 규칙이 뭐뭐가 있나 한번 살펴보시는 것은 어떨런지요? 다음 편에선 디스크 설정 부분을 가지고 오겠습니다.