IOS 버전 12.4 이상에서만 제공되는 명령어이다. 

 

1. 토폴로지 


 
희생자(서버)----------fa0/0_R1_FW(firewall)_fa0/1----------공격자(클라이언트)
192.168.200.100                                                                                    192.168.216.222




2. 상황
: 공격자가 서버로 Syn flooding공격을 수행
공격자가 소스 IP주소를 다르게 하여 많은 양의 Syn 패킷을 전송,
서버는 Syn Ack를 응답하고 ACK가 응답이 없게 되면 수많은 대기상태로 인해 




3. 대응책
 라우터 방화벽동작으로 intercept mode를 동작시킨다. 
 
4 . 원리

1. intercept모드 ( 디폴트모드)

ip tcp intercept mode intercept

처음 클라이언트가 서버로 세션을 맺기위해 3way hand shaking을 시작하면 중간에 라우터가  마치 서버인양 클라이언트와 세션을 맺는다.
정상적으로 수행되면 이번엔 라우터가 클라이언트인양 진짜 서버와  
3way hand shaking을 통해 세션을 맺는다.
정상적으로 수행되었을 시, 클라이언트가 서버로 Push, Ack 플래그를 셋팅시켜 보내고 서버로부터 Ack를 받은 수 이후 과정을 수행한다.  

희생자(서버)-----------R1_FW(firewall)-------------------------공격자(클라이언트)
------->syn ---------->
<-------ack,syn <------
------> ack ---------->
<------ syn <---------------
------> ack syn---------->
<------ ack <---------------

<---------------------------------------------------------------PUSH ACK
ack---------------------------------------------------------------------->



사용이유
Syn flooding 공격은 공격자가 유효하지 않은 소스 IP주소를 가지고 세션을 맺으려 달려들기 때문에 라우터와 클라이언트가  먼저 세션이 맺어져야  실제 서버로 세션수립을 요청하게 되는 이러한 구조에서는 공격이 통하지 않는다. 

의문점 1.  공격이 오면 공격자에게 RST를 보내서 세션을 끊는다고 알고있었는데,..... 찾을 수가 없었다. 
2. 서버와 R1_FW 의 세션이 잘 맺어졌다는 사실을 공격자가 알아야 하는데 어떠한 방법으로???



2.WATCH 모드

ip tcp intercept mode watch


희생자(서버)----------R1_FW(firewall)-------------공격자(클라이언트)

<--------------------- ----------------------------------------------syn
 
syn ack-------------------- 
---------------------------------------------->
<-------------------------------------------------------------------- ack  

이렇게 일반적인 세션수립과정을  그냥 보기만 하는데, 마지막에 ack가 클라이언트로부터 발생하지 않으면 R1이 RST을 서버에게 보내서 세션을 끊는다.
 
이유 : syn Flooding을 방어 




 5. 명령어
 
!R1_FW

conf t
ip access-list extended myserver 
permit tcp any host [서버IP]
exit

ip tcp intercept list myserver
      ip tcp intercept mode watch 또는  이 줄 생략(디폴트가 mode intercept)  





6.  셋팅 전과 패킷 비교

intercept mode셋팅후 telnet 접속 패킷 - R1_FW에서 양쪽 포트 잡은것임


intercept mode셋팅후 hping을 이용한 syn flooding공격을 했을때







 
AND