<B6F3BFECC5CDB8A620C8B0BFEBC7D120B3D7C6AEBFF6C5A920BAB8BEC8BCB3C1A42E687770>

Similar documents
< FBBE7B0EDB3EBC6AE5FB5F0C6FAC6AEC6D0BDBABFF6B5E5C3EBBEE0C1A128BCF6C1A4292E687770>

Microsoft PowerPoint - ch13.ppt

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

Microsoft Word - NAT_1_.doc

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

Microsoft Word - access-list.doc

운영체제실습_명령어

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

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

VPN.hwp

Windows 8에서 BioStar 1 설치하기

Cloud Friendly System Architecture

Network seminar.key

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

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

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

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

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

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 (

SMB_ICMP_UDP(huichang).PDF

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

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

Oracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용

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

System Recovery 사용자 매뉴얼

Microsoft Word - release note-VRRP_Korean.doc

bn2019_2

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다

슬라이드 1

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

PowerPoint 프레젠테이션

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

untitled

IT 관리자가알아야할보안키포인트 네트워크의미래를제시하는세미나 세미나 NetFocus 2003 : IT 관리자를위한네트워크보안방법론 오늘과내일 /

시스코 무선랜 설치운영 매뉴얼(AP1200s_v1.1)

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

Microsoft Word - src.doc

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

Microsoft PowerPoint - ch15.ppt

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

untitled

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

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf


Sena Device Server Serial/IP TM Version

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

Microsoft PowerPoint - IRC_User_Manual.ppt

Windows Server 2012

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

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

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

SSL Strip Attack JAC (SemiDntmd) 이우승 semidntmd.tistory.com

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

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

PowerPoint 프레젠테이션

Microsoft Word Question.doc


Microsoft Word - How to make a ZigBee Network_kr

1217 WebTrafMon II

Microsoft PowerPoint - thesis_della_1220_final

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

Tablespace On-Offline 테이블스페이스 온라인/오프라인

Mango-E-Toi Board Developer Manual

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

ISP and CodeVisionAVR C Compiler.hwp

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

Microsoft PowerPoint - ch07.ppt

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

UDP Flooding Attack 공격과 방어

슬라이드 1

업데이트일 : Server CIP 기능가이드 목차서비스소개 CIP 사용방법 Inter-AZ 신청방법 CIP 고객 VM 설정방법 서비스소개 본문서는 KT ucloud server 의부가기능인 Cloud Internal Path ( 이하 CIP 이라함

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

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

hd1300_k_v1r2_Final_.PDF

소개 TeraStation 을 구입해 주셔서 감사합니다! 이 사용 설명서는 TeraStation 구성 정보를 제공합니다. 제품은 계속 업데이트되므로, 이 설명서의 이미지 및 텍스트는 사용자가 보유 중인 TeraStation 에 표시 된 이미지 및 텍스트와 약간 다를 수

SBR-100S User Manual

Windows Server NTP 설정가이드 Author 이종하 (lovemind.tistory.com) 1

SBR-100S User Manual

Remote UI Guide

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

일반적인 네트워크의 구성은 다음과 같다

Microsoft Word - PLC제어응용-2차시.doc

ÀÎÅÍ³Ý ÁøÈï¿ø 5¿ù

TCP.IP.ppt

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

USB 케이블만을이용한리눅스 NFS 개발환경 (VirtualBox) 최초작성 : 2010 년 10 월 21 일 작성자 : 김정현 수정내용 최초작성 by 김정현 스크립트추가, 설명보충 by 유형목 1. VritualBox

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

Microsoft Word doc

DoS 공격의유형분석및탐지방법 (Monitoring and Investigation of DoS Attack) 영산대학교 사이버경찰학과 이성진

(SW3704) Gingerbread Source Build & Working Guide

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

슬라이드 제목 없음

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

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

Security.hwp

Chapter11OSPF

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

시스코 무선랜 설치운영 매뉴얼(AP1200s_v1.1)

Transcription:

라우터를활용한네트워크보안설정 2005. 5. 인프라보호단 / 보안관리팀

목 차 Ⅰ. 라우터를활용한네트워크보안...1 1. 라우터자체보안...1 2. 라우터를활용한네트워크보안...35 < 별첨 #1> 라우터보안체크하기...45 그림목차 [ 그림 1] ipconfig 실행화면...2 [ 그림 2] 라우터의접근방법...3 [ 그림 3] 라우터에설치된인터페이스목록...10 [ 그림 4] access-group 설정예...11 [ 그림 5] extended access-list 설정예...12 [ 그림 6] 설정파일조회...15 [ 그림 7] access-list 룰을삭제하는과정...16 [ 그림 8] 설정파일조회...17 [ 그림 9] access-list 조회...17 [ 그림 10] line 명령어...18 [ 그림 11] 원격접근제어설정...19 [ 그림 12] 리스너자체 off 설정...19 [ 그림 13] SNMP 설정...21 [ 그림 14] SNMP 설정해제...22 [ 그림 15] small-servers 서비스중지...23 [ 그림 16] finger 서비스중단...23 [ 그림 17] http 서비스중단...24 [ 그림 18] 서비스중단설정...24 [ 그림 19] 인터페이스모드에서서비스중단설정예...25

[ 그림 20] 사용하지않는인터페이스다운...27 [ 그림 21] 다운된인터페이스재가동...27 [ 그림 22] 암호화가설정되지않은 config...28 [ 그림 23] 암호화명령어실행...29 [ 그림 24] 암호화가적용된예...29 [ 그림 25] exec-timeout 설정...30 [ 그림 26] buffered 로깅설정...31 [ 그림 27] show logging 실행화면...31 [ 그림 28] clear logging 화면...31 [ 그림 29] syslog logging 설정...32 [ 그림 30] 현재시간조회...33 [ 그림 31] 시간및 timezone 설정...33 [ 그림 32] 타임서버와시간동기화...33 [ 그림 33] 비정상 ip 대역필터링...36 [ 그림 34] 악성포트를필터링한예...37 [ 그림 35] icmp 패킷필터링예...38 [ 그림 36] 통합된 access-list 설정...38 [ 그림 37] access-group 에적용한예...39 [ 그림 38] access-list 설정...40 [ 그림 39] access-group 설정...40 [ 그림 40] Null 0 인터페이스...41 [ 그림 41] Null 라우팅설정...41 [ 그림 42] blackhole 필터링설정해제...42 [ 그림 43] URPF 설정...43 [ 그림 44] CEF 가 enable 되어있지않을경우...43 [ 그림 45] URPF 설정...43 [ 그림 46] 리스너자체 off 설정...47

Ⅰ. 라우터를활용한네트워크보안설정 라우터는일반 PC방이나기업등에서자주사용되고있지만운영의특성상 IT 관련종사자에게도익숙하게접하기는쉽지않은것이사실이다. 그러나최근의공격경향이 PC나서버에만머무르지않고라우터나스위치등네트워크장비를직접대상으로삼는경우가증가하고있는데, 만약이러한공격으로인하여네트워크장비에장애가발생할경우에는이하의시스템전체가직접적인영향을받게되므로그피해는걷잡을수없이커질것이다. 또한가지경향으로는공격의양상이단순히한시스템에만머무르지않고웜 (worm) 이나봇넷 (botnet) 과같이대단위의트래픽이나짧은시간에많은패킷을유발하여네트워크에직접적이고심각한장애를유발하는경우가많이발생하고있으며이추세는앞으로도더욱가속화될것으로보인다. 굳이지난 1.25 대란을언급하지않더라도이러한경우문제의원인을찾고대처하기위해서는각개별시스템수준에서처리하기에는한계가있으며네트워크수준에서대처하여야한다. 따라서각기관에서라우터를운영하고있다면라우터에대한관리와라우터등네트워크장비를이용하여보안을강화할수있는방안에대하여고민하여야한다. 실제로라우터 (router) 와스위치의기능은원하는목적지를찾아패킷을포워딩또는스위칭해주는것이지만, 모든트래픽이이장비를통과하는만큼네트워크장비에서제공하는접근통제등여러보안기능을조금만활용해도굳이고가의상용솔루션을구입하지않고도상용솔루션수준의기능이나심지어는그이상의기능을이용하여네트워크보안을상당부분강화할수있는것이사실이다. 따라서라우터로대표되는네트워크장비자체에대한보안설정방법과아울러네트워크장비를통한네트워크보안구성방도에대해알아본다. 1. 라우터자체보안 라우터자체의보안은일반시스템보안과크게다를바는없다. 다만명령어형식과방법에만차이가있을뿐보안의원리는동일하게적용된다. 이를테면암호보안이나불필요한서비스에대한정책, 허가된사용자만접근할수있도록엄격한접근통제등은시스템이나네트워크장비에관계없이공통적인정책이될수있을것이다. STEP 1. 라우터암호설정하기 어떠한장비든장비와직접연결된콘솔이나원격에서네트워크를통해로그인이 - 1 -

가능한경우암호설정은가장중요하면서도기본이되는보안설정단계이다. 그러나실제로라우터를사용하고있는 PC방이나중소규모의업체에서는보안의첫단계라할수있는암호조차제대로설정하지않고사용하는경우가대부분이다. 이는대부분의영세한업체는별도로라우터를관리할수있는인력이부족하여설치이후전혀관리를하지못하고있으며라우터를설치하고관리해주는업체의직원들도보안관념이부족하여단지관리상의편리함때문에로그인암호를설정하지않거나상호등쉽게추측이가능한기본암호를일괄적으로설정하여사용하기때문이다. 이렇듯암호에대한보안을고려하지않는것은문은있으되잠금기능을사용하지않거나문을열어둔것과같을만큼매우위험한것임에도불구하고이중요성을간과하곤한다. 실제로자신이속해있는기관에서라우터를사용한다면혹쉬운암호를사용하고있지는않은지각자확인해보기바란다. 시작-> 실행에서 cmd나 command를입력후 DOS 창에서아래와같이 "ipconfig" 를실행하면 ip에대한정보가나오는데, 이때 Default Gateway로등록된것이라우터일것이다. 이 ip로 telnet 접속을해보면암호를묻는창이나오는데, 여기에쉽게추측이가능한문자열을입력해보아확인하면된다. [ 그림 1] ipconfig 실행화면 아래는라우터에접근가능한방법과각각의모드에서라우터의암호를설정하는방법을보여주고있다. 물론암호는 cisco 나 router, admin 또는상호명등일반적으로추측하기쉬운암호를사용하지않도록하고, 관리자중퇴사자나부서이동등이있을경우에는수시로암호를변경하여암호관리를철저히하여야할것이다. - 2 -

[ 그림 2] 라우터의접근방법 어떠한방법으로접근하든라우터에로그인하기위해서는 username 없이초기암호를입력하여로그인해야하는데이때프럼프트는 Router> 와같이되며이때의모드를 User exec 모드 라고한다. 이후 enable 또는 en 명령어를실행하여다시암호를입력하면프럼프트가 Router# 와같이되며이때의모드를 Privileged EXEC 모드 또는 enable 모드 라한다. 여기에서초기에 User exec 모드로들어가기위해입력하는암호는일반사용자, Privileged EXEC 모드또는 enable 모드는일종의 root 또는관리자라고생각하면된다. 아래는이때의로그인과정을보여주고있다. Password: xxxxxxx Router>enable Password: xxxxxx Router# < 참고 > 라우터사용모드 - 3 -

User EXEC 모드 Privileged EXEC 모드 Global Configuration 모드 Other Configuration 모드 한정된명령어만사용이가능하며주로라우터의간단한상태등을조회할수있다. 프럼프트는 Router> 와같이보이게된다. 재부팅이나라우팅등라우터에서의모든명령어에대한수행이가능하며프럼프트는 Router# 와같이보이게된다. Privileged EXEC 모드에서라우터전반적인설정을변경하고자할때의모드로서 Router(config)# 와같이보이게된다. 만약특정인터페이스나특정라우팅등을변경하고자할때에는아래의 Other Configuration 모드가사용된다. 좀더복잡하고세부적인설정을하는메뉴로서 Router(config - mode)# 와같이보이게된다. 설정이끝난후에는 exit 나 Ctrl+Z 를입력하면된다. < 참고 > 일반적인라우터접근방법 가. Console Password ( 노트북을이용한 Console 접속시사용 ) 먼저초기에라우터를셋팅하거나이후에작업을할경우대부분노트북등을라우터에연결하여직접콘솔에서작업하는경우가많다. 이는원격으로작업시만약의경우연결이끊길수도있기때문이다. 따라서라우터의설정을변경하거나재부팅등을한다면아무리숙련된관리자라하더라도원격에서하지말고콘솔에서작업하는것이좋다. 설정을변경하려면 User exec 모드에서는불가능하며반드시 Privileged EXEC 모드로들어가야한다. 따라서로그인후 enable을실행하여 Privileged EXEC 모드로들어가도록한다. 이후설정을변경하기위해 conf t" 를실행하여 Global Configuration 모드로들어간후콘솔을지정하여암호를재설정하면된다. 이때의설정방법은아래와같다. 여기에서 xxxxx는각자콘솔에서노트북으로연결하였을때의 User EXEC 모드로로그인할때의암호를뜻한다. 나. Terminal(Virtual) Password (telnet등원격접속시사용 ) 콘솔에서초기셋팅이나설정변경등을한후정기적으로모니터링을하고자할때에는매번콘솔에서작업하려면번거로우므로이때는원격으로로그인하여작업하는경우가많다. 주로 telnet 이나 ssh를이용하여접속하는데, 이때입력하여야하는암호를 Terminal password 또는 Virtual password 라고한다. 실제로많이사용되며대부분의비정상적인 - 4 -

로그인역시이를통해이루어지므로이암호는특히신경써서설정하여야한다. 반드시추측하기어렵고, 자주변경하도록하는것이좋다. 설정을변경하려면 User EXEC 모드에서는불가능하며반드시 Privileged EXEC 모드로들어가야한다. 따라서로그인후 enable을실행하여 Privileged EXEC 모드로들어가도록한다. 이후설정을변경하기위해 conf t" 를실행하여 Global Configuration 모드로들어간후 vty(virtual terminal) line을 0부터 4까지지정하여암호를재설정하면된다. 여기에서 0 부터 4까지지정할경우동시에 5번의접속이가능하며이때의설정방법은아래와같다. 여기에서 xxxxx 는원격으로 User EXEC 모드로로그인할때의암호를뜻한다. 실제적용이되었는지 telnet 으로접속하여아래와같이확인해보기바란다. # telnet router.abc.com Trying 192.168.0.1... Connected to 192.168.0.1 (192.168.0.1). Escape character is '^]'. User Access Verification Password:xxxxx Router> <-- 방금설정한암호 다. Enable Password 및 Enable Secret (enable 모드로접근시사용 ) User EXEC 모드에서더많은명령어를실행하거나설정을변경하기위해 Privileged EXEC 모드로접근하기위해서는 enable 명령어를실행하여암호를입력후로그인하여야하여야한다. 이때의암호는아래와같이 enable password 또는 enable secret를이용할수있는데, 각각은지정한암호가평문으로저장되는지아니면암호화되어저장되는지의여부에차이가있다. 즉, enable password로지정시에는지정한암호가평문으로저장되고 enable secret 로지정시에는암호화되어저장된다. - enable password - 5 -

- enable secret 라. 라우터암호저장방식 type 0 : 평문으로저장되는방식 type 5 : 단방향의 md5 hash로서역함수가존재하지않는암호화방식으로저장되는방식 type 7 : 암호화되지저장되지만역함수가존재하여암호화된암호를통해원래의암호를알수있는방식, 여기에서 "enable password" 는 type 0 의평문으로저장되며 "enable secret" 는역함수가존재하지않는암호화된형태로저장되는것이다. 물론라우터에서제공하는명령어중 service password-encryption 을실행하면 enable password와같이평문으로저장된암호를암호화하지만이는 type 7 로서역함수가존재하여암호화된암호를통해원래의암호를알수있다는한계가있다. 따라서먼저 no enable password" 를실행하여 enable password를 disable 하고대신 "enable secret" 를사용할것을권장한다. enable password 는 enable secret가없을때적용되며만약, enable password 와 enable secret 가함께설정되어있을경우에는 enable secret 가적용된다. 또한 IOS type7의암호화된암호를복호화하는즉암호화된암호를해석하는공개프로그램이나상용프로그램들도많이공개되어있어인터넷에서쉽게다운로드받을수있으므로혹암호화된암호가유출되었다면반드시암호를변경하도록하여야한다. - 6 -

STEP 2. access-list 를이용한접근제어설정하기 일반적으로 unix 계열의경우 tcp wrapper나리눅스의경우 iptables와같은방화벽을이용하여패킷필터링기능을이용하고있다. 이를통해허용된유저또는허용된패킷만접근할수있도록설정할수있는데, 라우터에서는 access-list 라는것을이용하여특정패킷을허용하거나차단하도록설정할수있다. access-list는라우터에서여러목적으로사용되며특히패킷필터링시에는매우유용하게사용되므로사용방법을반드시알고있어야한다. 라우터에서의 access-list 는라우터보안의기본이라할만큼중요한역할을하므로작동방식에대해정확하게이해하고, 활용할수있도록충분히연습을하여야한다. 또한굳이라우터를사용하지않더라도다른보안장비나프로그램에서도유사하거나동일한형식을사용하므로사용방법을익혀두는것이좋다. access-list란용어자체에서설명하듯이라우터자체를향하거나라우터를통과하는패킷에대한접근을제어할수있는명령어로서크게 standard access-list와 extended access-list로나눌수있다. standard access-list는패킷의소스 ip만으로패킷을허용하거나차단할수있으며반면에 extended access-list는용어가의미하듯이패킷의소스 ip 뿐만아니라목적지 ip, 포트 (port), 프로토콜 (protocol) 등으로차단할수있어좀더확장된기능을이용할수있다. 이때 access-list 는주로선언되는번호를기준으로분류하는데 1부터 99까지는 standard access-list에서사용하고 100부터 199까지는 extended access-list에서사용된다. 즉선언된 access-list를해석할때 access-list 번호를보고 standard access-list인지 extended access-list인지확인하면된다. - 7 -

access-list 이용방법 가. access-list 룰설정 - 어떤패킷에대해허용하고거부할것인지에대한룰설정 - 소스 ip만으로필터링한다면 standard access-list를이용, 포트와프로토콜등다양한인자로필터링한다면 extended access-list를이용 - access-list 는중복설정이되지않으므로만약기존번호로 access-list가설정되어있었다면추가할경우원하지않는결과가초래될수있어오작동을하게되므로만약기존에정의하려는번호로 access-list가있었다면먼저해당룰을삭제한후새롭게설정하여야함나. 적용할인터페이스지정 - 외부의 serial interface 에적용할것인지내부의 ethernet 인터페이스에적용할것인지정함 - 해당인터페이스에서어떤룰을적용할것인지는 access-group 110과같이 access-group 뒤에룰의번호를지정 - 패킷이인터페이스로들어오는패킷인지나가는패킷인지에따라 in과 out을정의다. 설정내용확인 - 정상적으로설정되었는지확인 access-list 룰설정하기 가. standard access-list - 8 -

access-list를설정한다는것은설정을변경하는것이므로 enable 모드에서 "conf t" 를입력하여 global configuration 모드로변경하도록하여야한다. 이후 standard access-list 5번을사용하기위해먼저 access-list 5번이설정되어있을지모르니 no access-list 5를실행하여 access-list 5번을삭제하였다. 그리고이제 access-list 5번에대한룰을정의하면된다. 여기서먼저 standard access-list의룰형식에대해알아보면다음과같이표현하면된다. access-list ACL번호 {permit 또는 deny} { 소스주소 wildcard 또는 any} 여기에서 ACL 번호는 standard이므로 1부터 99번까지가능한데, 이번호는선후차의개념이없으며단지각룰을구별하기위한번호일뿐이므로번호자체에별다른의미는없다. 즉, ACL 번호가 1번이라고해서 10번에비해우선하거나덜우선하지는않는다는것이다. 그리고 permit으로허용할것인지아니면 deny로거부할것인지지정하며, 이후에허용하거나거부할소스 ip 주소를명시하면된다. 소스주소를명시할경우 ip 대역을명시할때는 ip 주소와함께 wildcard mask를이용하거나모든 ip에대해룰을지정할경우 any를쓰면된다. 만약단일한 ip 주소를뜻할때는 host라는옵션을주면된다. 이를테면위의그림에서첫번째실행예를보면, access-list 5 permit host 192.168.1.70 이라고하였는데, 이는소스 ip 주소가 192.168.1.70인패킷을허용하겠다는룰이다. 단일한 ip이므로 ip 주소앞에 host를추가하였다. 만약 ip 대역이라면 "access-ist 5 permit 192.168.1.0 0.0.0.255" 와같이하여야할것이다. 이는소스 ip 대역이 192.168.1.x인패킷을허용하겠다는룰로서원래이를뜻하는 netmask는 - 9 -

255.255.255.0이지만 access-list에서는이의반대되는개념으로 wildcard mask라는것을사용하여 0.0.0.255가된다. 이 wildcard mask 값은 255.255.255.255에서원래의 netmask를빼면쉽게계산된다. 그다음줄은 ACL 번호가 5로동일하므로같은룰이계속되는것을알수있으며소스 ip 주소가 192.168.1.71인패킷도허용하는것을알수있다. 그다음줄역시 ACL 번호가동일하므로같은룰이지만 permit이아닌 deny로서패킷을거부하는것을알수있으며 any라고하였으므로모든패킷을거부한다는의미이다. access-list에서는룰의순서가매우중요하므로어떤룰을먼저설정하고어떤룰을뒤에설정하는가에따라그결과는많이달라질수있기때문에룰설정시주의하여야한다. 이를테면위 5번룰의경우먼저소스 ip 가 192.168.1.70 이거나 192.168.1.71 인패킷은허용하지만외의패킷은모두거부한다는의미가되는것이다. 만약 access-list 5 deny any가제일먼저나온다면모든패킷을거부하므로뒤에서 192.168.1.70 이나 192.168.1.71을허용하여도역시거부되는것이다. 설정이완료된후에는 exit를입력하거나 Ctrl 키를누른상태에서 z 키를입력하면 config 모드에서빠져나오게된다. 설정을한후에는애초에의도한대로룰이설정되었는지확인하기위해 show access-list 5 또는 sh access-list 5 로확인해보면된다. 여기에서 5는확인하고자하는 access-list 번호이다. 만약 5를입력하지않고 show access-list 만실행하면설정되어있는모든 access-list를보여주게된다. 이렇게해서 access-list 에대한룰설정이완료되었다. 다음에는해당룰을어떤인터페이스에적용할것인지정할차례이다. access-list 를인터페이스에지정하려면해당인터페이스모드로들어간후 "ip access-group 적용할acl번호 in 또는 out 과같이실행하면된다. 만약 in 이나 out 을별도로지정하지않으면기본적으로 out 이된다. 그런데여기에서두가지고민을하게된다. 그것은바로어떤인터페이스에 access-group을지정할것인지와해당인터페이스에서 in을하여야하는지 out을하여야하는지이다. 먼저라우터의인터페이스는크게 serial 인터페이스와 ethernet 인터페이스로나눌수있는데, serial 은외부네트워크와연동하는부분이고 ethernet 인터페이스는내부네트워크와연동하는부분이다. 즉, 내부에서라우터를게이트웨이로사용한다면게이트웨이 ip 주소가라우터의 ethernet 인터페이스의 ip 주소일것이다. 이렇게생각하면해당인터페이스에서 in을하여야하는지 out을하여야하는지도자연스럽게이해가될수있다. 정리를하면아래와같다. [ 내부에서외부로나가는 (outgoing) 트래픽을제어할경우 ] ethernet 인터페이스에서는 out 이되고, serial 인터페이스에서는 in 이된다. [ 외부에서내부로들어오는 (incoming) 트래픽을제어할경우 ] serial 인터페이스에서는 out 이되고, ethernet 인터페이스에서는 in 이된다. - 10 -

access-list에서 in 과 out 은매우중요한개념이다. 이제실제인터페이스에설정해보도록한다. 먼저자신의라우터장비에서어떤인터페이스가있는지확인하여야하는데, 이는아래와같이 "show ip interface brief" 나줄여서 "sh ip int b" 를실행해도된다. 아래그림의경우이더넷인터페이스는 FastEthernet0가 1개있고시리얼인터페이스로 Hssi0 이라는인터페이스와 Serial0부터 Serial3 까지있는데, 이더넷인터페이스는 FastEthernet0으로, 시리얼인터페이스는 Serial0 으로한다고가정해본다. [ 그림 3] 라우터에설치된인터페이스목록만약시리얼인터페이스를통해외부에서내부로들어오는트래픽을필터링하고자할경우에는앞에서살펴본바와같이시리얼인터페이스와이더넷인터페이스에서각각설정가능하지만여기에서는시리얼인터페이스에서필터링설정하려고한다면아래와같이먼저 serial0 인터페이스모드로들어간후해당인터페이스모드에서 ip access-group 5 in" 을실행하면된다. 이명령어를입력한후엔터를치면실행과동시에해당인터페이스에서 192.168.1.70과 71을소스로한패킷이외의패킷은모두차단될것이다. [ 그림 4] access-group 설정예 - 11 -

나. extended access-list 다음은소스 ip 만을가지고필터링하는 standard access-list가아니라소스ip를포함하여목적지 ip, 소스포트, 목적지포트, 프로토콜등으로필터링설정할수있는 extended access-list를알아보도록한다. standard access-list를이해했다면 extended access-list도크게다를것은없는데, extended access-list에서사용할수있는번호는 100부터 199번까지이며사용형식은다음과같다. access-list acl번호 {permit 또는 deny} 프로토콜소스소스-wildcard 목적지목적지 -wildcard 여기에서 ACL번호는 standard와같이각각의룰을구별하기위한번호일뿐이며번호자체에큰의미가없다는점을주의하기바란다. 즉 101번과 102번은단순히룰을구별하기위한번호일뿐이며선후차의개념과는관계가없다는것이다. 그리고 permit으로이하의트래픽을허용할것인지아니면 deny로이하의트래픽을거부할것인지지정하며이후에프로토콜및소스 ip 정보, 목적지 ip 정보를지정하면된다. 프로토콜부분에는 ip 나 tcp, udp, icmp가올수있으며 ip를지정하면포트번호를지정하지않고소스및목적지 ip만지정하면되고, tcp나 udp를지정하면해당포트번호를지정하면된다. 그리고 icmp는포트번호라는것이없이대신 icmp type과 code가있으므로이를지정하면된다. 그리고 wildcard mask는 standard access-list에서언급한바와같이 255.255.255.255에서 netmask를뺀값으로지정하면된다. [ 그림 5] extended access-list 설정예 위의예를통해 extended access-list 를살펴보도록하자. 먼저 access-list 를설정한다는것은설정을변경하는것이므로 enable 모드에서 - 12 -

"conf t" 를입력하여 global configuration모드로변경하도록한다. 이후 extended access-list 150번을사용하기위해먼저 access-list 150 번을정의하였다. 물론기존에 access-list 150번이설정되어있다면 no access-list 150을먼저실행하여해당룰을삭제후새롭게정의하여야할것이다. 먼저첫번째의 access-list 150 deny tcp any any eq 445" 를살펴보도록하자. 150번을정의후 deny로하였으므로뒤에언급된트래픽을거부한다는의미가될것이다. 프로토콜에서는 tcp 로하였고다음에는소스ip 와목적지 ip 가나올부분인데, 각각모두의의미인 any 가언급되었으므로소스와목적지와관계없다는의미이며목적지포트부분에 eq 445 로되었으므로목적지포트가 445번인 tcp 패킷은모두필터링한다는의미이다. 두번째는역시 150번이므로같은룰이계속되는것을알수있다. 역시 tcp이며소스 ip 부분에 192.168.1.0 0.0.0.255 라고되어있는데, 0.0.0.255 는 wildcad mask 이므로이를 netmask로변경하면 255.255.255.0 이되므로소스 ip 는 192.168.1.0/255.255.255.0 이라는의미가될것이다. 즉, 192.168.1.1 192.168.1.255 까지를뜻하는것이다. 다음으로목적지 ip 부분에는 host 100.100.100.1이므로단일한 ip인 100.100.100.1 이라는의미가된다. eq80은목적지포트가 80 이라는의미이므로이룰의의미는소스 ip가 192.168.1.0/255.255.255.0인곳에서목적지 ip가 100.100.100.1로향하는 80/tcp 패킷을필터링한다는의미이다. 세번째룰은 udp이면서소스 ip가 host이므로단일한 ip인 192.168.2.5이라는의미이고, 목적지 ip는 100.100.100.0 0.0.0.255이므로역시 wildcard mask를 netmask 로변경하면 255.255.255.0 이므로 100.100.100.0/255.255.255.0 이될것이다. 다음에목적지포트부분에 range라는부분이처음소개되었는데, eq 가단일한하나의포트를뜻하는반면에 range는포트의범위를지정할수있도록하는옵션이다. range를사용할때는 range 시작포트번호끝포트번호 와같이지정하면되는데, 따라서위의경우 100번부터 200번까지의포트를뜻하는것이다. 세번째룰의의미를정리하면소스 ip가 192.168.2.5 이고목적지 ip가 100.100.100.0/255.255.255.0 이면서목적지포트가 100번에서 200번사이인 udp 패킷을필터링한다는의미가된다. 네번째룰은 tcp나 udp가아니라 ip로지정되었는데이는뒤에올정보가포트가아니라 ip 라는것을알수있다. ip 부분에 host 라고언급되었으므로단일한 ip 라는것을알수있으며따라서이룰의의미는소스 ip가 192.168.1.3이고, 목적지 - 13 -

ip 가 100.100.100.2 인모든트래픽을거부한다는의미이다. 마지막으로다섯번째룰에서는 permit 이므로패킷을허용한다는의미이며프로토콜은 tcp, 소스주소와목적지주소가 any 이므로 tcp 와관련된모든패킷은허용한다는의미가된다. 앞에서는언급하지않았지만 access-list와관련하여꼭알아야할사항이한가지있다. 이는별도로언급하지않을경우에는해당룰의제일마지막에는항상 deny any any 가추가된다는것이다. 즉, 별도로거부하는룰을지정하지않아도항상마지막에는모든패킷을거부한다는의미이므로위와같은경우앞에서거부한몇몇트래픽을제외한모든 tcp는허용하며이외의패킷즉 udp나 icmp 등은모두거부한다는의미가된다. 따라서 3번째에 udp를거부하는룰은어차피 default로 tcp를제외한모든패킷은거부되므로사실상의미가없는것이다. 특별히지정한패킷이외의패킷을허용하려면 "access-list 150 permit ip any any" 가되어야할것이다. 여기에서 ip는 tcp나 udp, icmp 등모든프로토콜을포함한의미이다. 단순히룰만지정했다고해서바로적용이되는것은아니다. 룰지정이끝난후에는해당룰을어떤인터페이스에대해 in 또는 out으로할것인지를지정하여야하므로 Ctrl 키를누른상태에서 z를입력하여 config 모드를빠져나온후 serial 0 인터페이스에지정하기위해 int serial0을실행한후 150번룰에대한 access-group 을지정하였다. serial 인터페이스에서 in 으로하였으므로외부에서내부로들어오는패킷에대한제어임을알수있다. 만약이더넷인터페이스에서지정하였다면 out을명시하면같은의미가될것이다. 여기에서또하나주의해야할것이있다. 앞에서는 standard access-list의예를들면서 serial 0 인터페이스에 in을지정한바있는데, extended access-list에서도 serial 0 인터페이스에 in을지정하였다. 한인터페이스에서는 in 이나 out 이각각 1번만사용될수있으므로만약중복설정하였을경우에는기존의 access-group 이사라진다는것이다. 따라서이러한경우에는두개의룰을합쳐하나의룰로만들도록하여야한다. 아니라면비슷한효과를낼수있도록이더넷인터페이스에서 out 으로정의하면될것이다. 즉, 하나의인터페이스에는각각 in 1개, out 1개이렇게최대 2개의룰을지정할수있는것이다. 아래는 access-group을설정한후현재의설정파일의내용을살펴보기위해 show running-config를실행한예이다. 명령어입력시 begin Serial0 부분을추가한이유는많은설정파일부분에서 Serial0과관련된부분을바로확인하기위해 Serial0 으로시작하는부분부터출력하라는의미이다. Serial0과관련된룰을보면앞에서 - 14 -

언급한바와같이 access-group이 150 - 한개만지정되어있는것을알수있다. 이는 in을중복지정하면서기존의 5번룰이사라졌기때문이다. [ 그림 6] 설정파일조회 다. 룰설정변경하기 지금까지는기존의룰이없는상태에서룰을생성하는방법에대해알아보았는데, 다음으로살펴볼기존의 access-list를설정하여적용한후룰을변경, 삭제하고자할때의방법에대해알아보도록하겠다. 실제로라우터를운영하다보면각종정책의변경에따라 access-list 룰을수정해야할일이생기곤하는데, 이역시룰을설정할때만큼이나중요하므로주의하여야한다. 특히 access-list 룰을수정하는것은처음에설정하는것보다더복잡하고어려우므로주의하여야한다. 다시한번절차에대해확인해보자. access-list를설정하려면먼저 global config 모드에서 access-list 룰을정의한후해당인터페이스모드로들어가서 access-group을이용하여 access-list를인터페이스에적용하면된다. access-list를삭제또는해제하려면이의반대순서로진행하면된다. 먼저해당인터페이스모드로들어가서삭제또는해제의의미인 no를이용하여 access-group을삭제한후역시 global config 모드에서 no를이용하여 access-list를삭제하면되는것이다. - 15 -

[ 그림 7] access-list 룰을삭제하는과정 위의그림은기존에설정했던 access-list를삭제하는과정을보여주고있는데, 앞에서언급한절차대로하고있는것을알수있다. 먼저 serial0 인터페이스로들어가서설정시 ip access-group 150 in" 을실행했으므로 no를붙여서그대로실행하여 serial0 인터페이스에설정되어있는 access-group 을해제하였다. 이제 access-list 룰 150은해당인터페이스에서해제되었으므로아무런의미가없게되었고, serial 0 인터페이스에서는어떠한필터링룰도적용되지않은상태가되었다. 이번에는 Ctrl 키를누른상태에서 z를입력하지않고대신 exit를 2번입력하여원래의 enable 모드로들어왔다. 다음으로는 access-list를삭제할차례이다. 이를위해 conf t를입력후 global config 모드에서 no access-list 150" 을실행하여 access-list 150과관련된룰을모두삭제하였다. access-list에서또하나주의할점이있는데, access-list의룰이여러줄있을경우특정한줄만삭제하거나변경할수는없으며해당번호의모든룰을삭제한후다시처음부터다시생성하여야한다는것이다. 따라서위와같이 no access-list 150을실행하면 150번의룰모두가삭제하며만약특정한하나의룰만삭제하려고 no access-list 150 deny tcp any any eq 445와같이실행해도해당룰만삭제되는것이아니라 150번의모든룰이삭제된다. 이렇게해서 access-list 설정이깨끗하게초기화되었다. 다음단계로넘어가기전에실제로원하는대로초기화되었는지확인해보도록하자. 먼저설정파일을살펴보니아래와같이 Serial0 인터페이스에 access-group이없는것을알수있다. - 16 -

[ 그림 8] 설정파일조회 그리고 access-list 150 번을조회하자역시아무런룰이없이깨끗한것을알수있다. [ 그림 9] access-list 조회 이렇게모든설정이초기화된것을확인하였으니변경할정보로새롭게 access-list 를적용하면된다. 이는룰을설정할때와동일한방법으로설정하면된다. STEP 3. 라우터원격접근제한을통한보안강화하기 암호를아무리어렵게설정하였다하더라도관리자중에퇴사자나부서이동자가있을수있고또는관리의부주의등으로암호가유출될수도있다. 또한이뿐만아니라 a부터 zzzzz까지무작위로대입하는 brute force 프로그램을이용하여일일 - 17 -

이암호를입력해보는방법으로도암호를알수있으므로단순히암호를추측하기어렵게설정하는것만으로는확실한대안이될수없으며암호를설정한후에는허용된 ip 외에는 telnet이나 ssh를통해라우터에원격접속을할수없도록제한하는것이좋다. 실제로라우터의관리를위해서는라우터를직접적으로관리하는특정한유저만접근이가능하면되므로, 특정 ip에서만접근가능하도록설정하면될것이다. 이를위해서는앞에서살펴보았던 access-list를활용하면되는데, 먼저접근을허용할 ip를정의한후나머지는거부하도록 access-list를정의하도록한다. 단순히 ip 주소에대한허용 거부설정이므로 standard access-list를이용하는것이편할것이다. 이를위해아래와같이라우터로의원격접근을허용할 ip로 192.168.0.71과 192.168.2.4에대해서는허용한후나머지는모두거부하도록설정하였다. 다음에는 access-group을설정할차례인데, 라우터에대한직접적인접근을제어하려면각각의인터페이스에각각의 access-group을 in, out을지정하여설정하여야할것이다. 만약인터페이스가몇개없다면관계없지만여러개라면여간번거로운것이아닐수없다. 이를위해서라우터의디바이스 (device) 에대한직접적인접근은별도의설정방법을제공하고있다. 먼저 config 모드로들어간후 line 명령어를입력한다. line은 terminal line의의미로원격으로접속하게되면라우터에별도의터미널라인을이용하게된다. line 입력후에는아래와같이 aux나 console, vty 등이올수있는데, aux는모뎀라인, console은콘솔, vty는 telnet 등접속시가상터미널을뜻하므로여기에서는 line vty를선택하고이후에동시접속을허용할터미널을지정하면된다. 통상적으로 0부터 4까지지정하면된다. [ 그림 10] line 명령어 - 18 -

access-list를설정할가상터미널을설정한후에는 access-group과동일한방식으로, 그러나 access-group 대신 access-class라고지정하도록한다. 이렇게해서설정이끝났는데라우터는설정을적용함과동시에바로적용되므로만약 192.168.0.71 이나 192.168.2.4에서접속하지않았다면이룰에따라바로접속이끊기게되므로주의하여야한다. [ 그림 11] 원격접근제어설정 이렇게해서라우터에원격접근할수있는 ip 대역을제한설정하여특정한 ip 외에는라우터에 telnet이나 ssh 등을통해직접접근하는것은불가능하다. 그러나이보다더좋은방법은만약원격접속자체를사용하지않고콘솔 (console) 에서만작업한다면라우터의 telnet listener 자체를다운시켜외부에서의접속자체를차단하는것도좋다. 아래는 telnet listener 자체를 disable하는설정을보여주고있다. [ 그림 12] 리스너자체 off 설정 위와같이설정한후에는추가적으로아래의두명령어도실행할수있는데여기에 - 19 -

서 "no exec" 란지정된해당모드에서는어떠한명령어도실행하지않도록하는설정이며, "exec-timeout 0 1" 은아무런키입력없이 0분 1초가지나면자동으로접속을종료한다는의미이다. 즉, 현실적으로사용할수없도록한다는의미가된다. Router(config-line)# no exec Router(config-line)# exec-timeout 0 1 STEP 4. 라우터 SNMP 접근제한하기 SNMP(Simple Network Management Protocol) 는그이름이뜻하는바와같이단순한네트워크관리를위한목적으로주로서버나네트워크장비에서 SNMP를설정한후 mrtg 프로그램을이용하여트래픽관리등을위해사용되고있다. 그러나트래픽정보뿐만아니라전체네트워크의구성이나 MAC 주소, IP주소, IOS 버전등소프트웨어정보및각종하드웨어정보까지제공하는등관리자입장에서는매우중요한정보를제공하므로이의보안에신경을쓰도록하여야한다. 더군다나 SNMP에대한읽기권한뿐아니라쓰기권한까지있을경우에는 config 파일을열람하거나직접네트워크설정을변경할수도있다. SNMP는버전별로 v1과 v2c가주로사용되고있지만두버전은거의유사하며최근의 v3에서는인증을위해암호화가제공되고있다. SNMP 와관련해서는다음의두가지를주의하면된다. 가. community 문자열 (string) SNMP에서 community 문자열 (string) 은 SNMPd( 데몬 ) 와클라이언트가데이터를교환하기전에인증하는일종의암호로서초기값으로 public 또는 private로설정되어있다. 이는비단라우터뿐만아니라대부분의서버에서도 public으로되어있는데, 이를그대로사용하는것은암호를사용하지않는계정을사용하는것이상위험하다. 그럼에도불구하고대부분의시스템, 네트워크관리자들이기본적인문자열인 public을그대로사용하거나다른문자열로변경을해도상호나 monitor, router, mrtg 등사회공학적으로추측할수있는문자열을사용하고있어문제가되고있다. community 문자열 (string) 은뒤에서설명할 service password-encryption 라는명령어로도암호화되지않으므로반드시기존의 public 대신누구나추측하기어렵고의미가없는문자열로변경하도록하여야한다. 그리고 SNMP에서는 RO(Read Only) 와 RW(Read Write) 모드를제공하는데, 대부분 RO모드를사용하지만일부관리자들은 SNMP를이용한쉬운관리를위해 RW(Read Write) community 문자열 - 20 -

을사용하는경우도있는데, 이러한경우보안설정을확실하게하지않을경우 SNMP를이용하여설정을수정할수있는등심각한보안문제를유발할수있으니가급적사용을자제하되부득이사용하여야한다면각별히주의하여야한다. 나. 암호화여부 SNMP(v1, v2c) 에서클라이언트와데몬간의 get_request( 요청 ) 와 get_response( 응답 ) 과정은암호화가아닌평문으로전송되므로전기적인도청인스니핑 (sniffing) 이가능하다. 따라서아무리 community 문자열을어렵게수정하였다하더라도중간네트워크에서스니핑을하면 community 문자열을알수있으므로라우터에서 access-list를이용하여 SNMP에대한접근을엄격히제한하여야한다. 이렇듯 SNMP 에서의두가지문제를해결하기위해라우터에서설정을해본다. [ 그림 13] SNMP 설정 먼저 config 모드로접속한후라우터의 SNMP에접근할 ip를제한설정하기위해 access-list를정의하도록한다. SNMP로의접근을허용할 ip는 mrtg와같은프로그램이설치되어있는모니터링서버정도가될것인데, 소스 ip로접근제한을하므로 standard access-list를이용하면될것이다. 따라서먼저이용도로 access-list를 20번으로하기로하였다. 혹, 기존에 access-list 20번이있을지모르므로먼저 no access-list 20 으로해당룰을삭제하도록한다. 그리고 access-list 20번룰을설정하면되는데, 먼저모니터링프로그램이설치되어있는해당 ip 에대해 permit을한후나머지는모두거부하도록설정하면된다. 앞에서도언급한바와같이 access-list 에서는별도로지정하지않으면기본적으로 deny any이므로 access-list 20 deny any" 는언급하지않아도될것이다. - 21 -

access-list 설정이끝난후에는 SNMP 설정을할차례이다. 위와같이 SNMP-server community 커뮤니티이름 ro access-list번호 와같은형식으로하면된다. 위와같은경우 community 문자열이 tkfkdgksek라는것으로설정되었고 ro은 Read Only의의미로 SNMP 에대해읽기전용이라는의미이다. 즉, 읽기전용이기때문에 SNMP를통해설정을변경하거나하는것을불가능하게된다. 그리고 ro 뒤의 20은 access-list 번호를뜻하므로 SNMP 서버에대해 access-list 20번에서허용한 192.168.20.20 에서만접근이가능하다는의미가되는것이다. 만약 SNMP 자체를사용하지않는다면당연히 SNMP 자체를 off 하는것이좋다. 이는아래와같이 config 모드로들어간후 no SNMP-server를실행하면된다. [ 그림 14] SNMP 설정해제 위그림에서는먼저 sh ip sockets를실행하면라우터에서리슨 (listen) 하고있는 udp 서비스를보여주는데, SNMP가설정되어있는경우에는위와같이 port 에 161번이 listen하고있는것을알수있다. 그러나이후에 no SNMP-server를실행하여 SNMP를 off 한상태에서는 161번이없는것을알수있다. STEP 5. 불필요한서비스중단하기 서버시스템과마찬가지로네트워크장비역시처음에설치를하거나 IOS 등을업그레이드한후에는사용하지않거나보안상불필요한서비스나기능이너무많이활성화되어있는경우가많다. 따라서불필요한서비스는반드시끄도록하는것이권장된다. 물론정상적인서비스까지 disable하여서비스에문제를유발하지않도록주의해야하겠지만아래에서설명하는내용은기본적으로비활성화하여도서비스에무방한것들이다. - 22 -

[ 그림 15] small-servers 서비스중지 라우터에는 small-servers라는서비스가있는데, 이는예전에 DoS로악용되기도한 echo나 discard, daytime 등일반적으로 20번이하의포트를사용하는서비스들이다. 이러한종류의서비스들은실제로거의사용되지않으므로라우터에서중단하는것이좋다. 위명령어는각각 udp와 tcp기반의 small-servers 서비스를중지하는예를보여주고있다. [ 그림 16] finger 서비스중단 다음으로는 finger 서비스를중지하는명령어이다. 위두명령어는각각구버전, 신버전의 IOS에서작동방법인데, 만약 finger가허용되었다면외부에서라우터에로그인해있는유저의 ip 주소등개인정보를알수있게되므로반드시서비스를중지하도록한다. - 23 -

[ 그림 17] http 서비스중단 다음으로는 http 서비스를중단하는예이다. 만약라우터에 http 서비스가설정되어있다면웹을통해라우터의설정을조회하거나변경할수있는데, 이는보안상문제가될뿐만아니라라우터의 http server 자체가취약성을가지고있으므로이때문에네트워크장애를유발할수도있다. 따라서위와같이반드시 http 서버를중지하도록하는것이좋다. [ 그림 18] 서비스중단설정 다음으로는서비스를한꺼번에중지하는예이다. 먼저 no service pad 는 x.25 프로토콜을사용할때필요하므로일반적인경우에는중지하도록한다. 다음으로 no ip bootp server 는라우터가 bootp 서버로작동할때필요한서비스인데, 부팅시 bootp 는거의사용되지않으므로역시중지하도록한다. no service config", "no boot network", "no boot system", "no boot host" 등은부팅시네트워크를통해 config 파일을읽어오는설정인데, 거의사용되지않고불필요한서비스이므로역시중지하도록한다. 다음으로 no ip source-route 는 ip spoofing 을차단하기위해설정하는데, source-route 란패킷이전송되는경로를각각의시스템이나네트워크에설정되어 - 24 -

있는라우팅경로를통하지않고패킷의발송자가설정할수있는기능인데, 악용될소지가있으므로역시중지하지않는것이좋다. 지금까지는 global configuration 모드에서설정하였는데, 이를통해라우터전반적인설정에영향을미치게된다. 이설정후에는라우터에있는각각의인터페이스별로세부적인설정을할차례인데, 이는해당인터페이스모드로들어가서설정하므로해당인터페이스에만영향을주게된다. 현재라우터에꼽혀있는인터페이스는 "show ip interface brief ( 또는 sh ip int b)" 를입력하면알수있다. 상태 (status) 가 up으로되어활성화되어있는인터페이스뿐만아니라만약을위해지금당장사용하지않더라도함께설정하는것이좋다. 아래는 serial0 인터페이스에설정하는예를보여주고있다. [ 그림 19] 인터페이스모드에서서비스중단설정예 앞에서는설정을하기위해 conf t를실행하여 config 모드로들어간후바로명령어를입력하였지만특정인터페이스에적용을하기위해서는적용을하고자하는해당인터페이스모드로들어가야한다. 위의경우 serial0을선택하였다. 먼저 no ip redirects" 는라우터의인터페이스로 icmp redirect 패킷이들어오는것을차단하기위한설정인데, 만약라우터로부터 icmp redirect 패킷이나가는것을차단하려면각인터페이스에서 access-list를이용하여 icmp redirect를필터링하여야한다. icmp redirect 는최적의경로를알려주는용도로사용되지만실제로대부분의환경에서는불필요하며설정되어있다면라우팅테이블을변경하는등의방법으로악용될가능성이있으므로서비스를중지하는것이좋다. - 25 -

다음으로살펴볼 no ip directed-broadcast 는매우중요한설정이다. 만약라우터에 directed-broadcast 설정이되어있다면외부에서브로드캐스트주소로 ping 과같은특정한패킷을발송할경우해당패킷이브로드캐스트주소를통해내부의모든주소로그대로전달되게된다. 이를테면만약내부에서 C Class를사용하고있다면 123.123.123.255 주소로 ping을보냈다면 123.123.123.1부터 123.123.123.254까지 255개의시스템에그대로전달된다는것이다. 이는일면편리하게사용될수도있는기능이지만 DoS 나 DDoS 공격으로악용될가능성이매우높기때문에반드시사용하지않도록하여야한다. 최근의버전에서는대부분기본값으로 no 로설정되어있다. 다음으로, proxy-arp는게이트웨이를가지고있지않은네트워크의호스트들에게 arp 서비스를제공하는역할을하는데, 실제거의사용되지않고악용될소지가있으므로역시중지하도록한다. no ip unreachables는공격자에의한스캔에대응하기위한것인데, 일부스캐닝기법들중에는스캔시되돌아오는 icmp unreachables 메시지를이용하여스캔하고자하는호스트또는특정포트의 open 여부를결정하게된다. 따라서해당인터페이스에 no ip unreachables을실행하여이를차단설정하면스캔시소요되는시간도길어지게되어결국스캔공격을지연시키거나차단하는효과가있다. 특히 Null 인터페이스에는반드시이설정을하도록한다. 다음의 no ip mask-reply는인터페이스를통해 netmask를요청하는 icmp 패킷을발송했을때이에응답하지않도록하는설정이다. 만약응답할경우내부네트워크의 netmask 정보등을유출할수도있으므로굳이허용할필요가없다. 위와같이설정한후에 sh ip int serial0 과같이실행하면아래와같이보이게된다. 변경전과변경후에어떻게바뀌었는지살펴보기바란다. 변경전 ) Directed broadcast forwarding is enabled ICMP redirects are always sent ICMP unreachables are always sent ICMP mask replies are never sent 변경후 ) Directed broadcast forwarding is disabled ICMP redirects are never sent ICMP unreachables are never sent ICMP mask replies are never sent 마지막으로다시한번 sh ip int b 를실행하여현재라우터에설정되어있는인 - 26 -

