본문 바로가기

Network

iptables 를 이용한 나만의 IPS 환경 구축


iptables 을 이용해서 간단하게 IPS 기능과 유사한 환경을 구축한 차단 테스트이다.  

구성환경 : VMWare BackTrack5, VMWare Windows XP (DNS 서버설정 168.126.63.1) 

  

 BackTrack5 에 우선 네트워크 카드 2개를 설정한다. 본 테스트에서는 Vmware의 네트워크를 Bridged Network(VMnet0)으로 설정하고 IP 주소를 10.1.1.1 로 설정하였다. 이것은 이제 사설 네트워크의 컴퓨터들이 외부 인터넷으로 연결되기 위한 게이트웨이 역할을 할 것이다. 다른 한 개에는 외부와 연결되는 공인 IP 를 할당할 것이다. 그러기 위해서 VMware의 네트워크를 NAT(VMnet8) 설정한다. 

가장 기본적인 네트워크 설정이 끝났지만 이 상태에서는 절대 인터넷이 되지 않는다. 따라서 다음과 같은 설정이 되어 있어야 한다. 

< iptables 초기화 > 

iptables -F FORWARD

iptables -P FORWARD DROP 


< IP 포워딩 설정 >     

echo "1" > /proc/sys/net/ipv4/ip_forward 


< 패킷 설정 >

 iptables -A FORWARD -o eth2(내부 사설 네트워크와 연결되는 네트워크 장치) -j ACCEPT
 iptables -A FORWARD -o eth1(외부 인터넷과 연결되는 네트워크 장치) -j ACCEPT

<NAT 설정>
외부 인터넷으로 연결되는 장치인 eth1에 매스커레이드를 허가 하도록 한다. 사설 네트워크와 연결되는 장치인 eth2과 연결된 모든 컴퓨터는 외부로 인터넷이 가능하도록 연결하는 것이다.    

iptables -t nat -A POSTROUTING -o eth1(외부 인터넷과 연결되는 네트워크 장치) -j MASQUERADE

 
 이제 Windows XP 에서도 인터넷이 되는 것을 확인 할수 있을 것이다. 안되는 경우에는 한번 재부팅을 하는 것도 좋다.


테스트 환경이 구축이 완료가 되었다.
이제 이 환경을 어떤 것을 테스트를 해볼까???
우선 웹 페이지 차단이다. ㄱㄱㄱ

1탄


위에 그림은 네이버에 접속했을 때 Packet 화면이다. 웹 페이지 형식은 "Host:  ~" 으로 구성이 되어 있고 이것을 차단 하면 해당 웹페이지 접근은 차단이 된다. 가장 쉬운게 웹 페이지 차단이다. ^ㅡ^;  

< BackTrack5  에 설정 내용>

iptables -I FORWARD -p tcp --dport 80 -m string --string "Host: www.naver.com" --algo kmp -j REJECT

iptables -I FORWARD -p tcp --dport 80 -m string --string "Host: www.naver.com" --algo kmp -j LOG --log-prefix="naver.com(HTTP_1)"


일단 정상적인 웹 접속이 안되기 때문에 오랫동안 기다리면 다음과 같은 화면과 패킷이 나오게 된다. 
이것으로 네이버 웹 접속은 차단이 된 것이다.
 


2탄 

두번째로 해볼 것은 메신저이다. 자주 쓰는 네이트온을 가지고 테스트를 해볼 예정이다.
로그인부터 시그니처를 만들기 위한 패턴을 찾아보자.
네이트온은 총 3단계 로그인 단계가 있다. 각각 패킷을 한번 떠보았다. 

<1단계 로그인>

<2단계 로그인>  

<3단계 로그인>   


패킷을 검토한 결과 계정 앞에 "REQS" 라는 시그니처가 붙어서 전송되는것을 확인했다. 
따라서 이 패킷을 Drop 시킨 다면 사용자는 로그인을 못하게 될 것이다. 

< BackTrack5  에 설정 내용> 

iptables -I FORWARD -p tcp -m string --hex-string "|52 45 51 53|" --algo kmp -j DROP

iptables -I FORWARD -p tcp -m string --hex-string "|52 45 51 53|" --algo kmp -j LOG --log-prefix="nate.com(login)"

※ REQS를 Hex 값으로  |52 45 51 53|  으로 변경해서 입력을 했다. 

위와 같이 설정을 하고 로그인을 하게 된다면 다음과 같은 화면을 보게 될 것이다. 


네이트온에는 많은 기능을 가지고 있고 그에 따른 시그니처도 많이많이 존재하고 있다. 
네이트온 뿐만 아니라 다른 메신저들의 패킷을 잡아보고 패턴을 분석해서 시그니처를 작성 해 볼 수도있다.
랭키닷컴 에서 다양한 메신저 종류를 참고해 볼 수 있다 :)