ACL(Access Control List) 네트워크에서전송되는트래픽을제어하는것은보안적인관점에서중요한이슈이다. 이때, ACL 은트래픽필 터링과방화벽을구축하는데가장중요한요소일뿐만아니라, 라우팅환경에서서브넷과호스트를정의하는 경우에도중요한요소가된다. ACL 개요 ACL은라우

Similar documents
GRE(Generic Routing Encapsulation) GRE는 Cisco에서개발한터널링프로토콜으로써특정네트워크망에서새로운 IP 헤더를인캡슐레이션하여패켓을전송하는 VPN 기능을제공한다. GRE 터널링을이용하여패켓을전송하면, 데이터를암호화하지않기때문에보안적으로는취

Microsoft PowerPoint - ch13.ppt

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta

AAA AAA란라우터로접속하는사용자에대한인증, 권한, 과금을수행하기위한보안관련기능을수행하며, 클라이언트장비가서버쪽장비와연결되어네트워크서비스연결을시도할때도 AAA 기능을통해서장비인증및권한을실시한다. AAA 기능을사용하기이전에는라우터접근제어는 Console 라인과 VTY

Microsoft Word - access-list.doc

TCP.IP.ppt

서버설정 1. VLAN 설정 1.1 토폴로지를참고로 SW1 에 vlan 설정을한다. (vlan 이름을설정하고해당인터페이스에 vlan 이름과동일한코멘트를처리하시오.) 1.2 PC에토폴로지에부여된 IP를설정하고, 게이트웨이는네트워크의마지막주소를사용합니다. - 서버에는 DN

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. 제 28 장이더체널 블로그 : net123.tistory.com 저자김정우

정보기기운용기능사모의고사 1 풀이 1. 기억하세요. 가. 명령어가생각나지않을때? 를입력하세요. 나. 명령어앞의 2~3글자를쓰고탭 (Tab) 키를누르세요. 그러면자동으로완성됩니다. 다. 파일을열고곧바로 [File-SaveAs] 눌러서파일이름을 비번호 로바꿔저장하세요. 2

Microsoft Word - NAT_1_.doc

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1

bn2019_2

슬라이드 1

4. 스위치재부팅을실시한다. ( 만약, Save 질문이나오면 'no' 를실시한다.) SWx#reload System configuration has been modified. Save? [yes/no]: no Proceed with reload? [confirm] (

< FBBE7B0EDB3EBC6AE5FB5F0C6FAC6AEC6D0BDBABFF6B5E5C3EBBEE0C1A128BCF6C1A4292E687770>

IEEE 802.1w RSTP 본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. RSTP는 IEEE 802.1d STP 컨버전스에비해서포트이전이상당히빠른 STP를의미한다. IEEE 802.1d STP 컨버전스는경우

PowerPoint 프레젠테이션

VTP(VLAN Trunk Protocol) Cisco 전용프로토콜로서트렁크로연결된스위치간에 VLAN 정보를공유하는기능을수행한다. 즉, 하나의스위치에서 VLAN을생성하거나, 삭제또는수정을실시하면, 트렁크로연결된다른스위치에게변경된 VLAN 데이터베이스정보를공유하는기능을담

Microsoft Word doc

Network seminar.key

Microsoft PowerPoint - 2.Catalyst Switch Intrastructure Protection_이충용_V1 0.ppt [호환 모드]

SMB_ICMP_UDP(huichang).PDF

[ 네트워크 1] 3 주차 1 차시. IPv4 주소클래스 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트

Microsoft PowerPoint - L4-7Switch기본교육자료.ppt

ATXEVZTBNXGP.hwp

UDP Flooding Attack 공격과 방어

토폴로지 2( 풀이 ) 1. 요구사항 가. 주어진자료 ( 토폴로지 2.pka) 를참고하여네트워크구성작업을완성하시오. 2. 작업내용가. 설명 - 현재토폴로지에이미통신이가능한모든설정이되어있습니다. - 그러나, 보안문제로지금부터주어진조건으로설정을다시하고자합니다. - 총 4개

Subnet Address Internet Network G Network Network class B networ

Microsoft PowerPoint - ch15.ppt

Microsoft Word Question.doc

시스템, 네트워크모니터링을통한보안강화 네트워크의미래를제시하는세미나 세미나 NetFocus 2003 : IT 관리자를위한네트워크보안방법론 피지피넷 /

Microsoft Word - src.doc

untitled

Windows 8에서 BioStar 1 설치하기

슬라이드 제목 없음

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

ARP(Address Resolution Protocol) ARP - Layer 2 계층, Ethernet 환경에서 Destination IP 에대한 MAC Address 변환동작을담당한다. - 논리주소 (IP) 를물리주소 (MAC) 로변환시켜주는프로토콜이다. - 서로

The Pocket Guide to TCP/IP Sockets: C Version

hd1300_k_v1r2_Final_.PDF

운영체제실습_명령어

2. 인터네트워킹 서로떨어져있는각각의수많은네트워크들을연결하여하나의네트워크처럼연결하여사용할수있도록해주는것 3. 인터네트워킹에필요한장비 1 리피터 (Repeater) - 데이터가전송되는동안케이블에서신호의손실인감쇄 (Attenuation) 현상이발생하는데, 리피터는감쇄되는신

TTA Verified : HomeGateway :, : (NEtwork Testing Team)

Microsoft PowerPoint - 4. 스캐닝-2.ppt [호환 모드]

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

Microsoft PowerPoint _TCP_IP

슬라이드 1

Microsoft Word - release note-VRRP_Korean.doc

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

2009년 상반기 사업계획

(SW3704) Gingerbread Source Build & Working Guide

0. 들어가기 전

< F5320B4EBC0C0C0E5BAF1BFA120B4EBC7D120BAB8BEC8B1E2B4C920B0A1C0CCB5E528C3D6C1BE292E687770>

Cisco SDN 3.0 DDoS DDoS Cisco DDoS Real Demo 2008 Cisco Systems, Inc. All rights reserved. 2

제20회_해킹방지워크샵_(이재석)

1217 WebTrafMon II

슬라이드 제목 없음

SRC PLUS 제어기 MANUAL

PowerPoint 프레젠테이션

최종연습 LAN2 1. 호스트이름, enable 패스워드변경 ( 토폴로지참고 ) - 스위치와라우터의 MD5로암호화된 enable passwod : Cisco123 가. 스위치이름 : SW1, SW2 나. 라우터이름 : RT Switch(config)#hostname S

4. IP 설정호스트 인터페이스 IP/ 프리픽스 게이트웨이 lock Rate fa 0/ /25 - fa 0/0 R1 fa 0/ /26 - s 0/0/ / ISP fa 0/0

VPN.hwp

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - ch07.ppt

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

[ tcpdump 패킷캡처프로그램 ] tcpdump란? tcpdump 버전확인 tcpdump 플래그 (flags) tcpdump 사용법 tcpdump의사용예제 telnet을활용해 root와 passwd 암호알아내기 [01] tcpdump란? tcpdump는 Lawren

슬라이드 1

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to TCP/IP Sockets: C Version

OSI 참조 모델과 TCP/IP

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

Microsoft PowerPoint - 4.스캐닝-1(11.08) [호환 모드]

ARMBOOT 1

. PC PC 3 [ ] [ ], [ ] [ ] [ ] 3 [ ] [ ], 4 [ ] [ ], 4 [Internet Protocol Version 4 (TCP/IPv4)] 5 [ ] 6 [ IP (O)], [ DNS (B)] 7 [ ] 한국어 -

untitled

Microsoft PowerPoint - 06-IPAddress [호환 모드]

PowerPoint 프레젠테이션

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

컴퓨터네트워크와인터넷 컴퓨터네트워크 Copyright by Tommy Kwon on August, 2010 Copyright by Tommy Kwon on August, 통신 정보전송시스템의구성과역할, 원리 l 원격지간에정보를잘전송하고처

Chapter11OSPF

[QoS 강좌] QoS에서의 혼잡 회피 적용과 이해 ②

Secure Programming Lecture1 : Introduction

歯규격(안).PDF

Microsoft PowerPoint - ch10.ppt

게시판 스팸 실시간 차단 시스템

Sena Device Server Serial/IP TM Version

Assign an IP Address and Access the Video Stream - Installation Guide

1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x 16, VRAM DDR2 RAM 256MB

제목 레이아웃

Microsoft PowerPoint - 04-UDP Programming.ppt

네트워크연결매뉴얼 SRP-Q300/302 감열식프린터 Rev

슬라이드 1

Microsoft Word _whitepaper_latency_throughput_v1.0.1_for_

정보보안 개론과 실습:네트워크

CCNA security.hwp

Windows Server 2012

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]


Transcription:

제 12 장 ACL 블로그 : net123.tistory.com - 1 - 저자김정우

ACL(Access Control List) 네트워크에서전송되는트래픽을제어하는것은보안적인관점에서중요한이슈이다. 이때, ACL 은트래픽필 터링과방화벽을구축하는데가장중요한요소일뿐만아니라, 라우팅환경에서서브넷과호스트를정의하는 경우에도중요한요소가된다. ACL 개요 ACL은라우터에서정의한필터들로구성된다. 각필터는비교검사를실시하여인터페이스로인바운드또는아웃바운드패켓을허용하거나차단하는일을수행한다. 이때, 필터요소에는출발지주소와목적지주소, 프로토콜유형, 어플리케이션서비스포트번호및타입으로구성된다. ACL 필터구성이완료되면인터페이스에인바운드또는아웃바운드로적용하여트래픽필터링을시작한다. ACL 사용구간 1 라우터에연결된네트워크자원으로트래픽이접근하는것을제어할때사용한다. 2 SNMP, TELNET, SSH 접근을제한하여라우터를보호할때사용한다. 3 라우팅정책을구현하기위한서브넷과호스트를정의할때사용한다 4 QoS 정책을구현하기위한서브넷과호스트를정의할때사용한다. 5 NAT와 PAT 기능을구현하기위한요소로사용한다. 6 IPSec VPN을사용하기위한사용자트래픽을정의할때사용한다. ACL 필터구성단계 1 출발지서브넷 / 호스트와목적지서브넷 / 호스트를정의한다. 2 서버로접근하는서비스타입과클라이언트에게제공하는서비스타입을정의한다. 3 해당대상을허용할것인지, 아니면차단할것인지를결정한다. 4 인터페이스에인바운드필터링을할것인지, 아니면아웃바운드필터링을할것인지결정한다. ACL 메카니즘 라우터로패켓이입력되면목적지 IP 주소를라우팅테이블을참조하여패켓이출력될인터페이스가결정된다. 이때, 출력인터페이스에 ACL이적용되어있다면, ACL 항목을순차적으로검사하다가패켓정보와일치하는항목이있다면, 해당패켓을인터페이스로출력하는것을허용또는차단하는동작을실시하고, 그다음 ACL 항목에대해서는검사를실시하지않는다. 만약, 패켓정보와일치하는 ACL 항목이없다면, 가장마지막에명시적으로처리되는 deny any 에의해서모든패켓을차단한다. 블로그 : net123.tistory.com - 2 - 저자김정우

ACL 설정시주의사항 ACL 설정시주의사항 1 : 서브넷범위가작은항목부터설정한다. ACL 필터항목을설정하면, 설정된순서대로순서번호가할당된다. 이때, 라우터는 ACL 항목에할당된순서번호을작은수부터차례대로검사하여패켓정보와일치한항목이있으면필터동작을실시하고다음순서번호에대한 ACL 항목은검사하지않는다. 만약, [ 예제 12-1] 처럼 ACL을설정하면, 172.16.1.0/24 는차단되지않고허용되게된다. [ 예제 12-1] 172.16.1.0/24 를차단하기위한잘못된 ACL 설정예제 R1(config)#access-list 55 permit 172.16.0.0 0.0.255.255 R1(config)#access-list 55 deny 172.16.1.0 0.0.0.255 R1(config)# R1(config)#do show ip access-lists Standard IP access list 55 10 permit 172.16.0.0, wildcard bits 0.0.255.255 20 deny 172.16.1.0, wildcard bits 0.0.0.255 R1(config)# R1(config)#no access-list 55 [ 예제 12-1] 과같이 172.16.0.0/16 을허용하는설정을먼저하면, 설정된순서대로순서번호 10 이할당되고, 그다음 172.16.1.0/24 를차단하는설정은순서번호 20 이할당된다. 이때, 라우터는순서번호가 10 인 ACL 항목을먼저검사하며, 이와일치한패켓정보가있다면패켓을허용하고그다음순서번호 20 인 ACL 항목은검사하지않는다. 그렇기때문에 172.16.1.0/24 는차단되지않는다. 그렇기때문에 ACL을설정할때에는서브넷범위가작은항목부터설정해야한다. [ 예제 12-2] 는서브넷범위가작은항목부터설정한올바른예제이다. [ 예제 12-2] 172.16.1.0/24 를차단하기위한올바른설정예제 R1(config)#access-list 33 deny 172.16.1.0 0.0.0.255 R1(config)#access-list 33 permit 172.16.0.0 0.0.255.255 R1(config)# R1(config)#do show ip access-lists Standard IP access list 33 10 deny 172.16.1.0, wildcard bits 0.0.0.255 20 permit 172.16.0.0, wildcard bits 0.0.255.255 R1(config)# R1(config)#no access-list 33 블로그 : net123.tistory.com - 3 - 저자김정우