터페이스를살펴보기바란다. 사용하지않는인터페이스는다음과같이반드시 shutdown 하도록한다. [ 그림 20] 사용하지않는인터페이스다운 만약다운된인터페이스를재가동하려면해당인터페이스모드에서 no를붙여서 no shutdown을실행하면된다. [ 그림 21] 다운된인터페이스재가동 불필요한서비스나인터페이스에대한중지를한후에는꼭필요한서비스만오픈되어있는지확인하기위해실제포트스캔을해보는것도좋은방법이다. nmap 등과같은포트스캔프로그램을이용하여스캔해보면된다. # nmap st p 1-65535 192.168.0.1 // tcp 포트스캔 # nmap su p 1-65535 192.168.0.1 //udp 포트스캔 STEP 6. 암호화설정하기 라우터설정을변경한후에는애초에의도한대로설정되었는지확인하기위해설정파일을살펴보는습관을들이는것이좋다. 라우터의설정파일은크게두가지 - 27 -

로나눌수있는데, ROM에설정되어있어라우터부팅시에적용이되는 startup-config와 RAM에설정되어있어설정할때마다바로적용이되어부팅이되면사라지는 running-config가그것이다. 물론설정을변경하면별도로룰을저장하는명령어를실행하지않는한이명령어는 running-config에만적용이되므로 sh running-config 또는간단히 sh run을실행하여 RAM 에저장되어있는설정파일을살펴보아야한다. 그런데설정파일을살펴보면앞에서설정한내용중암호가그대로보이는경우가있다. 만약 config 파일이유출되었을경우에는암호를그대로보여주게되므로보안상문제가될수있으므로설정파일에서암호를암호화하는것이좋다. 아래는현재의설정파일을보기위해 sh run을실행한결과인데, 제일아래에 enable password 부분이 12345로그대로보이는것을확인할수있다. [ 그림 22] 암호화가설정되지않은 config 따라서평문으로저장되어있는암호를암호화하고자할때사용할수있는명령어로는 service password-encryption 이있는데, 이명령어를실행하면일부암호를암호화하게된다. 아래는이명령어를실행한예이다. - 28 -

