PowerShell의 원격 관리를 이용하면 다양하게 회사 컴퓨터를 관리할 수 있다. 특히 PC들의 routing table을 수정하여 특정한 네트워크 및 컴퓨터에 접속을 제한할 수 있다.
다음 상황을 생각해본다.
- 직원들이 근무 시간에 인터넷 접속을 제한하고자 한다.
이를 위해서는 Default root를 제거한다
route delete 0.0.0.0
- 인터넷 네트워크 접속이 가능한 상태에서 특정한 네트워크 접속만 차단하고자 한다.
이를 위해서 특정한 네트워크로 가는 패킷을 사내 네트워크에 없는 컴퓨터(192.168.123.253)로 보내 버린다
route add 221.147.82.0 mask 255.255.255.0 192.168.123.253
- 사내 컴퓨터의 특정한 컴퓨터만 접속 못하게 하고자 한다.
이를 위하여 특정한 컴퓨터(192.168.123.100)로 가는 패킷을 사내 네트워크에 없는 컴퓨터(192.168.123.253)로 보내 버린다
route add 192.168.123.100 mask 255.255.255.255 192.168.123.253
위의 내용을 로컬 컴퓨터에서 가능하다면 원격 컴퓨터에서 PowerShell로 한꺼번에 적용을 시킬 수 있다.
참고로 관리를 하는 원격 컴퓨터는 직원들 컴퓨터와 동일한 네트워크에 있는 것으로 간주한다.
Invoke-command –computername (get-content c:\computers.txt) {route delete 0.0.0.0}
이렇게 하면 computers.txt 파일에 있는 모든 컴퓨터의 default root가 제거 되기 때문에 인터넷에 연결할 수 없게 된다.
마지막으로 이렇게 하더라도 클라이언트 컴퓨터를 재부팅하면 이러한 설정이 초기화된다. 그러므로 반영구적으로 routing table 설정을 수정하고자 할 때는 –p 옵션을 사용한다. Invoke-command –computername (get-content c:\computers.txt) {route –p delete 0.0.0.0}으로 하면 된다.
그리고 이러한 설정을 할 때마다 이렇게 입력하는 것이 귀찮으면 미리 이러한 것을 .ps1 파워셀 스크립트 파일로 만들어 사용하면 된다. 그래서 이.ps1 파일을 group policy를 통하여 적용할 수도 있고 아니면 그냥 수동으로 실행하여 적용해도 된다.
결론적으로 말하면, PowerShell의 Remote Management 기능과 각 컴퓨터의 routing table을 사용하면 쉽게 사용자 컴퓨터의 네트워크 접속을 차단 및 허용을 할 수 있다. 그래서 Proxy server 및 Firewall 기능을 일부 대체할 수 있다.
아래 그림은 직접 테스트한 것이다.