ACL 설정시주의사항 2 : ACL 항목마지막에는명시적으로 deny any 로처리된다. 필터링을하기위해서 ACL 항목을순차적으로검사하다가패켓정보와일치하는 ACL 항목이없다면, 모든 패켓을차단하는 deny any 가동작한다. 만약, [ 예제 12-2] 와같이 ACL 을설정하면, 모든패켓들이차단되는 문제가발생한다. [ 예제 12-3] 172.16.1.0/24 만차단하기위한잘못된 ACL 설정예제 R1(config)#access-list 77 deny 172.16.1.0 0.0.0.255 R1(config)# R1(config)#do show ip access-lists Standard IP access list 77 10 deny 172.16.1.0, wildcard bits 0.0.0.255 R1(config)# R1(config)#no access-list 77 [ 예제 12-3] 과같이 172.16.1.0/24 를차단하는설정만하면, 마지막에처리되는 deny any 때문에모든패켓 이차단되는문제가발생한다. 그래서 172.16.1.0/24 만차단하고자한다면, [ 예제 12-4] 와같이맨마지막항 목에 permit any 를설정하여 deny any 가처리되지않도록해야한다. [ 예제 12-4] 172.16.1.0/24 만차단하기위한올바른 ACL 설정예제 R1(config)#access-list 88 deny 172.16.1.0 0.0.0.255 R1(config)#access-list 88 permit any R1(config)# R1(config)#do show ip access-list Standard IP access list 88 10 deny 172.16.1.0, wildcard bits 0.0.0.255 20 permit any R1(config)# R1(config)#no access-list 88 ACL 설정시주의사항 3 : ACL 항목은부분삭제와부분추가가불가능하다. ACL 항목을설정하면, 설정한순서대로각각의항목에순서번호가할당되며, 라우터는 ACL 항목순서번호를 차례대로검사하여필터링을실시한다. [ 예제 12-5] 현재 R1 에설정된 ACL 항목내용 R1(config)#access-list 22 deny 172.16.1.0 0.0.0.255 R1(config)#access-list 22 permit any 블로그 : net123.tistory.com - 4 - 저자김정우

영리목적으로사용할경우저작권법제30조항에의거법적처벌을받을수있습니다. 만약, [ 예제 12-5] 와같이 ACL이설정된상태에서, 172.16.2.0/24 를차단하기위해서 access-list 22 deny 172.16.2.0 0.0.0.255 항목설정을추가하였다. 그럼방금추가한 ACL 항목은맨마지막항목에추가되므로 access-list 22 permit any 항목때문에차단될수없다. [ 예제 12-6] 은 172.16.2.0/24 를차단하는 ACL 설정을추가한다음 ACL 정보확인을실시한것이다. [ 예제 12-6] 부분적으로항목을추가할수없는예제 R1(config)#access-list 22 deny 172.16.2.0 0.0.0.255 R1(config)# R1(config)#do show ip access-lists Standard IP access list 22 10 deny 172.16.1.0, wildcard bits 0.0.0.255 20 permit any 30 deny 172.16.2.0, wildcard bits 0.0.0.255 또한, 방금추가한 access-list 22 deny 172.16.2.0 0.0.0.255 설정이불필요하다는이유로삭제를실시한다면, ACL 22 번모든항목들이삭제된다. [ 예제 12-7] 은 172.16.2.0/24 를차단하는 ACL 설정을삭제한다음 ACL 정보확인을실시한것이다. [ 예제 12-7] 부분적으로항목을삭제할수없는예제 R1(config)#no access-list 22 deny 172.16.2.0 0.0.0.255 R1(config)# R1(config)#do show ip access-lists R1(config)# 단, Named ACL 은 ACL 항목에대해서부분추가와부분삭제가가능하다. [ 예제 12-8] 라우터에설정되어있는 Named ACL 항목내용 R1#show ip access-lists Standard IP access list TEST 10 deny 172.16.1.0, wildcard bits 0.0.0.255 20 permit any R1 에서 172.16.2.0/24 를차단하기위한 ACL 항목을설정하면, 적어도 20 permit any 항목앞에추가되어야 한다. 이때, Named ACL 은순서번호를직접설정할수있기때문에 [ 예제 12-9] 와같이 20 permit any 항목 앞에추가하여 172.16.2.0/24 가차단되도록할수있다. [ 예제 12-9] Named ACL 항목추가 R1(config)#ip access-list standard TEST R1(config-std-nacl)#15 deny 172.16.2.0 0.0.0.255 R1(config-std-nacl)# 블로그 : net123.tistory.com - 5 - 저자김정우

영리목적으로사용할경우저작권법제30조항에의거법적처벌을받을수있습니다. R1(config-std-nacl)#do show ip access-lists Standard IP access list TEST 10 deny 172.16.1.0, wildcard bits 0.0.0.255 15 deny 172.16.2.0, wildcard bits 0.0.0.255 20 permit any R1(config-std-nacl)# R1(config-std-nacl)#no ip access-list standard TEST R1(config)#end R1# ACL 유형 ACL은일반적으로항목이름을번호로표현하는데, 이때번호는서로다른 ACL 항목을구분하며, ACL의유형을표현하는용도로사용한다. 만약, 서로다른항목의 ACL 설정을많이할경우에는이름으로항목을표현하는 Named ACL을사용하여 ACL 항목을이름으로표현하여주석처럼사용할수있다. 또한 Named ACL은부분추가와부분삭제가가능하기때문에유동적인 ACL 설정시에유리하다. Standard ACL 사용할수있는항목번호는 1~99까지이며, 기본적인 ACL 항목만설정할수있다. Standard ACL는접근하는출발지서브넷과호스트만정의할수있기때문에요즘같은다양한트래픽환경에서사용하기에는부적합하다. 그렇기때문에보통간단한필터링을하거나, 아니면라우팅환경에서특정서브넷과호스트를정의할때주로사용된다. Extended ACL 사용할수있는항목번호는 100~199까지이며, Standard ACL에비해서다양한패켓정보를정의할수있기때문에다양한트래픽환경에서필터링할때사용된다. Extended ACL은출발지서브넷과호스트뿐만아니라, 목적지서브넷과호스트를정의할수있으며, 패켓의상위프로토콜타입과어플리케이션포트번호도정의할수있다. 또한, 다양한옵션키워드를이용하여시간대별필터링, Cisco IOS 방화벽, Qos 정책을위한패켓분류작업을할수있다. Ethernet ACL 사용할수있는항목번호는 700~799 까지이며, 접근하는출발지 MAC 주소를이용하여항목을정의한다. 단, 출발지 MAC 주소만정의하는 Ethernet ACL 은 Named ACL 로구성할수없다. 블로그 : net123.tistory.com - 6 - 저자김정우

Extended Ethernet ACL 사용할수있는항목번호는 1100~1199 까지이며, 접근하는출발지 MAC 주소뿐만아니라, 목적지 MAC 주 소를정의한다. Extended Ethernet ACL 은 Named ACL 로구성이가능하며, 구성시에 extended 키워드를사 용하면된다. Name ACL 번호대신, TEXT 이름을이용하여 ACL 항목을설정한다. 이는 ACL이많은환경에서 TEXT 이름으로주석표기처럼사용이가능한장점이있으며, Named ACL은부분추가와부분삭제가가능하기때문에유동적인 ACL 환경에서사용하기적합하다. 구성방법은 standard 키워드와 extended 키워드를이용하여 Standard Named ACL과 Extended Named ACL로구성할수있다. 와일드카드마스크 (Wildcard Mask) 와일드카드마스크는 0 과 1 이불연속이가능한 32bit 체계의마스크이다. 이때, 서브넷마스크와구분하기위해서 0 과 1 을반대로사용하기때문에공통비트를 0 으로처리하고, 비공통비트는 1 로처리한다. 서브넷마스크와차이점은 0 과 1 이불연속이가능하므로긴설정을짧게하거나, 특정서브넷만표기할수있는장점을갖고있다. 즉, 서브넷마스크는공통비트를표기하기위해서맨앞에서부터 1 이연속되어야하는제약이있었지만, 와일드카드마스크는 0 과 1 의불연속이가능하기때문에공통비트와비공통비트를표기하는작업이자유롭다는것이다. 그래서와일드카드마스크는긴설정이요구되거나, 특정서브넷만정의할수있는 ACL, EIGRP, OSPF 설정에사용된다. [ 그림 12-1] 은와일드카드마스크표기방법을나타내고있다. [ 그림 12-1] 와일드카드마스크표기방법 [ 그림 12-1] 을보면와일드카드마스크가 0.0 으로표기된 172.16 은공통비트를의미하고, 와일드카드마 스크가 255.255 로표기된구간은비공통비트를의미한다. 즉, 172.16. 으로시작하는 IP 주소들을의미한다. [ 표 12-1] 은서브넷마스크와와일드카드마스크관계를보여주고있다. 블로그 : net123.tistory.com - 7 - 저자김정우

[ 표 12-1] 서브넷마스크와와일드카드마스크 IP 주소 서브넷마스크 와일드마스크 내용 0.0.0.0 0.0.0.0 255.255.255.255 전체 IP 주소 172.16.1.1 255.255.255.255 0.0.0.0 172.16.1.1 호스트주소 172.16.1.0 255.255.255.0 0.0.0.255 172.16.1 로시작하는 IP 주소 172.16.0.0 255.255.0.0 0.0.255.255 172.16 으로시작하는 IP 주소 172.0.0.0 255.0.0.0 0.255.255.255 172 로시작하는 IP 주소 172.16.1.4 255.255.255.252 0.0.0.3 172.16.1.000001hh 로시작하는 IP 주소 172.16.1.16 255.255.255.240 0.0.0.15 172.16.1.0001hhhh 로시작하는 IP 주소 172.16.1.32 255.255.255.224 0.0.0.31 172.16.1.001hhhhh 로시작하는 IP 주소 172.16.1.48 255.255.248.0 0.0.7.255 172.16.00000hhh.hhhhhhhh 로시작하는 와일드카드마스크를사용하는이유는긴설정을짧게하거나, 특정서브넷만정의하기위한용도로사용된 다. 만약, 192.168.1.0/24 ~ 192.168.16.0/24 서브넷범위중에짝수서브넷만 EIGRP 100 으로설정해야하는 경우를알아보도록한다. [ 예제 12-1] 와일드카드마스크활용 1 서브넷마스크활용 192.168.0000 001 0.0 192.168.0000 010 0.0 192.168.0000 011 0.0 192.168.0000 100 0.0 192.168.0000 101 0.0 192.168.0000 110 0.0 192.168.0000 111 0.0 ----------------------- 255.255.1111 000 1.0 와일드카드마스크활용 192.168.0000 001 0.0 192.168.0000 010 0.0 192.168.0000 011 0.0 192.168.0000 100 0.0 192.168.0000 101 0.0 192.168.0000 110 0.0 192.168.0000 111 0.0 ----------------------- 0. 0.0000 111 0.255 ß 0.0.14.255 1 이불연속하기때문에서브넷마스크로 짝수서브넷만표기할수없다. à network 192.168.0.0 0.0.14.255 0 과 1 이불연속이가능하기때문에짝수 서브넷만표기할수있다. 그럼, 192.168.1.0/24 ~ 192.168.16.0/24 서브넷범위중에홀수서브넷만 OSPF Area 0 으로설정해야하는 경우를알아보도록한다 [ 예제 12-2] 와일드카드마스크활용 2 서브넷마스크활용 와일드카드마스크활용 192.168.0000 000 1.0 192.168.0000 000 1.0 192.168.0000 001 1.0 192.168.0000 001 1.0 192.168.0000 010 1.0 192.168.0000 010 1.0 블로그 : net123.tistory.com - 8 - 저자김정우