[ 그림 23] 암호화명령어실행 위와같이암호화명령어를실행한후다시 sh run을실행하여현재의설정을살펴보니아래와같이 12345 대신암호화된정보로보이는것을확인할수있다. 그러나암호화가되기는하였지만강력한암호화기법은아니어서복호화할수있으므로주의하기바란다. [ 그림 24] 암호화가적용된예 STEP 7. exec-timeout 설정을통한로그인시간제어하기 라우터에로그인한후일정시간동안아무런명령어를입력하지않으면자동으로접속을종료하거나로그아웃이되도록설정하는것이좋다. 이는실수로로그아웃을하지않고자리를뜨는경우에대비하기위한설정인데, 이설정을위해서는각각의디바이스모드에서 exec-timeout 분초 설정을하면된다. - 29 -

[ 그림 25] exec-timeout 설정 위는먼저 console 모드에서접근하였을때 7분 0 초동안아무런키입력이없으면자동으로로그아웃하도록한설정이며, 두번째는 virtual terminal을통해즉 telnet 이나 ssh를통해접근하였을때 8분 0초동안아무런키입력이없으면자동으로로그아웃되도록한설정이다. STEP 8. 로깅 (logging) 을통한로그관리설정하기 서버든라우터와같은네트워크장비든관계없이로그는매우중요한의미를가진다. 시스템에서자체적으로제공하는로그를통해다양한현상이나장애등을인지할수있으며 access-list와같은특정한룰에매칭되었을경우로그를남길수있도록함으로써모니터링의용도로도중요한역할을하게된다. 그러나대부분라우터에서로그를남기는설정을하지않고사용하는데, 관리상의목적으로또는보안상의목적으로도반드시설정할것을권장한다. 라우터에서제공되는로깅기법은여러가지가있는데, 이중에서 buffered logging과 syslog logging 방법이가장많이사용되고있으므로이방법에대해각각알아본다. 먼저 buffered 로깅은라우터의 buffer(ram) 에로그를남기도록하는방법으로가장많이사용되는방법이다. 이를위해서는먼저 logging on을실행하여로깅을남기도록설정한후얼마만큼의버퍼를할당할것인지그리고로깅수준은어느정도로할것인지설정하도록한다. 아래그림에서는 16K 정도를할당하였고로깅수준은 debugging으로설정하여상세한로그가남도록하였다. 다음으로는로그에남길때 timestamp를지정하여관리자가지정한형식으로시간정보를남기도록설정하였다. - 30 -

