2006-06-04

윈도우즈에서 IP 보안 정책 설정하기

XP 부터 소프트웨어 방화벽을 지원하지만, TCP/UDP에 대해 특정 포트를 On/Off 시키는 정도의 제어만 가능하다. 그러나 Windows 서버 2003 부터는 - 리눅스에서는 오래전부터 지원했던 - IpSec 을 지원한다. 이는 관리도구 - 로컬보안정책 - IP보안정책 에서 설정할 수 있다.

그러나 가장 좋은 것은 뭐니뭐니해도 하드웨어 방화벽이다. :)

보안 정책

보안 정책은 {IP 필터:필터 동작}의 매핑으로 이루어진다.

  • IP 필터 - {src_ip,dest_ip,protocol,port,...} 으로 구성된다.
  • 필터 동작 - 위 IP 필터에 의해 걸러진 트래픽을 허용/보안요청/보안필요/거부할 것인지를 결정한다.

기본적으로 3가지의 보안 정책이 존재한다. 단 OS 설치 초기에는 모든 정책이 꺼져 있다.

  • 서버(보안요청)
  • 클라이언트(응답만)
  • 보안 서버(보안필요)

따라서, 우리는 새로운 커스텀 보안정책을 생성한 후 아래와 같이 필터와 동작들을 추가해야 한다.

  • 터미널 서비스 : 회사의 개발용 머신, IDC의 다른 컴퓨터들에서만 허용
  • MSSQL : IDC의 다른 컴퓨터에서만 허용
  • WWW : 방화벽 없슴

IP필터

터미널 서비스

터미널 서비스는 TCP 3389 포트를 사용한다. 따라서, 기본적으로 터미널 서비스를 거부한 다음, 접근을 허용하고 싶은 컴퓨터의 IP만 지정해주면 간단하다. OS 방화벽을 함께 사용한 경우, TCP 3389 포트를 열어주는 것을 잊지 말자.

반면, 특정 subnet에서만 터미널 서비스를 허용하려면 , 해당 subnet 이 시작하는 주소를 잘 지정해야 한다. 하긴 mask 만 잘 지정하면 적당한 대역의 IP를 넣으면 알아서 변환이 되니깐 별 관계는 없다만...

정책 프로토콜 원본주소 원본포트 대상주소 대상포트 필터동작
모든 터미널 서비스 거부 TCP any any 서버의 IP 3389 거부
특정 컴퓨터의 터미널 서비스 허용 TCP 특정 컴퓨터 - IP 또는 DNS any 서버의 IP 3389 허용
특정 서브넷의 터미널 서비스 허용 TCP 특정 subnet- 시작 IP / subnet mask any 서버의 IP 3389 허용

SqlServer 에 대한 외부 접근 제어

SqlServer 는 TCP 1433, UDP 1433 포트를 사용한다. OS 방화벽을 함께 사용한 경우, 각 포트들을 열어주는 것을 잊지 말자. TCP/UDP에 대한 거부 필터를 2개 만들어서 추가한 뒤, 접근을 허용하고 싶은 서버를 허용 필터로 추가하면 된다. (보안의 기본적인 컨셉은 모두 막은 뒤 하나씩 풀어주는 것..이라고 누가 말했던가..)

정책 프로토콜 원본주소 원본포트 대상주소 대상포트 필터동작
SqlServer 외부 접근 거부 TCP/UDP 각각 any any 서버의 IP 1433 거부
SqlServer 특정 서버 허용 TCP/UDP 각각 특정 서버의 IP 또는 DNS any 서버의 IP 1433 허용

comments powered by Disqus