192.168.0000 011 1.0 192.168.0000 100 1.0 192.168.0000 101 1.0 192.168.0000 110 1.0 192.168.0000 111 1.0. ----------------------- 255.255.1111 000 1.0 192.168.0000 011 1.0 192.168.0000 100 1.0 192.168.0000 101 1.0 192.168.0000 110 1.0 192.168.0000 111 1.0. ----------------------- 0. 0.0000 111 0.255 ß 0.0.14.255 1 이불연속하기때문에서브넷마스크로 짝수서브넷만표기할수없다. à network 192.168.1.0 0.0.14.255 area 0 0 과 1 이불연속이가능하기때문에짝수 서브넷만표기할수있다. 마지막으로 199.172.1.0/24 ~ 199.172.16.0/24 서브넷범위를이용하여 [ 예제 12-3] 문제를풀어보도록하자. [ 예제 12-3] 와일드카드마스크활용 3 1. 199.172.1.0/24, 199.172.3.0/24 를한줄로설정하여라. 199.172.000000 0 1.0 199.172.000000 1 1.0 ------------------------------------------- 199.172.1.0 0.0.2.255 0. 0.000000 1 0.255 ß 0.0.2.255 2. 199.172.1.0/24~199.172.3.0/24, 199.172.8.0/24~199.172.11.0/24 를한줄로설정하여라. 199.172.0000 0 0 01.0 199.172.0000 0 0 10.0 199.172.0000 0 0 11.0 199.172.0000 1 0 00.0 199.172.0000 1 0 01.0 199.172.0000 1 0 10.0 199.172.0000 1 0 11.0 ------------------------------------------- 199.172.0.0 0.0.11.255 0. 0.0000 1 0 11.255 ß 0.0.11.255 3. 199.172.5.0/24, 199.172.7.0/24, 199.172.10.0/24, 199.172.14.0/24 를두줄로설정하여라. 블로그 : net123.tistory.com - 9 - 저자김정우

199.172.000001 0 1.0 199.172.000001 1 1.0 ------------------------------------------- 199.172.5.0 0.0.2.255 0. 0.000000 1 0.255 ß 0.0.2.255 199.172.00001 0 10.0 199.172.00001 1 10.0 ------------------------------------------- 199.172.10.0 0.0.4.255 0. 0.00000 1 00.0255 ß 0.0.4.255 ACL 설정 ACL 은 Standard ACL 과 Extended ACL 2 가지유형이있으며, 항목이름을번호로설정하는 Numbered ACL 과 TEXT 이름으로설정하는 Named ACL 로설정할수있다. Numbered Standard ACL ACL 항목으로사용할수있는범위는 1~99 까지이며, 출발지서브넷과호스트만정의하는필터항목을설 정한다. [ 그림 12-1] Numbered Standard ACL 처리과정 블로그 : net123.tistory.com - 10 - 저자김정우

Numbered Standard ACL 설정구문은 [ 예제 12-1] 과같다. [ 예제 12-1] Numbered Standard ACL 설정구문 Router(config)#access-list [1-99 ACL number] {permit deny} source [wildcard mask] {log} 1 2 3 4 5 6 1 Numbered ACL 항목을설정할때사용하는명령어이다. 2 Numbered Standard ACL 항목범위를의미한다. 3 permit 을이용하여패켓을허용하며, deny 를이용하여패켓을차단한다. 4 접근하는출발지서브넷또는호스트를정의한다. ( 호스트 : host, 전체 : any) 5 출발지서브넷또는호스트의범위를표기하는와일드카드마스크이다. 6 ACL 항목이일치되어필터링을실시할경우, 라우터에로그메시지를출력하는옵션명령어이다. ACL 설정이완료된다음, 필터링을하기위해서는 [ 예제 12-2] 와같이인터페이스에적용한다. [ 예제 12-2] 인터페이스에서 Numbered Standard ACL 적용 Router(config-if)#ip access-group [1-99 ACL number] {in out} 위와같이인터페이스에 ACL 을적용하면, 인터페이스로송수신되는패켓들에대해서 ACL 항목을검사하여 필터링한다. 만약, VTY 라인을통하여라우터접속에관련된트래픽에대해서필터링을하기위해서는 [ 예제 12-3] 과같이 VTY 라인모드에서 ACL 을적용한다. [ 예제 12-3] VTY 라인에서 Numbered Standard ACL 적용 Router(config)#line vty 0 4 Router(config-line)#access-class [1-99 ACL number] {in out} [ 그림 12-3] 을보고 Numbered Standard ACL 활용방법을알아보도록하자. [ 그림 12-2] Numbered Standard ACL 활용예제 블로그 : net123.tistory.com - 11 - 저자김정우

13.13.10.0/24 사용자들이 172.16.1.1 서버에접근하는것을 R1 에서차단하려면, [ 예제 12-4] 와같다. [ 예제 12-4] R1에서 Numbered Standard ACL 설정및적용 R1(config)#access-list 15 deny 13.13.10.0 0.0.0.255 R1(confjg)#access-list 15 permit any R1(config)#int fa0/1 R1(config-if)#ip access-group 15 out 만약, [ 예제 12-4] 에서 ACL 15 항목을 Fa0/0 인터페이스에인바운드로적용하면, 13.13.10.0/24 사용자들이 172.16.1.1 서버로접근하는것을차단할뿐만아니라, 인터넷으로접근하는것을차단하는문제가발생한다. 이유는 Standard ACL은출발지서브넷과호스트만검사하여필터하기때문이다. 그래서 Standard ACL은인바운드필터링과아웃바운드필터링사용에주의해야한다. 다음은 13.13.10.0/24 사용자들이인터넷을사용하는것을제한하며, 172.16.1.1/24 서버로는접근이가능 한 ACL 설정을알아보도록하자. [ 예제 12-5] R1에서 Numbered Standard ACL 설정및적용 R1(config)#no access-list 15 R1(config)# R1(config)#access-list 30 deny 13.13.10.0 0.0.0.255 R1(confjg)#access-list 30 permit any R1(config)#int s1/0 R1(config-if)#ip access-group 30 out 만약, [ 예제 12-5] 에서 ACL 30 항목을 Fa0/0 인터페이스에인바운드로적용하면, 13.13.10.0/24 사용자들은인터넷접근이불가능하겠지만, 동시에 172.16.1.1/24 서버접근도불가능한문제가발생한다. 마지막으로 172.16.1.1/24 서버는인터넷과연결된외부사용자들에게서비스가되지않도록하며, 오직 13.13.10.0/24 사용자들에게만서비스가가능한 ACL 설정을알아보도록하자. [ 예제 12-6] R1에서 Numbered Standard ACL 설정및적용 R1(config)#no access-list 30 R1(config)# R1(config)#access-list 40 deny 172.16.1.1 0.0.0.0 R1(confjg)#access-list 40 permit any R1(config)#int s1/0 R1(config-if)#ip access-group 40 out 인터넷과연결된외부사용자들이 172.16.1.1/24 서버로데이터요청을보내면, 이에대한응답으로서버는출발지 IP 주소를 172.16.1.1 로하여 R1으로패켓을전송하고, R1은인터넷과연결된 S1/0 인터페이스로패켓을출력한다. 이때, R1 S1/0 인터페이스에 ACL 40 항목이아웃바운드로적용되어있으므로패켓이출력되는것을차단한다. 그렇기때문에 172.16.1.1/24 서버는인터넷쪽사용자들에게서비스를실시하지않으며, 블로그 : net123.tistory.com - 12 - 저자김정우

영리목적으로사용할경우저작권법제30조항에의거법적처벌을받을수있습니다. ACL 40 항목과적용된인터페이스와관계없는 13.13.10.0/24 사용자들은서버로부터서비스를제공받을수있다. Numbered Extended ACL ACL 항목으로사용할수있는범위는 100~199 까지이며, 출발지 / 목적지서브넷과호스트를정의할뿐만아니라, 패켓이사용하는프로토콜과어플리케이션프로토콜포트번호를정의하기때문에네트워크를통하여전송되는다양한트래픽에대해서제어가가능하다. 그리고다양한옵션이제공되므로시간대별 ACL 필터링, TCP Flag 제어, QoS 관련설정에서도사용할수있다. [ 그림 12-4] Numbered Extended ACL 처리과정 [ 표 12-1] 내용을참조하여 Extended ACL 을활용할수있는경우를알아보도록하자. [ 표 12-1] Extended ACL 활용예제프로토콜출발지 IP 주소출발지포트목적지 IP 주소목적지포트 Ex 1. 출발지가 13.13.30.1 인 PC가, FTP 서버 13.13.10.1 로접근하는트래픽정의 tcp 13.13.30.1 all port 13.13.10.1 20, 21 Ex 2. 출발지가 13.13.20.1 인 PC가, 웹-서버 13.13.10.100 로접근하는트래픽정의 tcp 13.13.20.1 all port 13.13.10.100 80 Ex 3. 출발지가 13.13.30.1 인 PC가, 13.13.10.1 로 Ping 되는것을차단하여라. icmp 13.13.30.1 all port 13.13.10.1 all port Ex 4. 출발지가 13.13.30.1 인 PC가, 13.13.10.1 로접근하는트래픽정의 ip 13.13.30.1-13.13.10.1 - Ex 5. RIP 라우팅업데이트정의 블로그 : net123.tistory.com - 13 - 저자김정우

udp any 520 any 520 Ex 6. 웹 - 서버 13.13.10.100 에서 PC 13.13.20.1 로다운로드되는트래픽정의 tcp 13.13.10.100 80 13.13.20.1 all port Numbered Extended ACL 설정구문은 [ 예제 12-15] 과같다. [ 예제 12-15] Numbered Extended ACL 설정구문 Router(config)#access-list [100-199 ACL number] {permit deny} Protocol 1 2 3 4 source [wildcard Mask] eq [Application Protocol Port Number] 5 6 7 destination[wildcard Mask] eq [Application Protocol Port Number] 8 9 10 {log log-input} {time-range} {tos precedence dscp} {TCP Flag} 11 12 13 14 15 {fragments} {established} a b 1 Numbered ACL 항목을설정할때사용하는명령어이다. 2 Numbered Extended ACL 항목범위를의미한다. 3 permit 을이용하여패켓을허용하며, deny 를이용하여패켓을차단한다. 4 패켓이사용하는 TCP, UDP, ICMP, EIGRP, OSPF, IP 프로토콜을정의한다. 이때 IP는전체를의미한다. 5 출발지서브넷또는호스트를와일드카드마스크로정의한다. ( 호스트 : host, 전체 : any) 6 출발지포트번호를정의하기위한키워드이다. ( 포트번호를정의하는옵션 : eq, neq, gt, lt, range) 7 출발지포트번호를정의한다. (Telnet : 23, HTTP : 80, FTP : 20/21, SSH : 22, BGP : 179) 8 목적지서브넷또는호스트를와일드카드마스크로정의한다. ( 호스트 : host, 전체 : any) 9 목적지포트번호를정의하기위한키워드이다. ( 포트번호를정의하는옵션 : eq, neq, gt, lt, range) 10 목적지포트번호를정의한다. (Telnet : 23, HTTP : 80, FTP : 20/21, SSH : 22, BGP : 179) 11 ACL 항목이일치되어필터링을실시할경우, 라우터에로그메시지를출력하는옵션명령어이다. 12 로그메시지를출력할때, ACL 필터가동작한인터페이스정보도같이출력하는옵션명령어이다. 13 정해진시간동안에만 ACL 필터를동작하게하는옵션명령어이다. 14 IP 패켓마킹이실시된트래픽들을정의할때사용하는옵션명령어이다. 15 TCP 플래그 ACK, FIN, PSH, RST, SYN, URG가설정된패켓을정의하는옵션이다. a 분할된 IP 패켓을정의하는옵션이다. b TCP 플래그중에 ACK와 RST가설정된트래픽을정의하는옵션이다. ACL 설정이완료된다음, 필터링을하기위해서는 [ 예제 12-16] 과같이인터페이스에적용한다. [ 예제 12-16] 인터페이스에서 Numbered Extended ACL 적용 Router(config-if)#ip access-group [100-199 ACL number] {in out} 위와같이인터페이스에 ACL 을적용하면, 인터페이스로송수신되는패켓들에대해서 ACL 항목을검사하여 블로그 : net123.tistory.com - 14 - 저자김정우