[ 그림 26] buffered 로깅설정 이후 show logging을실행해보면아래와같이생성되는로그정보를확인할수있다. [ 그림 27] show logging 실행화면 이후 logging 정보를삭제하려면아래와같이 clear 하면된다. [ 그림 28] clear logging 화면 - 31 -

buffered logging도좋지만매번라우터에로그인해서확인해보아야한다는번거로움이있고로깅에남길수있는용량에한계가있어이의대안으로 syslog 로깅을실행할수있다. syslog 로깅이란로그를라우터에남기지않고 514/udp를통해원격지의호스트에전달하는것으로원격지의호스트는통상적으로리눅스등유닉스호스트가사용된다. [ 그림 29] syslog logging 설정 위는 syslog 로깅을남기는설정인데, 먼저앞에서와같이 logging 기능을켠후로깅의수준을 debugging 으로설정하였다. 그리고제일중요한설정으로로깅을남길원격지호스트의 ip를지정하도록한다. 위의경우로깅을남길주소로 192.168.0.17 로설정하였다. 마지막으로라우터에서로그를보내는 syslog facility 를 local6 으로설정하였으므로리눅스서버에서 syslog 설정파일인 /etc/syslog.conf 에서도다음과같이설정한후 syslogd 프로세스를재가동하면라우터의로그가해당호스트의 /var/log/router 파일에저장되게된다. local6.* /var/log/router 이후 /etc/logrotate.conf 파일에아래와같이설정해두면 /var/log/router 의내용이매일자동으로순환 (rotation) 되면서 7일이지난로그는자동으로삭제될것이다. /var/log/router { daily rotate 7 } - 32 -

