//Interop.NetFwTypeLib 는 FwPolicy2 가 구현된 COM개체를 참조하고 있어야 함
//--> Vista & Windows Server 2008
Type trule = Type.GetTypeFromProgID("HNetCfg.FWRule");
Type tpol = Type.GetTypeFromProgID("HNetCfg.FwPolicy2");
INetFwRule newRule;
INetFwPolicy2 Policy2 = (INetFwPolicy2)Activator.CreateInstance(tpol);
//v2.0|Action=Allow|Active=TRUE|Dir=Out|Protocol=6|RPort=8530|Name=윈도우 업데이트 서버(TCP-Out)|Edge=FALSE|
newRule = (INetFwRule)Activator.CreateInstance(trule);
newRule.Name = "윈도우 업데이트 서버(TCP-Out)";
newRule.Protocol = 6;
newRule.RemotePorts = "8530";
newRule.Enabled = true;
newRule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_OUT;
newRule.Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW;
Policy2.Rules.Add(newRule);
//--> Vista & Windows Server 2008
Type trule = Type.GetTypeFromProgID("HNetCfg.FWRule");
Type tpol = Type.GetTypeFromProgID("HNetCfg.FwPolicy2");
INetFwRule newRule;
INetFwPolicy2 Policy2 = (INetFwPolicy2)Activator.CreateInstance(tpol);
//v2.0|Action=Allow|Active=TRUE|Dir=Out|Protocol=6|RPort=8530|Name=윈도우 업데이트 서버(TCP-Out)|Edge=FALSE|
newRule = (INetFwRule)Activator.CreateInstance(trule);
newRule.Name = "윈도우 업데이트 서버(TCP-Out)";
newRule.Protocol = 6;
newRule.RemotePorts = "8530";
newRule.Enabled = true;
newRule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_OUT;
newRule.Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW;
Policy2.Rules.Add(newRule);
그외, 방법으로는 netsh 명령행을 이용하거나 Vbscript 를 이용
netsh advfirewall firewall>add rule name="윈도우 업데이트 서버(TCP-Out)" dir=out action=allow enable=yes remoteport=8530 protocol=tcp
참고로,, 방화벽의 Outbound 차단에 대한 이해에 도움이 될만한,..
테크넷 매거진 내용
보안: Windows Vista 방화벽 관리
http://technet.microsoft.com/ko-kr/magazine/cc510323.aspx (캐시된문서)
의 내용중 마지막 단락의 "아웃바운드 필터링으로 가능한 보안 수준" 은 한번쯤 생각해 볼만한 부분인듯..^^
댓글 없음:
댓글 쓰기