영리목적으로사용할경우저작권법제30조항에의거법적처벌을받을수있습니다. 필터링한다. 만약, VTY 라인을통하여라우터접속에관련된트래픽에대해서필터링을하기위해서는 [ 예제 12-17] 과같이 VTY 라인모드에서 ACL을적용한다. [ 예제 12-17] VTY 라인에서 Numbered Extended ACL 적용 Router(config)#line vty 0 4 Router(config-line)#access-class [100-199 ACL number] {in out} [ 그림 12-5] 을보고 Numbered Extended ACL 활용방법을알아보도록하자. [ 그림 12-5] Numbered Extended ACL 활용예제 13.13.10.0/24 사용자들이 172.16.1.0/24 서브넷으로접근하는것을차단하려면 [ 예제 12-18] 과같다. [ 예제 12-18] R1에서 ACL 설정및적용 R1(config)#access-list 120 deny ip 13.13.10.0 0.0.0.255 172.16.1.0 0.0.0.255 R1(config)#access-list 120 permit ip any any R1(config)#int fa0/0 R1(config-if)#ip access-group 120 in [ 예제 12-19~22] 를참조하여 Numbered Extended ACL 을활용하는예제를알아보도록한다. [ 예제 12-19] Numbered Extended ACL 활용예제-1 1 출발지가 13.13.10.1 호스트가 FTP 서버 172.16.1.1 로접근하는것을차단하여라. 2 출발지가 13.13.10.0/24 서브넷이 FTP 서버 172.16.1.1 로접근하는것은허용하여라. 3 외부사용자가인터넷을통하여 172.16.1.1 서버로 Telnet 접속하는것을차단하여라. 4 이외나머지트래픽들은접근이가능하도록허용하여라. R1(config)#access-list 130 deny tcp host 13.13.10.1 host 172.16.1.1 eq 20 1 R1(config)#access-list 130 deny tcp host 13.13.10.1 host 172.16.1.1 eq 21 1 R1(config)#access-list 130 permit tcp 13.13.10.0 0.0.0.255 host 172.16.1.1 eq 20 2 R1(config)#access-list 130 permit tcp 13.13.10.0 0.0.0.255 host 172.16.1.1 eq 21 2 R1(config)#access-list 130 deny tcp any host 172.16.1.1 eq 23 3 블로그 : net123.tistory.com - 15 - 저자김정우

영리목적으로사용할경우저작권법제30조항에의거법적처벌을받을수있습니다. R1(config)#access-list 130 permit ip any any 4 R1(config)#int fa0/1 R1(config-if)#ip access-group 130 out [ 예제 12-20] Numbered Extended ACL 활용예제-2 1 출발지가 13.13.10.1~2 호스트가웹-서버 172.16.1.1 로접근하는것을차단하여라. 2 출발지가 13.13.10.0/24 서브넷이웹-서버 172.16.1.1 로접근하는것은허용하여라. 3 외부사용자가인터넷을통하여 172.16.1.1 서버로 ping 하는것을차단하여라. 4 Ping을차단할경우, 라우터에인터페이스정보와함께로그가출력되도록하여라. 5 이외나머지트래픽들은접근이가능하도록허용하여라. R1(config)#access-list 170 deny tcp host 13.13.10.1 host 172.16.1.1 eq 80 1 R1(config)#access-list 170 deny tcp host 13.13.10.2 host 172.16.1.1 eq 80 1 R1(config)#access-list 170 permit tcp 13.13.10.0 0.0.0.255 host 172.16.1.1 eq 80 2 R1(config)#access-list 170 deny icmp any host 172.16.1.1 echo log-input 4 R1(config)#access-list 170 permit ip any any 5 R1(config)#int fa0/1 R1(config-if)#ip access-group 170 out [ 예제 12-21] Numbered Extended ACL 활용예제-3 1 평일오전 9:00부터오후 6:00까지만웹-서버 172.16.1.1 에서 PC 13.13.10.1 로다운로드되는트래픽만차단하여라. 2 이외나머지트래픽들은허용한다. R1(config)#time-range TIME R1(config-time-range)#periodic weekdays 09:00 to 18:00 R1(config-time-range)#exit R1(config)#access 150 deny tcp host 172.16.1.1 eq 80 host 13.13.10.1 time-range TIME 1 R1(config)#access-list 150 permit ip any any 2 R1(config)#int fa0/1 R1(config-if)#ip access-group 150 in [ 예제 12-22] Numbered Extended ACL 활용예제-4 1 IP Precednece가 5인음성패켓을정의하여라.. 2 DSCP가 EF인음성패켓을정의하여라. 3 TCP 플래그가 SYN와 FIN가설정된패켓을정의하여라. 4 TCP 플래그가 ACK와 RST가설정된패켓을정의하여라. 5 분할된 IP 패켓을정의하여라. R1(config)#access-list 190 permit udp any any range 16384 32767 precedence 5 1 R1(config)#access-list 190 permit udp any any range 16384 32767 dscp ef 2 R1(config)#access-list 190 permit tcp any any syn fin 3 R1(config)#access-list 190 permit tcp any any established 4 R1(config)#access-list 190 permit ip any any fragments 5 블로그 : net123.tistory.com - 16 - 저자김정우

제 13 장 Cisco IOS Firewall 블로그 : net123.tistory.com - 17 - 저자김정우

Cisco IOS Firewall 본교재는수업용으로제작된게시물입니다. 사용자시스템과서비스를제공하는서버들이 IP 네트워크망으로연결되어있기때문에사용자들이원하는정보를손쉽게수집할수있으며, 서비스공급측입장에서도효율적인어플리케이션서비스구현이가능하다. 그러나이를역으로이용하는공격자들은 IP 네트워크망에연결된사용자시스템에접근하여해킹을할수있으며, 서비스를실시하는서버에게과다한패켓을전송함으로써서버부하및네트워크부하현상을발생시키는문제가있다. 이를해결하기위한대표적인방법으로는내부네트워크를보호하기위한트래픽필터링과방화벽구축이라는솔루션이있다. 트래픽필터링 트래픽필터링은 ACL 항목을이용하여구성한다. ACL 설정단계는먼저내부네트워크접근을차단하는항목을설정한다음, 내부네트워크로접근이가능한항목을설정한다. 이때주의사항은내부에서외부로데이터요청을실시한다음, 데이터응답을허용하는 ACL 항목을설정해야한다. 왜냐하면내부에서외부로데이터요청은가능하지만, 데이터응답이차단된다면외부서버에서내부사용자들에게서비스가불가능하기때문이다. 그럼 [ 그림 13-1] 를참조하여내부네트워크 150.1.13.0/24 로접근하는트래픽을제어하기위한 ACL을구성하도록하자. [ 그림 13-1] 네트워크토폴로지 [ 예제 13-1] 내부네트워크 150.1.13.0/24 로접근하는트래픽차단설정 1 출발지가 13.13.12.2 에서접근하는텔넷트래픽차단및로그메시지확인 2 출발지가 13.13.12.0/24 에서실시하는 PING 차단 3 대신, 내부네트워크 150.1.13.0/24 에서 13.13.12.0/24 으로는 PING이되어야함 4 나머지트래픽들은접근허용 R1(config)#ip access-list extended In-Filter R1(config-ext-nacl)#deny tcp host 13.13.12.2 150.1.13.0 0.0.0.255 eq telnet log-input 1 R1(config-ext-nacl)#deny icmp 13.13.12.0 0.0.0.255 150.1.13.0 0.0.0.255 echo 23 R1(config-ext-nacl)#permit ip any any 4 R1(config-ext-nacl)# R1(config-ext-nacl)#int s1/0 R1(config-subif)#ip access-group In-Filter in 블로그 : net123.tistory.com - 18 - 저자김정우

설정이완료되었다면, R2 에서 150.1.13.254 로텔넷접속과 PING 이차단되는지확인하도록하자. [ 예제 13-2] R2 에서 150.1.13.254 로텔넷접속및 PING 테스트실시 R2#ping 150.1.13.254 source 13.13.12.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 150.1.13.254, timeout is 2 seconds: Packet sent with a source address of 13.13.12.2 U.U.U Success rate is 0 percent (0/5) R2# R2#telnet 150.1.13.254 /source-interface fa0/1 Trying 150.1.13.254... % Destination unreachable; gateway or host down 정보확인이완료되었다면, R1 에서 ACL 로그메시지와 ACL 정보확인을실시하도록하자. [ 예제 13-3] R1에서확인한 ACL 로그메시지와 ACL 정보확인 R1# *Mar 1 01:09:18.191: %SEC-6-IPACCESSLOGP: list In-Filter denied tcp 13.13.12.2(20355) (Serial1/0 ) -> 150.1.13.254(23), 1 packet R1# R1#show ip access-lists Extended IP access list In-Filter 10 deny tcp host 13.13.12.2 150.1.13.0 0.0.0.255 eq telnet log-input (1 match) 20 deny icmp 13.13.12.0 0.0.0.255 150.1.13.0 0.0.0.255 echo (11 matches) 30 permit ip any any 그럼 R4 에서 13.13.12.2 로 Ping 이가능한지확인하도록하자. [ 예제 13-4] R4 에서 13.13.12.2 로 Ping 테스트실시 R4#ping 13.13.12.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 13.13.12.2, timeout is 2 seconds:!!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 36/42/44 ms 만약, [ 예제 12-1] 설정에서 23 조건을설정할때, echo 를추가하지않았다면, echo-reply 도더불어차단되므로 R4에서 13.13.12.2 로 echo 를전송한다음, 돌아오는 echo-reply 가차단되기때문에 Ping이성공되지않게된다. 블로그 : net123.tistory.com - 19 - 저자김정우

다음내용을알아보기위해서 R1 에서설정한 ACL 을삭제하도록하자. [ 예제 13-5] R1서설정한 ACL 삭제 R1(config)#no ip access-list extended In-Filter R1(config)#int s1/0 R1(config-subif)#no ip access-group In-Filter in established 키워드 TCP는 3-Way 핸드쉐이킹 을실시하여상대방과통신수립을성립한다. 이때, ACL 설정시 established 키워드를사용하면내부로들어오는패켓의 TCP Control Flag 중에 ACK나 RST가설정된경우에만패켓을허용한다. 만약, TCP 세션이외부에서시작되어내부로들어오면, SYN만설정되어있기때문에패켓을허용하지않게된다. 즉, [ 그림 13-2] 와같이내부에서세션을시작하여, 외부로부터들어오는 TCP 세션만허용한다는의미이다. [ 그림 13-2] established 키워드처리과정 그럼내부사용자들이외부네트워크와 TCP 세션을이용한패켓전송이가능하도록구성하며, 반대로외부 네트워크에서내부네트워크로는 TCP 세션을이용한패켓접근이차단되도록구성하자. [ 예제 13-6] R1에서 established 키워드를이용한 ACL 설정 R1(config)#access-list 110 permit tcp any any established R1(config)#access-list 110 permit udp any eq 520 any eq 520 R1(config)#int s1/0 R1(config-subif)#ip access-group 110 in 설정이완료되었다면, 외부에위치한 R2 에서내부 13.13.12.2 로텔넷접속이차단되는지확인하도록하자. [ 예제 13-7] R2에서 150.1.13.254 로텔넷접속실시 R2#telnet 150.1.13.254 /source-interface fa0/1 Trying 150.1.13.254... % Destination unreachable; gateway or host down 블로그 : net123.tistory.com - 20 - 저자김정우

영리목적으로사용할경우저작권법제30조항에의거법적처벌을받을수있습니다. 정보확인결과, R2에서 150.1.13.254 로텔넷접속을실시하면, TCP Control Flag가 SYN 만설정되고 ACK가설정되어있지않기때문에 ACL에의해서패켓이차단된다. 이번에는내부네트워크 R4에서외부네트워크 13.13.12.2 로텔넷접속이가능한지확인하도록하자. [ 예제 13-8] R4 에서 13.13.12.2 로텔넷접속실시 R4#telnet 13.13.12.2 Trying 13.13.12.2... Open User Access Verification Password: R2> R2>exit [Connection to 13.13.12.2 closed by foreign host] R4# 정보확인결과, R4 에서먼저 13.13.12.2 로 TCP 세션을성립하기위한 SYN 를전송하고, 이에대한응답으 로외부로부터 ACK, SYN 가설정된패켓을수신함으로써 ACL establised 키워드때문에텔넷응답패켓이 허용된다. 마지막으로 R1 에서 ACL 처리내용을확인하도록하자. [ 예제 13-9] R1에서확인한 ACL 정보확인 R1#show ip access-lists Extended IP access list 110 10 permit tcp any any established (20 matches) 20 permit udp any eq rip any eq rip (6 matches) 이처럼 establised 키워드는수신한패켓의 TCP Control Flag 중 ACK 또는 RST 가설정된경우에만허용하는동작을실시하기때문에 TCP 환경에서방화벽기능을수행할수있다. 그러나 ACK 필드는 TCP 헤더에만존재하기때문에 TCP가아닌다른서비스들에대한방화벽수행이불가능하며, 외부공격자에의해서 ACK 가설정된공격성패켓을수신하는문제가발생하므로수준높은방화벽솔루션으로는적합하지못하다. 다음내용을알아보기위해서 R1 에서설정한 ACL 을삭제하도록하자. [ 예제 13-10] R1에서설정한 ACL 삭제 R1(config)#no access-list 110 R1(config)#int s1/0 R1(config-subif)#no ip access-group 110 in 블로그 : net123.tistory.com - 21 - 저자김정우