로그를남길때는로그에남은시간이중요한단서가된다. 따라서라우터의시간을정확하게맞추는것이매우중요하게된다. 먼저현재라우터에설정되어있는시간을보려면 "show clock " 을실행하면된다. [ 그림 30] 현재시간조회 위의경우시간이잘못되어있으므로현재의시간으로수동설정해보도록하자. 먼저 timezone을맞추도록하자. 한국의경우 KST 설정하면되고, 이후에수작업으로현재의시간을입력해보도록하자. 현재의시간형식은 clock set hh:mm:ss 날짜월년도 인데, 아래의경우 2004년 12월 3일오후 2시 40분으로지정한예이다. [ 그림 31] 시간및 timezone 설정 시간설정을한후에일정시간이지나면다시시간이정확하지않게작동하는경우가있으므로정기적으로시간을재설정해주는것이좋은데, 이를위해서는 time 서버에접속하여시간을동기화하도록설정하는것이좋다. 아래의경우 203.248.240.103(time.bora.net) 에접속하여시간을동기화하게된다. [ 그림 32] 타임서버와시간동기화 - 33 -

STEP 9. 설정파일백업하기 마지막으로살펴볼부분은아무리강조해도지나치지않은백업 (backup) 이다. 꼭해킹에대비하기위해서라기보다는어떤문제가발생할지모르기때문에백업은필수라고할수있다. 이를테면설정을변경한후에변경한설정이문제가있어원래의설정으로되돌리려고할때도있을수있는데설정이변경될때마다백업을받아두면작업에대한히스토리가될수도있을것이다. 설정파일을백업하려면고전적인방법인 tftp 나좀더진보된방식인 ftp를이용할수있고설정파일을직접 copy & paste 로백업해두어도된다. 라우터의설정파일이길어야 A4 분량으로몇장되지않기때문이다. 어떤방법을이용하든중요한것은설정파일백업은반드시하여야하는필수조건이라는것이다. - 34 -

2. 라우터를활용한네트워크보안 앞에서는라우터자체의보안을강화할수있는방안에대해알아보았다면지금부터는라우터를통해네트워크의보안을강화할수있는방안에대해알아보도록하자. 특히나모든트래픽이라우터를통하여들어오고나가기때문에라우터에서의트래픽제어는매우효율적이고그만큼중요하다할수있겠다. 물론라우터의본래기능은패킷을라우팅테이블에따라포워딩하는것이지만자체적으로제공하는각종보안기능과모니터링기능을활용하면보안제품이상의솔루션이될수있을것이다. 특히나사내에서라우터를이용한다면사내트래픽을모니터링하거나사내방화벽의용도로도적합할것이다. STEP 1. ingress filtering 설정하기 ingress 필터링은앞에서살펴보았던 standard 또는 extended access-list를활용하여라우터내부로즉사내네트워크로유입되는패킷의소스 ip 나목적지포트등을체크하여허용하거나거부하도록필터링하는것을뜻한다. 먼저공통적으로필터링하여야할소스ip 는인터넷상에서사용되지않는 ip 대역이다. 대부분의공격이실제존재하지않는위조된 ip 주소를소스로하여진행되므로이 ip 대역만차단해도일정정도의비정상패킷을사전에차단하는효과가있다. 현재 ip 할당및미할당내역은아래의 url 에서참고할수있다. http://www.iana.org/assignments/ipv4-address-space 위정보를참고로외부에서유입되는것을차단하여야할네트워크주소목록은아래와같다. 0.0.0.0/32 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 224.0.0.0/4 240.0.0.0/5 255.255.255.255/32 여기에서 /32 나 /8 과같은형식은 CIDR 라고하는데, /8 은 A class(255.0.0.0) - 35 -