리플렉시브 ACL(Reflexive ACL) 리플렉시브 ACL이란내부에서외부로패켓을전송하는순간, 외부에서내부로되돌아오는응답패켓을허용하는항목이임시적으로자동생성되는것을의미한다. 이동작은 TCP 패켓에대해서만처리하는 established 키워드와비교되는데, 리플렉시브 ACL은항목으로설정된모든패켓에대해서내부에서외부로새로운세션이시작되어, 다시되돌아올수있도록임시적으로항목을생성하여응답세션을허용하고, 반대로외부에서는내부로접근이불가능하도록전체차단을실시하여방화벽기능을수행한다. 예를들어, 내부에서외부로첫번째 ICMP 요청패켓이전송되면, 되돌아오는 ICMP 응답패켓을허용할수있는리플렉시브 ACL 항목이임시적으로생성되어입력인터페이스에인바운드로적용된다. 이때, 임시적으로생성되는리플렉시브 ACL 항목은다음과같은특징을갖고있다. 1 임시항목은무조건 permit 으로생성된다. 2 출발지 IP 주소는외부네트워크, 목적지 IP 주소는내부네트워크로생성된다. 3 TCP/UDP 패켓인경우, 출발지포트번호는외부시스템, 목적지포트번호는내부시스템으로생성된다. 4 ICMP 패켓인경우, 포트번호가없기때문에 ICMP 메시지타입이생성된다. 5 이렇게생성된임시항목은영구적으로동작하는것이아니라, 마지막응답패켓이처리되면임시항목은제거된다. 예를들어 TCP 패켓인경우, FIN 가설정된패켓이검사되면, 5초후에임시항목을제거하고, RST 가설정된패켓이검사되면, 즉각임시항목을제거한다. 또는, 특정기간 ( 타임아웃 ) 동안임시항목으로처리되는패켓이없다면, 자동으로임시항목을제거한다. 6 만약, UDP와같은비연결지향성프로토콜에대해서는상대방과의연결종료정보를확인할수없기때문에특정기간 ( 타임아웃 ) 동안임시항목으로처리되는패켓이없다면, 자동으로임시항목을제거한다. 그럼 [ 그림 13-3] 을참조하여내부네트워크를보호하기위한리플렉시브 ACL 을구성하도록하자. [ 그림 13-3] 네트워크토폴로지 [ 예제 13-11] R1에서리플렉시브 ACL 설정 ( 주의사항 : Named Extended ACL에서만지원됨 ) R1(config)#ip access-list extended OUT_Traffic 1 R1(config-ext-nacl)#permit tcp 150.1.13.0 0.0.0.255 13.13.12.0 0.0.0.255 reflect CISCO 2 R1(config-ext-nacl)#permit udp 150.1.13.0 0.0.0.255 13.13.12.0 0.0.0.255 reflect CISCO R1(config-ext-nacl)#permit icmp 150.1.13.0 0.0.0.255 13.13.12.0 0.0.0.255 reflect CISCO R1(config-ext-nacl)# 3 R1(config-ext-nacl)# 블로그 : net123.tistory.com - 22 - 저자김정우

영리목적으로사용할경우저작권법제30조항에의거법적처벌을받을수있습니다. R1(config-ext-nacl)#ip access-list extended IN_Traffic 4 R1(config-ext-nacl)#permit udp any eq 520 any eq 520 5 R1(config-ext-nacl)#evaluate CISCO 6 R1(config-ext-nacl)# 7 R1(config-ext-nacl)#int s1/0 R1(config-if)#ip access-group OUT_Traffic out 8 R1(config-if)#ip access-group IN_Traffic in 9 1 내부에서외부로전송되는패켓을검사하기위한 Named Extended ACL을생성한다. 2 내부에서외부 13.13.12.0/24 으로패켓전송이허용된항목을생성하고, reflect CISCO 명령어를이용하여리플렉시브 ACL인것을명시한다. 이때, CISCO 는어떠한이름으로설정하여도무관하다. 3 내부에서생성된나머지패켓들이외부로전송되지않게기본 deny any 로처리하도록한다. 4 외부로부터수신되는패켓을검사하기위한 Named Extended ACL을생성한다. 5 라우팅업데이트관련패켓및동적라우팅프로토콜과관련된패켓은수신할수있도록허용한다. 6 evaluate 명령어를이용하여외부에서내부로되돌아오는패켓들을허용하는리플렉시브 ACL 임시항목이인바운드에 permit 으로생성되도록명시한다. 7 외부에서생성된패켓들이내부로전송되지않게기본 deny any 로처리하도록한다. 8 내부에서외부로패켓이전송될때, OUT_Traffic ACL을검사할수있도록아웃바운드로적용한다. 9 외부로부터패켓을수신할때, IN_Traffic ACL을검사할수있도록인바운드로적용한다. 설정이완료되었다면, 패켓전송을하기이전에 R1 에서 ACL 정보확인을실시하도록하자. [ 예제 13-12] R1에서확인한 ACL 정보확인 R1#show ip access-lists Reflexive IP access list CISCO Extended IP access list IN_Traffic 10 permit udp any eq rip any eq rip 20 evaluate CISCO Extended IP access list OUT_Traffic 10 permit tcp 150.1.13.0 0.0.0.255 13.13.12.0 0.0.0.255 reflect CISCO 20 permit udp 150.1.13.0 0.0.0.255 13.13.12.0 0.0.0.255 reflect CISCO 30 permit icmp 150.1.13.0 0.0.0.255 13.13.12.0 0.0.0.255 reflect CISCO 정보확인결과, Reflexive IP access list CISCO 를확인할수있다. 이는리플렉시브 ACL 을의미하며, 현재임 시항목이생성되지않는초기상태이다. 그럼외부에서생성된패켓이내부로접근이차단되는지 R2 에서 150.1.13.254 로텔넷접속과 Ping 테스트를실시하도록하자. [ 예제 13-13] R2에서 150.1.13.254 로텔넷접속및 Ping 테스트 R2#telnet 150.1.13.254 /source-interface fa0/1 Trying 150.1.13.254... % Destination unreachable; gateway or host down 블로그 : net123.tistory.com - 23 - 저자김정우

R2#ping 150.1.13.254 source 13.13.12.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 150.1.13.254, timeout is 2 seconds: Packet sent with a source address of 13.13.12.2... Success rate is 0 percent (0/5) 정보확인결과, R2 에서 150.1.13.254 로텔넷접속과 Ping 이실패된다. 이는외부로부터수신되는패켓을 R1 의 ACL 7 번기본 deny any 에의해서차단되는것이다. 그럼내부 R4 에서외부 13.13.12.2 로텔넷접속 및 Ping 테스트를실시하도록하자 [ 예제 13-14] R4 에서 13.13.12.2 로텔넷접속및 Ping 테스트 R4#telnet 13.13.12.2 Trying 13.13.12.2... Open User Access Verification Password: R2> R2>exit [Connection to 13.13.12.2 closed by foreign host] R4# R4#ping 13.13.12.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 13.13.12.2, timeout is 2 seconds:!!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 48/60/80 ms 정보확인결과, R4 에서 150.1.13.254 로텔넷접속과 Ping 테스트가성공되었다. 이는 R1 에서리플렉시브 ACL 에의해서외부로부터되돌아오는패켓을허용하는임시항목이생성되었기때문이다. R1 에서 ACL 정 보확인을실시하여, 생성된임시항목을확인하도록하자. [ 예제 13-15] R1에서확인한 ACL 정보확인 R1#show ip access-lists Reflexive IP access list CISCO permit icmp host 13.13.12.2 host 150.1.13.254 (19 matches) (time left 298) 1 permit tcp host 13.13.12.2 eq telnet host 150.1.13.254 eq 35643 (85 matches) (time left 2) 2 블로그 : net123.tistory.com - 24 - 저자김정우

영리목적으로사용할경우저작권법제30조항에의거법적처벌을받을수있습니다. Extended IP access list IN_Traffic 10 permit udp any eq rip any eq rip (6 matches) 20 evaluate CISCO Extended IP access list OUT_Traffic 10 permit tcp 150.1.13.0 0.0.0.255 13.13.12.0 0.0.0.255 reflect CISCO (132 matches) 20 permit udp 150.1.13.0 0.0.0.255 13.13.12.0 0.0.0.255 reflect CISCO 30 permit icmp 150.1.13.0 0.0.0.255 13.13.12.0 0.0.0.255 reflect CISCO (11 matches) 1 외부로부터되돌아오는 ICMP 패켓를허용하는임시항목이다. 타임아웃이 300초이므로 300초동안패켓전송이없다면, 임시항목을제거한다. 2 외부로부터되돌아오는 TCP 패켓을허용하는임시항목이다. 현재텔넷접속을해지했기때문에기본 5 초이후에임시항목을제거한다. 1번항목이삭제될때쯤, R1에서 ACL 정보확인을실시하면, [ 예제 13-16] 과같이리플렉시브 ACL 임시항목이제거된것을확인할수있다. [ 예제 13-16] R1에서확인한 ACL 정보확인 R1#show ip access-lists Reflexive IP access list CISCO Extended IP access list IN_Traffic 10 permit udp any eq rip any eq rip (26 matches) 20 evaluate CISCO Extended IP access list OUT_Traffic 10 permit tcp 150.1.13.0 0.0.0.255 13.13.12.0 0.0.0.255 reflect CISCO (132 matches) 20 permit udp 150.1.13.0 0.0.0.255 13.13.12.0 0.0.0.255 reflect CISCO 30 permit icmp 150.1.13.0 0.0.0.255 13.13.12.0 0.0.0.255 reflect CISCO (11 matches) 이처럼리플렉시브 ACL은내부에서생성되어외부로나가는패켓이다시되돌아올수있도록응답패켓을허용하는임시항목이생성되어인바운드에적용됨으로써내부사용자는외부로부터서비스를제공받을수있으며, 반대로외부에서생성된패켓은인바운드로차단되기때문에방화벽과같은기능을수행할수있게된다. 대신, 데이터요청과데이터응답에사용하는포트번호가서로다른어플리케이션서비스들은인바운드에서허용하는포트번호가다르기때문에응답패켓이차단되는문제가발생할것이다. 이런경우에는리플렉시브 ACL을이용한방화벽구성보다는 CBAC을이용한방화벽구성을실시해야한다. 다음내용을알아보기위해서 R1 에서설정한 ACL 을삭제하도록하자. [ 예제 13-17] R1에서설정한 ACL 삭제 R1(config)#no ip access-list extended OUT_Traffic R1(config)#no ip access-list extended IN_Traffic R1(config)#int s1/0 R1(config-if)#no ip access-group OUT_Traffic out R1(config-if)#no ip access-group IN_Traffic in 블로그 : net123.tistory.com - 25 - 저자김정우