/16 은 B class(255.255.0.0), /24 는 C class(255.255.255.0), /32 는단일한호스트 255.255.255.255 라고생각하면된다. 위정보를참고로 access-list를작성해보도록하자. 물론단순히특정소스 ip 및 ip 대역을차단하는것이므로 standard access-list를활용해도되지만이후에 1434/udp 등악성포트도차단하는룰을함께사용할것이므로 extended access-list 로작성해보도록하자. [ 그림 33] 비정상 ip 대역필터링 위룰에서단일한 ip 는 host 로, ip 대역은 255.255.255.255에서 netmask를뺀 wildcard mask 로하였고목적지 ip 대역은라우터내부로향하는모든트래픽에적용되므로모두 any 가된다. 다음으로는잘사용하지않거나보안에취약한악성포트를필터링할차례이다. 이를테면지난 1.25 대란의주범이었던 MS-SQL 웜에서사용했던 1434/udp 가대표적인예가될것이다. 이외 udp/tcp 135~138 까지는정상적인서비스로는거의사용되지않으면서도웜바이러스등이스캔을할때많이사용하는포트이므로가능한대로필터링하는것이좋다. 만약외부에서네트워크드라이브를이용한공유를허용하지않도록한다면 139/tcp 와 445/tcp 도함께필터링하는것이좋다. 이외의다른포트목록은각자설정하기바라며아래는비정상포트를목적지로한패킷을필터링한예를보여주고있는데각자의환경에따라다를수있으므로단지참고로만하기바란다. - 36 -

[ 그림 34] 악성포트를필터링한예 일단앞의룰과중복되지않도록이룰은 103번으로설정하였는데, 이후에앞의룰과하나의룰도합치면된다. 먼저 103번룰에서는 deny를먼저설정한후마지막에이외의패킷은모두허용하는룰을작성하였다. 소스와목적지부분은 any를하였으므로소스와목적지 ip 에관계없이목적지포트와만관련된것을알수있다. 앞에서언급한바와같이단일한포트를뜻할때는 eq 포트번호 와같이하면되고포트범위를뜻할때는 "range 시작번호끝번호 형식으로하면된다. 이중에서아래에서 3번째룰인 access-list 103 deny udp any any eq 161 을보면소스나목적지에관계없이라우터를통과하는 161/udp 트래픽을모두차단한것을알수있는데, 만약특정한 ip에서라우터내부의특정한 ip 에대해서는허용하고자할경우차단하는룰앞에위와같이허용하는룰을추가해주면된다. 위와같은경우 161/udp 와관련된트래픽중소스가 192.168.0.71 이고목적지가 211.219.171.144 로향하는패킷은허용하되다른 161/udp 트래픽은거부한다는의미가된다. 지금까지는 ip 및 tcp 나 udp 등의필터링에대해알아보았는데, 추가적으로, icmp 에대해필터링을어떻게할것인지고민해보아야한다. icmp 는 tcp 나 udp 와달리포트번호로서로구분하지않고 icmp type 과 code 라는것으로구분한다. 라우터에서는반드시허용해주어야할몇가지타입과코드를제외하고는필터링하는것이좋다. icmp type 과 code 목록에대해서는아래 url을참고하면된다. http://www.iana.org/assignments/icmp-parameters - 37 -

[ 그림 35] icmp 패킷필터링예 이제앞에서살펴본 3개의룰인 access-list 102, 103, 104 번룰을합칠차례이다. access-list 번호만같게설정하여하나로통합하면아래와같이보이게될것이다. [ 그림 36] 통합된 access-list 설정 앞에서는각각의룰을따로작성하였지만실제로는위와같이한꺼번에작성하면된다. 특히 "permit ip any any" 는마지막에한번만들어가야한다는점을주의하 - 38 -

기바란다. access-list 설정이끝난후에는 access-group을이용하여룰을해당인터페이스에지정하면된다. [ 그림 37] access-group 에적용한예 위그림에서는 serial0 인터페이스에 access-group을설정하였는데, 하나의인터페이스에서는 in 이나 out 이각각 1개씩만언급될수있으므로적용을하기전에 no ip access-group in 으로 in 과관련된기존의 access-group을삭제하였다. 그리고 access-group을적용하였는데, 여기에서 104 는앞에서설정한 access-list의번호를뜻한다. 라우터의외부에서내부로들어오는패킷에대한제어이므로 serial 인터페이스에서 in 으로설정하였으며만약이더넷인터페이스에서설정하려면 out 으로하여야할것이다. STEP 2. egress filtering 설정하기 다음으로는 ingress filtering 과반대의개념인 egress filtering 에대해알아보도록한다. 앞에서살펴보았던 ingress filtering 이라우터외부에서라우터내부로들어오려는패킷의소스ip 나목적지포트등을살펴보아필터링한것이라면지금부터살펴볼 egress filtering 이란반대로내부에서라우터외부로나가는패킷의소스 ip 를체크하여필터링하는것이다. 만약라우터내부에서 220.1.2.0/24 의 C class 대역을사용한다면라우터를통과하여외부로나가는트래픽의소스 ip 는반드시이대역인것이정상이며이외의패킷은모두위조된패킷일것이다. 따라서라우터를통해나가는패킷의소스 ip중사용중인 ip 대역을소스로한패킷은허용하고나머지는거부하도록 access-ilst를설정하면내부네트워크에서소스 ip를위조하여외부로나가는트래픽을차단할수있을것이다. - 39 -

[ 그림 38] access-list 설정 위는내부네트워크에서 220.1.2.0/24 즉 C class 대역을사용한다고가정하고 access-list를설정한예이다. 이룰은소스 ip 가 220.1.2.0/255.255.255.0 인패킷은허용하고이외의패킷은모두거부한다는의미가된다. 거부시마지막에 log 가추가되었는데, 이를통해이룰에매칭된패킷즉, 위조된패킷이보일경우에는로그에남게된다. access-list 설정을한후에는 access-group을이용하여해당인터페이스에룰을적용할차례이다. 라우터내부에서외부로나가는패킷에대한제어이므로이더넷인터페이스에적용하면 in 이되고, 시리얼인터페이스에적용하면 out 이될것이다. 아래는이더넷인터페이스에 in 으로설정한예이다. 여기에서 in 이라고해서외부에서내부로들어오는패킷에대한제어가아니라는것을주의하기바란다. [ 그림 39] access-group 설정 STEP 3. Null routing 을활용한필터링 access-list 와함께유용하게사용할수있는필터링기법으로는 blackhole 필터링이라는것이있다. 이는 access-list 와비슷한효과를내면서도더욱간편하게사용할수있는데, 다음과같은경우를생각해보자. 만약시스템이나네트워크를모니터링하던중특정ip 또는특정대역에서비정상적인시도가감지되었을경우해당 ip를차단하기위해매번기존 access-list를지우고새롭게 ip를추가하여작성하는것은여간번거로운일이아닐수없다. 이때사용할수있는것이바로 black hole 필터링인데, 명령어자체는특정한목적지 ip 또는 ip 대역에대하여 routing 테이블을 - 40 -

생성하는방식과동일하다. 다만, 특정한 ip 또는 ip 대역에대해서 Null 이라는가상의쓰레기인터페이스로보내도록함으로써패킷의통신이되지않도록하는것이다. 이의사용형식은다음과같다. interface Null0 no ip unreachables ip route < 차단하고자하는목적지 ip 또는 ip 대역 > <netmask> Null0 라우터에서는패킷이 Null 0 인터페이스로보내어져패킷이필터링될때마다패킷의소스 ip 로 icmp unreachable 이라는에러메시지를발송하게되는데, 만약필터링하는패킷이많을경우에는라우터에과부하를유발할수있기때문에 Null 인터페이스에서이에대해 icmp 에러메시지로응답하지않도록 no ip unreachables 설정을반드시하도록한다. 아래의경우 192.168.3.4 ip 를차단하는예를보여주고있다. 명령어의형식은 static routing 이므로 mask를적용할때에는 access-list 에서사용하던대로 wildcard mask 가아니라 netmask를그대로사용하여야한다는점을주의하기바란다. [ 그림 40] Null 0 인터페이스생성 위그림에서는먼저 Null 0 인터페이스를생성하고, 이인터페이스에서 unreachables 설정을하였다. no ip [ 그림 41] Null 라우팅설정 - 41 -