CBAC(Context-Based Access Control) CBAC 은리플렉시브 ACL 과마찬가지로내부에서외부로나가는세션을검사하여, 그세션에대한응답패켓 을수신하기위한임시항목을생성함으로써되돌아오는응답패켓을허용한다. 단, 리플렉시브 ACL 과다 른점과주요기능은다음과같다. 1 FTP, H.323 프로토콜과같이여러개의포트번호를사용하는어플리케이션서비스에대해서도방화벽기능을수행한다. 한예로 FTP 서비스에서제어신호를검사하여데이터접속에대한사항을상태테이블에등록하여허용한다. 2 Layer 4 계층정보이외에어플리케이션계층정보까지검사를실시한다. 3 자바 (JAVA) 애플릿을검사하여트래픽필터링을구현할수있다. 4 TCP SYN 패켓을검사하여 TCP SYN 플러딩공격을차단할수있으며, TCP 패켓의순서번호가특정범위이내에있는지를검사하여공격으로판단되는패켓을차단할수있다. 5 되돌아오는응답패켓을허용하기위해서 ACL 항목을추가설정할필요가없다. 왜냐하면 CBAC을통하여외부로전송된패켓은상태테이블에정보가등록되어있기때문에응답패켓을자동으로허용한다. 6 CBAC은외부로패켓전송이실시되면, 되돌아오는응답패켓을허용하기위해서상태정보를모니터링하기때문에상태감시방법을사용한다. 7 특정패켓을검사하여침입탐지기능을수행할수있으며, 경우에따라서경고및감사메시지를생성하여메시지를출력한다. 방화벽을수행하기위해서 CBAC 은다음과같은처리과정을실시한다. 1 외부로전송될패켓이라우터로입력되거나, 출력될때, CBAC 항목을검사한다. 만약, 항목에서허용하는패켓이면, 패켓의상세정보 ( 출발지 / 목적지 IP 주소와포트번호 ) 를상태테이블에등록한다. 반대로항목에서허용하지않는패켓이면, 해당패켓을드랍하고, 더이상검사를실시하지않는다. 2 상태테이블에등록된패켓의상세정보를임시접근항목으로생성하여, 인바운드필터링이가능하도록설정되어있는 ACL 항목에가장맨앞에위치한다. 이때, 임시접근항목은검사한아웃바운드패켓과같은연결에속한인바운드패켓을허용하도록하며, 패켓을아웃바운드인터페이스로출력한다. 3 응답패켓이되돌아오면, 인바운드접근항목에검사를받게되는데, CBAC으로생성된임시접근항목이있이므로패켓을허용한다. 4 그다음부터전송되는모든인바운드패켓과아웃바운드패켓은임시접근항목에검사를받게되며, 상태테이블에등록된정보가필요한경우계속수정된다. 5 연결이종료되면상태테이블에등록된정보와임시접근항목은삭제된다. CBAC을단독적으로사용하면, 모든트래픽이허용되므로 ACL과같이사용되어야한다. 즉, CBAC에해당되는트래픽은 CBAC이허용하지만, 나머지는일반트래픽으로처리되어허용되기때문에 ACL을같이설정해야한다. 그래야지만 CBAC에해당되는트래픽은 CBAC이허용하고, 나머지일반트래픽은 ACL 항목에의해차단될수있다. 블로그 : net123.tistory.com - 26 - 저자김정우

그럼 [ 그림 13-4] 를참조하여내부네트워크를보호하기위한 CBAC 구성을실시하도록하자. [ 그림 13-4] 네트워크토폴로지 [ 예제 13-18] R1에서 CBAC 설정 R1(config)#ip inspect audit-trail 1 R1(config)# R1(config)#ip inspect name CISCO tcp 2 R1(config)#ip inspect name CISCO udp 3 R1(config)#ip inspect name CISCO icmp 4 R1(config)#ip inspect name CISCO http java-list 10 timeout 300 5 R1(config)# R1(config)#access-list 10 permit 13.13.12.100 0.0.0.0 6 R1(config)# R1(config)#ip access-list extended IN_Traffic 7 R1(config-ext-nacl)#permit udp any eq 520 any eq 520 8 R1(config-ext-nacl)# R1(config-ext-nacl)#int s1/0 R1(config-if)#ip inspect CISCO out 9 R1(config-if)#ip access-group IN_Traffic in 10 1 CBAC을통하여검사된패켓의상세정보내용과트래픽전송양을메시지로출력해준다. 2 내부에서외부로전송되는 TCP 패켓을 CBAC을통하여검사하여임시항목을생성하는설정이다. 3 내부에서외부로전송되는 UDP 패켓을 CBAC을통하여검사하여임시항목을생성하는설정이다. 4 내부에서외부로전송되는 ICMP 패켓을 CBAC을통하여검사하여임시항목을생성하는설정이다. 5 내부에서외부로전송되는자바애플릿를 CBAC을통하여검사하여임시항목을생성하는설정이다. 6 자바애플릿을제공하는웹-서버의 IP 주소를 ACL로설정한다. 7 외부에서내부로들어오는패켓들을차단하기위한확장 ACL를설정한다. 8 기본적으로라우터로입력되어야하는라우팅프로토콜관련패켓만허용한다. 9 CBAC을아웃바운드로적용하여내부에서외부로패켓이출력될때, 임시항목이생성되도록한다. 10 확장 ACL을인바운드로적용하여외부에서내부로들어오는패켓들을차단하도록한다. 블로그 : net123.tistory.com - 27 - 저자김정우

설정이완료되었다면, 패켓전송을하기이전에 R1 에서 CBAC 정보확인을실시하도록하자. [ 예제 13-19] R1 에서확인한 CBAC 정보확인 R1#show ip inspect sessions 1 R1# R1#show ip inspect interfaces Interface Configuration Interface Serial1/0 Inbound inspection rule is not set Outgoing inspection rule is CISCO 2 tcp alert is on audit-trail is on timeout 3600 3 udp alert is on audit-trail is on timeout 30 4 icmp alert is on audit-trail is on timeout 10 5 http java-list 10 alert is on audit-trail is on timeout 300 6 Inbound access list is IN_Traffic 7 Outgoing access list is not set 1 내부에서외부로패켓전송을하지않았기때문에, 상태정보가생성되지않는다. 2 Serial 1/0 인터페이스아웃바운드로 CBAC이적용되어있다. 3 TCP는상태정보가제거되는기본타임아웃이 3600초이다. 만약, FIN이설정된패켓이검사되면, 5초이후에상태테이블에서상태정보를제거한다. 4 UDP는기본타임아웃이 30초이므로 30초이내에응답패켓이되돌아오지않으면, 상태테이블에서상태정보를제거한다. 5 ICMP는기본타임아웃이 10초이므로 10초이내에응답패켓이되돌아오지않으면, 상태테이블에서상태정보를제거한다. 6 자바애플릿은 timeout 명령어를이용하여타임아웃을 300초로변경했기때문에, 300초이내에응답패켓이되돌아오지않으면, 상태테이블에서상태정보를제거한다. 7 Serial 1/0 인터페이스에인바운드로확장 ACL이적용되어있다. 정보확인이완료되었다면, 외부 R2 에서내부 150.1.13.254 로 Ping 과텔넷접속이차단되는지확인하도록 하자. [ 예제 13-20] R2 에서 150.1.13.254 로 Ping 테스트와텔넷접속 R2#ping 150.1.13.254 source 13.13.12.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 150.1.13.254, timeout is 2 seconds: Packet sent with a source address of 13.13.12.2 U.U.U Success rate is 0 percent (0/5) 블로그 : net123.tistory.com - 28 - 저자김정우

영리목적으로사용할경우저작권법제30조항에의거법적처벌을받을수있습니다. R2#telnet 150.1.13.254 /source-interface fa0/1 Trying 150.1.13.254... % Destination unreachable; gateway or host down 정보확인결과, 외부에서는내부로패켓전송이차단되는것을알수있다. 그럼내부에서외부 13.13.12.2 로 Ping 과텔넷접속이이가능한지확인하도록하자. [ 예제 13-21] R4 에서 13.13.12.2 로 Ping 테스트와텔넷접속 R4#ping 13.13.12.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 13.13.12.2, timeout is 2 seconds:!!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 32/36/52 ms R4# R4#telnet 13.13.12.2 Trying 13.13.12.2... Open User Access Verification Password: R2> 정보확인결과, R4 에서는외부 13.13.12.2 로 Ping 과텔넷접속이가능하다. 그럼 R1 에서 CBAC 정보확인 을실시하도록하자. [ 예제 13-22] R1에서실시한 CBAC 정보확인 R1# *Mar 1 00:25:20.007: %FW-6-SESS_AUDIT_TRAIL_START: Start icmp session: initiator (150.1.13.254:8) -- responder (13.13.12.2:0) 1 *Mar 1 00:25:20.735: %FW-6-SESS_AUDIT_TRAIL_START: Start tcp session: initiator (150.1.13.254:18304) -- responder (13.13.12.2:23) 2 R1# R1#show ip inspect sessions Established Sessions Session 67089868 (150.1.13.254:18304)=>(13.13.12.2:23) tcp SIS_OPEN 3 Session 67089B28 (150.1.13.254:8)=>(13.13.12.2:0) icmp SIS_OPEN 4 R1# *Mar 1 00:25:30.695: %FW-6-SESS_AUDIT_TRAIL: Stop icmp session: initiator (150.1.13.254:8) sent 360 bytes -- responder (13.13.12.2:0) sent 360 bytes 5 블로그 : net123.tistory.com - 29 - 저자김정우

정보확인이완료되었다면, R4 에서 R2 로접속한텔넷을종료하도록하자. [ 예제 13-23] R4 에서 13.13.12.2 로접속한텔넷연결종료 R2>exit [Connection to 13.13.12.2 closed by foreign host] R4# R1 에서 CBAC 정보확인을다시확인하도록하자. [ 예제 13-24] R1에서실시한 CBAC 정보확인 R1# *Mar 1 00:26:09.131: %FW-6-SESS_AUDIT_TRAIL: Stop tcp session: initiator (150.1.13.254:18304) sent 46 bytes -- responder (13.13.12.2:23) sent 101 bytes 6 R1# R1#show ip inspect sessions 7 R1# 1 내부에서외부로 ICMP 패켓이전송되므로 CBAC에의해서검사되어상태정보를메시지로출력한다. 2 내부에서외부로 TCP( 텔넷 ) 패켓이전송되므로 CBAC에의해서검사되어상태정보를메시지로출력한다. 3 CBAC 상태테이블에등록된 TCP 패켓에대한임시접근항목내용이다. 4 CBAC 상태테이블에등록된 ICMP 패켓에대한임시접근항목내용이다 5 ICMP는기본타임아웃이 10초이므로 10초이내에응답패켓이되돌아오지않으면, 상태테이블에서상태정보를제거한다. 6 R4에서 R2에접속된텔넷을해지하면, FIN가검사되므로 5초이후에상태테이블에서상태정보를제거한다. 7 타임아웃안에응답패켓을수신하지못하면상태테이블에등록된상태정보는제거된다. 그렇기때문에기존에등록되어있던 TCP, ICMP 상태정보는더이상확인되지않는다. 이처럼 CBAC을이용하면리플렉시브 ACL보다간편한방법으로방화벽수행이가능하며, Layer 4 계층정보이외에다양한어플리케이션계층도검사하며, 다양한필터링을이용한 DoS 공격방지와침입탐지가가능하기때문에방화벽구성으로는가장뛰어난보안솔루션이다. 그러나다음과같은사항에대해서는 CBAC 을이용한방화벽구성에제한갖는다. 1 지정된패켓만검사하며, 라우터가생성한패켓과목적지가로컬인패켓에대해서는적용되지않는다. 2 IPSec으로암호화된패켓은검사되지않는다. 단, VPN 접속이해당라우터에서종료되면, VPN 터널에입출력되는패켓들은검사가가능하다. 3 FTP 같은경우, 패시브모드와 2-Way 전송모드만지원하며, 3-Way 전송모드는지원하지않는다. 4 모든어플리케이션계층에대한검사가지원되는게아니기때문에특정어플리케이션에대해서는 CBAC 사용이불가능하다. 블로그 : net123.tistory.com - 30 - 저자김정우

다음내용을알아보기위해서 R1 에서설정한 CBAC 관련설정을삭제하도록하자. [ 예제 13-25] R1에서설정한 CBAC 관련설정삭제 R1(config)#no ip inspect audit-trail R1(config)#no ip inspect name CISCO R1(config)#no access-list 10 R1(config)#no ip access-list extended IN_Traffic R1(config)#int s1/0 R1(config-if)#no ip access-group IN_Traffic in R1(config-if)#no ip inspect CISCO out Dynamic ACL(Lock and Key) 다이내믹 ACL이란인증된외부네트워크로부터전송되는패켓을허용하기위해서라우터에자동으로 ACL 항목을추가하는기능을의미한다. 이때, 인증여부는텔넷접속을이용하여실시하며, 텔넷접속이허용된출발지네트워크만 ACL 항목이추가되어, 외부에서내부네트워크로패켓전송이가능하도록한다. 또한, 자동으로생성된 ACL 항목은일정시간이경과되면, 자동으로삭제되어외부에서내부로더이상패켓전송이가능하지않도록차단한다. 이러한솔루션을다른말로 Lock and Key 라고하며, 동작방식은다음과같다. 1 외부네트워크에위치한사용자가 Lock and Key 가설정된라우터로텔넷접속을실시한다. 2 라우터로텔넷접속이들어오면, 사용자인증을실시한다. 이때, 사용자인증은라우터이외에 RADIUS 서버, 또는 TACACS+ 서버를이용하여할수있다. 3 사용자인증이허용되면, 텔넷접속은자동으로해지되며, 텔넷접속을실시한사용자네트워크가내부네트워크로접근이가능하도록 ACL 항목을자동으로생성한다. 4 외부에위치한사용자는생성된 ACL 항목에검사되어, 내부네트워크로패켓전송이가능해진다. 5 생성된 ACL 항목은일정시간이경과되면삭제되어더이상내부네트워크로패켓전송이가능하지않도록차단한다. 그럼 [ 그림 13-5] 를참조하여외부에서내부네트워크로패켓전송허가를하기위한 Lock and Key 를구성 하도록하자. [ 그림 13-5] 네트워크토폴로지 블로그 : net123.tistory.com - 31 - 저자김정우

영리목적으로사용할경우저작권법제30조항에의거법적처벌을받을수있습니다. [ 예제 13-26] R1에서 Lock and Key 설정 R1(config)#username admin password cisco 1 R1(config)#username admin autocommand access-enable host timeout 10 2 R1(config)# R1(config)#line vty 0 4 R1(config-line)#login local 3 R1(config-line)# R1(config-line)#ip access-list extended IN_Traffic 4 R1(config-ext-nacl)#permit tcp any host 13.13.9.1 eq telnet 5 R1(config-ext-nacl)#dynamic Lock&Key permit ip any 150.1.13.0 0.0.0.255 6 R1(config-ext-nacl)#deny ip any 150.1.13.0 0.0.0.255 7 R1(config-ext-nacl)#permit udp any eq 520 any eq 520 8 R1(config-ext-nacl)# R1(config-ext-nacl)#int s1/0 R1(config-if)#ip access-group IN_Traffic in 9 1 R1에서사용자인증을하기위한사용자정보 (username, password) 를생성한다. 2 admin 사용자인증이허용되면, autocommand access-enable 에의해서 Lock and Key 에의한텔넷접속이종료되며, host 키워드를이용하여텔넷접속에사용한출발지 IP 주소가나중에자동으로생성되는 ACL의출발지정보로사용할수있도록한다. 또한, timeout 명령어를이용하여일정기간이지나면, ACL 항목이제거되도록한다. 3 R1에서 VTY 라인으로텔넷접속이들어오면, 사용자정보 (username, password) 를검증하게한다. 4 Lock and Key 를구성하기위한확장 ACL를설정한다. 5 외부네트워크에위치한사용자가사용자인증을받기위해서 R1으로텔넷접속이가능하도록설정한다. 6 dynamic 키워드를이용하여사용자인증이허용된출발지정보에대해서자동으로동적 ACL 항목이생성되도록한다. 7 동적 ACL이생성되기전까지는외부에서내부 150.1.13.0/24' 로전송되는모든패켓을차단하도록한다. 8 기본적으로라우터로입력되어야하는라우팅프로토콜관련패켓만허용한다. 9 Lock and Key 가동작하도록확장 ACL을 Serial 1/0 인터페이스에인바운드로적용한다. 설정이완료되었다면, 사용자인증을하기이전에 R2 에서내부 150.1.13.254 로 Ping 이차단되는지확인하도 록하자. [ 예제 13-27] R2 에서 150.1.13.254 로 Ping 테스트 R2#ping 150.1.13.254 source 13.13.12.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 150.1.13.254, timeout is 2 seconds: Packet sent with a source address of 13.13.12.2 U.U.U Success rate is 0 percent (0/5) 블로그 : net123.tistory.com - 32 - 저자김정우

영리목적으로사용할경우저작권법제30조항에의거법적처벌을받을수있습니다. Ping 테스트결과, 외부에서는내부네트워크로패켓전송이차단되는것을알수있다. 또한, [ 예제 13-28] 과같이 ACL 정보확인을실시하면, 순서번호 30번항목에의해서패켓 11개가차단된것을확인할수있다. [ 예제 13-28] R1에서확인한 ACL 정보확인 R1#show ip access-lists Extended IP access list IN_Traffic 10 permit tcp any host 13.13.9.1 eq telnet 20 Dynamic Lock&Key permit ip any 150.1.13.0 0.0.0.255 30 deny ip any 150.1.13.0 0.0.0.255 (11 matches) 40 permit udp any eq rip any eq rip 그럼 R2 에서 R1 으로텔넷접속을실시하도록하자. [ 예제 13-29] R2 에서 13.13.9.1 텔넷접속 R2#telnet 13.13.9.1 /source-interface fa0/1 Trying 13.13.9.1... Open User Access Verification Username: admin Password: [Connection to 13.13.9.1 closed by foreign host] R2# R2 에서 R1 으로텔넷접속이후, 사용자인증이허용되면, 자동으로텔넷접속이해지된다. 그럼 R1 에서 ACL 정보확인을실시하도록하자. [ 예제 13-30] R1에서확인한 ACL 정보확인 R1#show ip access-lists Extended IP access list IN_Traffic 10 permit tcp any host 13.13.9.1 eq telnet (75 matches) 20 Dynamic Lock&Key permit ip any 150.1.13.0 0.0.0.255 permit ip host 13.13.12.2 150.1.13.0 0.0.0.255 30 deny ip any 150.1.13.0 0.0.0.255 (11 matches) 40 permit udp any eq rip any eq rip (2 matches) 정보확인결과, 출발지가 13.13.12.2 인패켓이내부 150.1.13.0/24 로접근가능한동적 ACL 이생성된것을 알수있다. 그럼 R2 에서내부 150.1.13.254 로 Ping 이가능한지확인하도록하자. 블로그 : net123.tistory.com - 33 - 저자김정우

영리목적으로사용할경우저작권법제30조항에의거법적처벌을받을수있습니다. [ 예제 13-31] R2에서 150.1.13.254 로 Ping 테스트 R2#ping 150.1.13.254 source 13.13.12.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 150.1.13.254, timeout is 2 seconds: Packet sent with a source address of 13.13.12.2!!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 36/64/80 ms Ping 테스트결과, 성공이다. 이는 Lock And Key 에의해서생성된 permit ip host 13.13.12.2 150.1.13.0 0.0.0.255 항목때문에 R2 에서내부 150.1.13.254 로 Ping 이가능한것이다. 그럼 R1 에서 ACL 정보확인을 실시하도록하자. [ 예제 13-32] R1에서확인한 ACL 정보확인 R1#show ip access-lists Extended IP access list IN_Traffic 10 permit tcp any host 13.13.9.1 eq telnet (75 matches) 20 Dynamic Lock&Key permit ip any 150.1.13.0 0.0.0.255 permit ip host 13.13.12.2 150.1.13.0 0.0.0.255 (5 matches) (time left 596) 30 deny ip any 150.1.13.0 0.0.0.255 (11 matches) 40 permit udp any eq rip any eq rip (3 matches) 정보확인결과, permit ip host 13.13.12.2 150.1.13.0 0.0.0.255 항목뒤에 time left 596 정보가추가되어있 다. 이는 Lock And Key 에의해서생성된 ACL 항목이일정기간사용하지않으면자동으로제거되는타임 아웃시간을의미한다. 이처럼 Dynamic ACL 을이용한 Lock and Key 를구성하면, 평상시에는외부네트워크에서내부접근이불가 능하지만, 특정라우터에의해텔넷접속및사용자인증이허용되면, 내부네트워크로접근이가능하기때 문에방화벽기능을수행하면서, 외부에위치한관리자가내부네트워크로접근이가능하게할수있다. 다음내용을알아보기위해서 R1 에서설정한 Dynamic ACL 관련설정을삭제하도록하자. [ 예제 13-33] R1에서설정한 Dynamic ACL 관련설정삭제 R1(config)#no username admin password cisco R1(config)#no username admin autocommand access-enable host timeout 10 R1(config)# R1(config)#line vty 0 4 R1(config-line)#login R1(config-line)#int s1/0 R1(config-if)#no ip access-group IN_Traffic in 블로그 : net123.tistory.com - 34 - 저자김정우

IP Fragments 공격방지 IP 프로토콜은 MTU 크기가초과된패켓에대해서분할 (Fragments) 을실시하여전송처리한다. 이때, MTU 기본크기는 1500Byte이며, 만약 4000Byte 데이터를처리한다면, 1500Byte, 1500Byte, 1000Byte로분할하여패켓을전송한다. 그런다음수신측에서는분할된패켓들에대해서재조립과정을실시한다. [ 그림 13-6] 은 4000Byte 데이터를분할하여전송되는마지막번째패켓을캡처한것이다. [ 그림 13-6] IP 분할내용 이처럼 IP Fragments 기능은 MTU 크기가초과된패켓의크기를기준크기에맞게분할하여전송함으로써패켓전송처리율을극대화하는데목적을두고있다. 그러나외부공격자들은 IP Fragments 기능을역으로이용하여 IP 헤더를조작한다음, 분할된패켓을특정서버에게무한으로전송함으로써다른서비스와연결를거부하거나, 네트워크연결문제및서버다운이라는문제를발생시킨다. 이러한공격을 IP Fragments 공격이라고한다. 이공격을방지하기위해서는라우터에서분할된패켓을필터링하면손쉽게해결할수있다. 그럼 [ 그림 13-7] 를참조하여외부로부터전송되는분할된패켓을라우터에서차단하여, IP Fragments 공격 을방지하도록하자. [ 그림 13-7] 네트워크토폴로지 블로그 : net123.tistory.com - 35 - 저자김정우

영리목적으로사용할경우저작권법제30조항에의거법적처벌을받을수있습니다. ACL을이용하여 IP Fragments 공격을방지하기이전에, R2에서내부 150.1.13.254 로 4000Byte 패켓 1개를전송하도록하자. [ 예제 13-34] R2에서 150.1.13.254 로 Ping 테스트 R2(config)#no service timestamps debug R2(config)#access-list 110 permit icmp any any R2(config)#^Z R2# R2#debug ip packet 110 IP packet debugging is on for access list 110 R2# R2#ping 150.1.13.254 source 13.13.12.2 size 4000 repeat 1 Type escape sequence to abort. Sending 1, 4000-byte ICMP Echos to 150.1.13.254, timeout is 2 seconds: Packet sent with a source address of 13.13.12.2! Success rate is 100 percent (1/1), round-trip min/avg/max = 40/40/40 ms R2# IP: tableid=0, s=13.13.12.2 (local), d=150.1.13.254 (Serial1/0.123), routed via FIB IP: s=13.13.12.2 (local), d=150.1.13.254 (Serial1/0.123), len 4000, sending IP: s=13.13.12.2 (local), d=150.1.13.254 (Serial1/0.123), len 1500, sending fragment IP: s=13.13.12.2 (local), d=150.1.13.254 (Serial1/0.123), len 1500, sending fragment IP: s=13.13.12.2 (local), d=150.1.13.254 (Serial1/0.123), len 1040, sending last fragment IP: tableid=0, s=150.1.13.254 (Serial1/0.123), d=13.13.12.2 (FastEthernet0/1), routed via RIB IP: s=150.1.13.254 (Serial1/0.123), d=13.13.12.2, len 1500, rcvd 4 IP: recv fragment from 150.1.13.254 offset 0 bytes R2# IP: tableid=0, s=150.1.13.254 (Serial1/0.123), d=13.13.12.2 (FastEthernet0/1), routed via RIB IP: s=150.1.13.254 (Serial1/0.123), d=13.13.12.2, len 1500, rcvd 4 IP: recv fragment from 150.1.13.254 offset 1480 bytes IP: tableid=0, s=150.1.13.254 (Serial1/0.123), d=13.13.12.2 (FastEthernet0/1), routed via RIB IP: s=150.1.13.254 (Serial1/0.123), d=13.13.12.2, len 1040, rcvd 4 IP: recv fragment from 150.1.13.254 offset 2960 bytes R2# R2#undebug all All possible debugging has been turned off Ping 테스트결과, R2 에서내부 150.1.13.254 로 4000Byte 패켓을분할하여전송처리하는것을알수있다. 그럼 R1 에서분할된패켓을차단하여, IP Fragments 공격을방지하도록하자. 블로그 : net123.tistory.com - 36 - 저자김정우