이후 blackhole 필터링할 ip 또는 ip 대역을설정하였다. 위의경우 123.111.222.0/24 대역에대한필터링설정으로라우터내부에서는위 ip 대역으로접근할수없고, 위 ip 대역에서라우터내부의네트워크로접근할때역시응답을받을수없어통신을할수없게된다. 물론특정 ip 만을필터링하고자한다면 255.255.255.255를이용하면된다. [ 그림 42] blackhole 필터링설정해제 물론앞서설정한필터링설정을해제하려면명령어앞에 no 를붙여서실행해주면된다. STEP 4. Unicast RPF 를이용한필터링 마지막으로살펴볼필터링기능은 Unicast RPF(Unicast Reverse-Path Forwarding) 라는것으로이를이용하면앞에서살펴본 access-list 나 blackhole 필터링을이용하여일일이 ip 나 ip 대역을지정하지않고도비정상트래픽을효율적으로필터링할수있다. Unicast RPF 의원리는인터페이스를통해들어오는패킷의소스 ip 에대해라우팅테이블을확인하여들어온인터페이스로다시나가는지확인하는것이다. 즉, URPF 가 enable 된인터페이스에 1.1.1.1 이라는소스 ip 를달고들어오는패킷이있다면라우팅테이블을확인하여만약 1.1.1.1이라는목적지로라우팅될때같은인터페이스를통하여나가는지확인하여같다면정상적인트래픽으로간주하여트래픽을통과시키고, 다르다면스푸핑된패킷으로간주하여필터링하는것이다. 만약 Unicast RPF를 serial 인터페이스에설정한다면라우팅테이블에없거나소스 ip 를위조하는형태의패킷을필터링할수있을것이고, ethernet 인터페이스에설정한다면내부에서패킷을위조하여나가는패킷을필터링할수있을것이다. 즉, serial 인터페이스에설정할경우 ingress 필터링의효과를, ethernet 인터페이스에설정할경우 egress 필터링의효과를기대할수있을것이다. - 42 -

[ 그림 43] URPF 설정 Unicast RPF를사용하려면먼저라우터에서 CEF 를설정하여야하며만약 CEF 가지원하지않으면이기능을이용할수없다. 이후 URPF를설정할해당인터페이스에설정을하면된다. [ 그림 44] CEF 가 enable 되어있지않을경우 먼저 CEF 가 enable 되어있는지아래와같이확인해보기바란다. 위와같은그림의경우 CEF 가 enable 되어있지않은것이다. [ 그림 45] URPF 설정 위그림은먼저 global config 모드에서 ip cef를실행하여 CEF를 enable 한후 serial 0 인터페이스에 URPF를설정하는예를보여주고있다. 위의경우 serial 인터페이스에설정하였으므로외부에서들어오는패킷에대해 Reverse 경로를체크하게된다. 만약, 설정이후이를해제하려면해당인터페이스모드에서 no ip verify unicast - 43 -

reverse-path 를입력하면된다. 지금까지 Unicast RPF 의장점만을언급하였지만그렇다고해서반드시모든환경에서적합한것은아니다. 특히라우터에서두개 ISP 이상과연동되어있다면이설정을하지말아야한다. 이를테면한국통신 (KT) 과하나로 (hanaro) 의 E1 회선을 2개연동하여사용한다면경우에따라 KT 로나간접속이하나로를통해들어오거나반대로하나로로나간접속이 KT를통해들어오는일이있을수있기때문이다. 이러한경우만약 Unicast RPF 가설정되어있다면비정상적인패킷으로간주하여패킷을차단해버리게되기때문이다. - 44 -

< 참고 > CEF(Cisco Express Forwarding) 라우터가 Switching을하는방법에는 Process Switching 과 Fast Switching 그리고 CEF(Cisco Express Forwarding) 이있는데, Process Switching 은패킷을전송할때마다매번라우팅테이블과 Next hop을확인후패킷을전송하는방식으로속도가느리다. 이때 config를보면아래와같이보이게된다. no ip cef interface serial 0 no ip route-cache 다음으로 Fast Switching 은패킷이통과할때처음에는앞에서설명한 Process Switching 을하고, 두번째부터는이때저장된 Cache를이용하여패킷을전송하는방식으로, Process Switching 방식에비해서스위칭이빨라진다. 이때 config를보면아래와같이보이게된다. no ip cef interface serial 0 ip route-cache 마지막으로 CEF 는 Fast Swtiching을더욱개선한방식으로아예처음부터라우팅테이블을 Cache 로복사해놓는방식이다. 이를통해패킷이통과할때바로 Cache에서응답하므로더욱속도가빨라지게된다. 이때 config를보면아래와같이보이게된다. ip cef interface serial 0 ip route-cache - 45 -

< 별첨 #1> 라우터보안체크하기 안전한라우터설정을위해서아래의항목들은반드시설정되어야할기본적인보안설정들에대해서정리를하였다. 해결방안의경우시스코라우터뿐만아니라 Alteon Switch 와 Extream Switch 등널리쓰이는스위칭장비에대한커맨드도수록하였다. 점검항목 설명및점검방법 설명 라우터접속시초기화면에비인가자의라우터접속에대하여라우터버전정보대신경고를알리는메시지가나타나도록하여야한다. 점검방법 관리자가직접텔넷으로접근해서라우터배너가노출되어지는지확인한다. 해결방법라우터배너가외배너에시스템정보등을삭제하고 이곳은 xxx입니다. 허가받지않은사부에노출이되어용자가접속하여부당한사용을할경우법적인제제을받을수있습니지는가? 다 라는식의경고성배너를삽입한다. 아래는각각의장비별배너삽입법이다 cisco router banner exec ^C Alteon Switch ( 아래의위치에배너삽입 ) /cfg/sys/notice /cfg/sys/banner Extream Switch config banner 설명원격의사용자가원격의사용자가라우터에 telnet 로그인이가능하지않도록해야한 telnet 로그인이가다. 만약패스워드가노출될경우치명적인문제로발전할수있다. 능한가? 점검방법 - 46 -

관리자가원격에서라우터에 telnet 로그인이가능한지확인한다. 해결방법 cisco router telnet listener 자체를 disable 한다. [ 그림 46] 리스너자체 off 설정 Alteon Switch /cfg/sys/tnet Extream Switch disable telnet 설명 원격에서관리를위해 HTTP 서버를운영할수있지만보안상위험하므로불필요하므로가능한제거해야한다. 점검방법 원격의사용자가관리자가직접원격에서라우터 HTTP 서버로접근가능한지확인한다. HTTP 로라우터에접근이가능한가? 해결방법 cisco router router(config)# no ip http server Alteon Switch /cfg/sys/http disable Extream Switch - 47 -

disable web 설명 원격에서보안상불필요한서비스가열려있다면라우터의사용자정보및네트워크장비에큰위험이될수있으므로반드시서비스를반드시중지하여야한다. 점검방법 보안상불필요한서 해결방법비스가작동되고있는가? cisco router 관리자가직접원격에서아래표의항목들이오픈되었는지확인한다. Telnet을통한 Tcp 포트접속시접속가능한 Tcp 포트 Tcp Port number Access Method 7 echo 9 Discard 23 Telnet 79 Finger 1993 SNMP over TCP router(config)# no service finger (finger 서비스제거 ) router(config)# no ip finger router(config)# no service tftp (tftp 서비스제거 ) 확인방법 show configuration 명령으로확인한다 Alteon Switch /cfg/slb/filt 10/sport 69 (tftp 서비스제거 ) /cfg/slb/filt 10/sport 79 (finger 서비스제거 ) 확인방법 /info/dump 명령으로확인한다. 설명 icmp 서비스가작동되어지는가? 원격에서 icmp 서비스가열려있다면 DOS 취약점이나라우터의존재가외부에노출되므로 icmp 서비스는중지하는것이좋다. - 48 -

점검방법 관리자가직접원격에서 ping 명령어를이용해서 icmp 사용여부를확인한다. 해결방법 cisco router Alteon Switch ip unreachable 기능사용한다. icmp type code 의하나로외부에서의 stealth scanning 에사용될수있으므로불필요시제거한다. /cfg/slb/filt/adv/icmp commandicmp Message type: 3(destun) : ICMP destination unreachable Extream Switch disable icmp redirects { vlan <name> } (redirects는인터넷에서 stealth scanning하는경우에사용된다.) switch > disable icmp unreachables { vlan <name>} (unreachable는인터넷에서 stealth scanning하는경우에사용된다.) 설명 원격에서 SNMP community string 이유추하기쉽다면네트워크장비에대한설정파일들이외부에노출되게된다. 원격에서 snmp 서 점검방법비스가유추하기쉬운지원격에서읽기관리자가직접원격에서진단툴을사용해서확인해본다. 및쓰기가가능한지확인한다. 해결방법 cisco router SNMP community string 을 public/private 와다른이름으로설정한다.Router(config)# snmp-server community $$$$ access-list를사용하여 SNMP get-request 및 get-request message 명령은 - 49 -

특정 ip 에서만사용가능하도록설정하여야한다. 불필요시 SNMP Community Strings 삭제방법 router > no snmp-server community $$$$ RO router > no snmp-server community xxxx RW Alteon Switch 네트워크상에보내어지는 SNMP community string 을침입자가 trap 메시지를사용할수없도록방지함. /cfg/snmp/auth enable 불필요시 SNMP Community Strings 삭제방법 /cfg/snmp/trap1 ip_address /cfg/snmp/t1comm community_string Extream Switch disable snmp access (snmp 접속을금지시킴 ) disable snmp traps (snmp trap을제거함 ) config snmp community [read-only read-write] <string> config snmp readonly access-profile [<access-profile>] none] - 50 -