영리목적으로사용할경우저작권법제30조항에의거법적처벌을받을수있습니다. [ 예제 13-35] R1에서 IP Fragments 공격차단설정 R1(config)#ip access-list extended Deny_Fragments 1 R1(config-ext-nacl)#deny ip any 150.1.13.0 0.0.0.255 fragments 2 R1(config-ext-nacl)#permit ip any any 3 R1(config-ext-nacl)# R1(config-ext-nacl)#int s1/0 R1(config-if)#ip access-group Deny_Fragments in 4 1 IP Fragments 공격을방지하기위한확장 ACL를설정한다. 2 공격자의출발지는랜덤하거나, 또는변조된다른 IP 주소로접근하기때문에 any 로설정하고, 목적지는내부네트워크로설정한다. 그리고 fragments 키워드를이용하여분할된패켓을차단하도록한다. 3 기본적으로라우터로입력되어야하는라우팅프로토콜관련패켓과나머지트래픽을허용하도록한다. 4 IP Fragments 공격을방지하기위해서확장 ACL을 Serial 1/0 인터페이스에인바운드로적용한다. 설정이완료되었다면, R2 에서내부 150.1.13.254 로 4000Byte 패켓이차단되는지확인하도록하자. [ 예제 13-36] R2 에서 150.1.13.254 로 Ping 테스트 R2#ping 150.1.13.254 source 13.13.12.2 size 4000 repeat 1 Type escape sequence to abort. Sending 1, 4000-byte ICMP Echos to 150.1.13.254, timeout is 2 seconds: Packet sent with a source address of 13.13.12.2. Success rate is 0 percent (0/1) Ping 테스트결과, R2 에서전송한 4000Byte 패켓이차단되는것을알수있다. 그럼 R1 에서 ACL 정보확인 을실시하도록하자. [ 예제 13-37] R2에서 150.1.13.254 로 Ping 테스트 R1#show ip access-lists Extended IP access list Deny_Fragments 10 deny ip any 150.1.13.0 0.0.0.255 fragments (4 matches) 20 permit ip any any (2 matches) 정보확인결과, deny ip any 150.1.13.0 0.0.0.255 fragments 항목이 4 번매치된것을알수있다. 이는분할 된 IP 패켓 4 개를차단했다는의미이다. 이처럼확장 ACL 만이용해도손쉽게 IP Fragments 공격을방어할수있으며, 앞전에알아보았던리플렉시 브 ACL, CBAC 과같이사용해도무관하다. 블로그 : net123.tistory.com - 37 - 저자김정우

다음내용을알아보기위해서 R1 에서설정한 Dynamic ACL 관련설정을삭제하도록하자. [ 예제 13-38] R1에서설정한 IP Fragments 공격차단설정삭제 R1(config)#no ip access-list extended Deny_Fragments R1(config)#int s1/0 R1(config-if)#no ip access-group Deny_Fragments in ICMP 플러딩공격방지 ICMP란 IP 네트워크환경에서패켓전송처리가가능한지를점검할수있는메시지교환방식프로토콜이다. 동작방식은먼저로컬장비에서리모트장비로 ICMP Echo 요청메세지를전송한다. 이를수신한리모트장비는로컬장비에게 ICMP Reply 응답메시지를전송함으로써패켓전송여부를판단하게된다. 그러나외부공격자는이를역으로이용하여리모트장비에게 ICMP Echo 요청메시지를무한으로전송함으로써서비스거부와서버다운및네트워크연결문제를발생시킨다. 이를해결하기위한방법으로는앞전에알아보았던트래픽필터링을구성하여, ICMP Echo 요청메시지를차단하거나, QoS에서사용하는폴리싱기법을이용하여 ICMP 용량을제한하는것이다. 그럼 [ 그림 13-8] 를참조하여외부공격자에의해서실시되는 ICMP 플러딩공격을방지하도록하자. [ 그림 13-8] 네트워크토폴로지 [ 예제 13-39] R1에서 ICMP 플러딩공격차단설정 R1(config)#access-list 110 permit icmp any any echo R1(config)#access-list 110 permit icmp any any echo-reply 1 R1(config)# R1(config)#int s1/0 R1(config-if)#rate-limit input access-group 110 128000 8000 8000 conform-action transmit exceed-action drop 2 1 확장 ACL을이용하여 ICMP 메시지를정의한다. 2 CAR 설정을이용하여입력시처리할수있는 ICMP 패켓한도양을정의한다. 만약, 한도가넘지않는 ICMP 패켓들에대해서는전송처리 (conform-action transmit) 를실시하며, 한도가초과된 ICMP 패켓에대해서는드랍 (exceed-action drop) 을실시하도록한다. 블로그 : net123.tistory.com - 38 - 저자김정우

설정이완료되었다면, R2 에서 [ 예제 13-40] 과같이내부 150.1.13.254 로 8000Byte 패켓을전송하도록하자. [ 예제 13-40] R2 에서 150.1.13.254 로 Ping 테스트 R2#ping 150.1.13.254 source 13.13.12.2 size 8000 repeat 10 Type escape sequence to abort. Sending 10, 8000-byte ICMP Echos to 150.1.13.254, timeout is 2 seconds: Packet sent with a source address of 13.13.12.2.!.!!.!.!. Success rate is 50 percent (5/10), round-trip min/avg/max = 168/180/200 ms Ping 테스트결과, 패켓전송이중간, 중간에실패되는것을알수있다. 그럼 R1 에서 [ 예제 13-41] 과같이 CAR 정보을실시하여폴리싱된패켓내용을확인하도록하자. [ 예제 13-41] R1에서확인한 ACL 정보확인및 CAR 정보확인 R1#show interfaces s1/0 rate-limit Serial1/0 Input matches: access-group 110 params: 128000 bps, 8000 limit, 8000 extended limit conformed 54 packets, 74016 bytes; action: transmit exceeded 6 packets, 7224 bytes; action: drop last packet: 43556ms ago, current burst: 7708 bytes last cleared 00:00:54 ago, conformed 10000 bps, exceeded 1000 bps 정보확인결과, 한도가초과되지않는 54개패켓 (74016Byte) 에대해서는전송처리 (action: transmit) 를실시하였으며, 한도가초과된 6개패켓 (7224Byte) 에대해서는드랍처리 (action: drop) 를실시하였다. 이처럼 CAR 설정을이용하여 ICMP 패켓에대해서폴리싱을구성하면, 한도가초과된패켓에대해서는드랍되기때문에 ICMP 플러딩공격을방지할수있다. 다음내용을알아보기위해서 R1 에서설정한 CAR 관련설정을삭제하도록하자. [ 예제 13-42] R1에서설정한 ICMP 플러딩공격차단설정삭제 R1(config)#no access-list 110 R1(config)# R1(config)#int s1/0 R1(config-if)#no rate-limit input access-group 110 128000 8000 8000 conform-action transmit exceed-action drop 블로그 : net123.tistory.com - 39 - 저자김정우

TCP SYN 플러딩공격방지 TCP 환경에서는데이터를전송하기이전에 TCP 3-Way 핸드쉐이킹을실시하여, 상대방과통신수립을성립 한다음데이터전송을실시한다. TCP 3-Way 핸드쉐이킹과정은 [ 그림 13-9] 와같다. [ 그림 13-9] TCP 3-Way 핸드쉐이킹과정 TCP 는 SYN 플래그를이용하여통신요청을개시하며, 전송되는세그먼트를표기하기위한 Seq 번호와이에 대한응답으로 ACK 플래그를사용한다. 동작과정은다음과같다. 1 A는 B에게통신요청을개시하는 SYN와첫번째세그먼트를알리는 Seq(100) 을전송한다. 2 SYN를수신한 B는이에대한응답으로 A에게 Ack(101) 와 Seq(200) 를전송하며, 자기자신도 A에게통신요청을개시하는 SYN를함께전송한다. 3 SYN를수신한 A는이에대한응답으로 B에게 Ack(201) 을전송함으로써통신연결이성립된다. 이때, 외부공격자가 [ 그림 13-10] 과같이클라이언트가통신요청을실시한것처럼조작하여, 서버에게 SYN 패켓을무한으로전송할경우, 실제사용자는서버와의연결이성립되는것이방해되기때문에서비스 거부현상이발생된다. 이러한서비스거부현상을발생시키는공격을 TCP SYN 플러딩이라고한다. [ 그림 13-10] TCP SYN 플러딩공격과정 블로그 : net123.tistory.com - 40 - 저자김정우

영리목적으로사용할경우저작권법제30조항에의거법적처벌을받을수있습니다. 1 공격자는서버측으로 SYN 패켓을전송하여, 마치클라이언트가통신요청을한것처럼조작한다. 2 그럼서버는클라이언트로부터통신요청을수신한것으로알고있기때문에, 클라이언트에게통신응답을하기위한 ACK와통신요청을하기위한 SYN를전송한다. 3 당연공격자는서버측으로 ACK 패켓을전송하지않기때문에, 서버는클라이언트로부터 ACK 패켓을수신할때까지 Half Open 상태가된다. 4 이때, 연결시도를초기화하기이전에새로운통신요청이들어온다면, SYN 패켓이 Backlog 큐에저장되어, 오버플러우가되어더이상연결을수신할수없는상태인서비스거부상태로전환된다. 5 이렇게 Backlog 큐가오버플러우현상이발생되면, 공격을당한해당포트로만연결이성립되지않을뿐, 다른포트에는영향을주지않는다. 그래서서버에는별다른부하가발생되지않기때문에관리자가원인을파악하는데어려움이있다. [ 표 13-1] 은 TCP 연결상태에대한내용을설명하고있다. [ 표 13-1] TCP 상태유형 TCP 상태유형 내용 LISTENING 서버가접속요청을대기하고상태이다. SYN-SENT 클라이언트어플리케이션이원격호스트에연결을요청한상태이다. 서버가클라이언트로부터 SYN를수신한다음, 클라이언트에게 ACK와 SYN-RECEIVED SYN를전송했지만, 클라이언트로부터 ACK를수신하지못한상태를의미한다. 만약, SYN-RECEIVED 상태가장기간지속된다면, TCP SYN 공격 을받고있다고판단하면된다. ESTABLISHED 3-Way 핸드쉐이킹이완료되어통신수립이완료된상태이다. FIN-WAIT1, 2, 3 서버에서연결을종료하기위해클라이언트에게통신종료를요청하고회신을받아종료하는 3단계상태이다. CLOSING 확인메시지가전송도중에분실된상태이다. TIME-WAIT 연결은종료되었지만, 분실되었을지모를느린세그먼트를위해당분간소켓을열어놓은상태이다. CLOSED 통신이완전히종료된상태이다. TCP SYN 플러딩공격은다음과같이 TCP Intercept 기능을이용하여방지할수있다. [ 표 13-2] TCP Intercept 유형모드유형내용클라이언트와서버간에 TCP 세션이성립되는과정을모니터링한다. 만 Watch 모드약, 기본 30초이내에 TCP 연결이성립하지않으면, 서버에게 RST를전송하여연결을해지한다. 라우터입장에서부하발생이낮다. 서버로전송되는 TCP 패켓을라우터가가로채기하여, 대신 TCP ACK+SYN를전송하고, 상대방으로부터 ACK를수신하면, 서버쪽으로 Intercept 모드 SYN를전송하여 TCP 연결을완성한다. 만약, 기본 30초안에 Ack를수신하지못하면공격으로간주하여상대방에게 RST를전송하여연결을해지한다. 라우터입장에서부하발생이높다. 블로그 : net123.tistory.com - 41 - 저자김정우

그럼 TCP Intercept Watch 모드를이용하여 TCP SYN 플러딩공격을방지하도록하자. [ 그림 13-11] TCP Intercept Watch 모드처리과정 1 외부공격자가 R4로 SYN 플래그를설정하여, 조작된통신요청패켓을전송한다. 2 외부공격자가 R4로전송한조작된통신요청패켓이 R1을통하여 R4로전송되는순간 TCP Intercept Watch 모드가동작한다. 그럼 TCP 연결이 30초이내에성립되지않으면, 외부공격으로간주하여 TCP 연결을해지한다. 3 R4는클라이언트가통신요청을실시한것으로알고있기때문에, ACK와 SYN 플래그를설정하여통신응답 / 요청을전송한다. 이때, R4는 Half Open 상태가된다. 4 R4가전송한 ACK+SYN 패켓이 R1을통해서외부로전송된다. 5 외부공격자로부터 ACK 패켓은수신되지않을것이며, TCP 연결을해지하기위해서 Watch 타임아웃이만료될때까지대기한다. 6 30초이내에 ACK가 R1을통과하지않게되면, TCP Intercept Watch 모드에의해서 R1이외부공격자의 IP 주소를출발지로하여 R4에게 RST 패켓을전송하여, 통신종료를실시한다. TCP Intercept Watch 모드설정은다음과같다. [ 예제 13-43] R1에서 TCP Intercept Watch 모드설정 R1(config)#access-list 110 permit tcp any any R1(config)# R1(config)#ip tcp intercept list 110 R1(config)#ip tcp intercept mode watch R1(config)#ip tcp intercept watch-timeout 15 설정이완료되었다면, 평상시 3-Way 핸드쉐이킹과정을알아보기위해서, R1 에서디버깅을실시한이후, R2 에서내부 150.1.13.254 로텔넷접속을실시하도록하자. [ 예제 13-44] R1에서디버깅실시및 R2에서 150.1.13.254 텔넷접속및해지 R1#debug ip tcp intercept TCP intercept debugging is on R2#telnet 150.1.13.254 /source-interface fa0/1 Trying 150.1.13.254... Open 블로그 : net123.tistory.com - 42 - 저자김정우