목차

소개

사전 요구 사항

요구 사항

Cisco CP를 실행할 라우터 컨피그레이션

사용되는 구성 요소

표기 규칙

배경 정보

구성

네트워크 다이어그램

Cisco Configuration Professional을 통한 구성

ZFW 라우터의 명령줄 구성

다음을 확인합니다.

관련 정보

소개

이 문서에서는 Cisco CP(Cisco Configuration Professional)의 고급 방화벽 컨피그레이션 마법사를 사용하여 P2P(Peer-to-Peer) 트래픽을 차단하기 위해 Cisco IOS 라우터를 영역 기반 방화벽으로 구성하는 단계별 접근 방식을 제공합니다.

Zone-Based Policy Firewall(ZFW 또는 Zone-Policy Firewall)은 방화벽 컨피그레이션을 이전 인터페이스 기반 모델에서 더 유연하고 이해하기 쉬운 영역 기반 모델로 변경합니다. 인터페이스가 영역에 할당되고 검사 정책이 영역 간에 이동하는 트래픽에 적용됩니다. 영역 간 정책은 상당한 유연성과 세분성을 제공합니다. 따라서 동일한 라우터 인터페이스에 연결된 여러 호스트 그룹에 서로 다른 검사 정책을 적용할 수 있습니다. 영역은 네트워크의 보안 경계를 설정합니다. 영역은 트래픽이 네트워크의 다른 영역을 통과할 때 정책 제한을 받는 경계를 정의합니다. 영역 간의 ZFW의 기본 정책은 모두 거부입니다. 정책이 명시적으로 구성되지 않은 경우 영역 간에 이동하는 모든 트래픽이 차단됩니다.

P2P 애플리케이션은 인터넷에서 가장 널리 사용되는 애플리케이션 중 하나입니다. P2P 네트워크는 지렁이와 같은 악의적인 위협의 매개체 역할을 할 수 있으며, 방화벽 주위에 쉬운 경로를 제공하고 개인 정보 보호 및 보안에 대한 우려를 야기할 수 있습니다. Cisco IOS Software 릴리스 12.4(9)T는 P2P 애플리케이션에 대한 ZFW 지원을 도입했습니다. P2P 검사는 애플리케이션 트래픽에 대한 레이어 4 및 레이어 7 정책을 제공합니다. 즉, ZFW는 트래픽을 허용 또는 거부할 수 있는 기본적인 스테이트풀 검사를 제공할 수 있으며, 다양한 프로토콜의 특정 활동에 대한 세분화된 레이어 7 제어를 제공하여 다른 애플리케이션 활동이 거부되는 동안 특정 애플리케이션 활동이 허용됩니다.

Cisco CP는 고급 방화벽 컨피그레이션 마법사를 사용하여 IOS 라우터를 영역 기반 방화벽으로 구성하기 위한 간편한 단계별 접근 방식을 제공합니다.

사전 요구 사항

요구 사항

이 구성을 시도하기 전에 다음 요구 사항을 충족해야 합니다.

- IOS 라우터는 소프트웨어 버전이 12.4(9)T 이상이어야 합니다.

- Cisco CP를 지원하는 IOS 라우터 모델은 Cisco CP 릴리스 정보를 참조하십시오.

Cisco CP를 실행할 라우터 컨피그레이션

참고: Cisco 라우터에서 Cisco CP를 실행하려면 다음 컨피그레이션 단계를 수행하십시오.

Router(config)# ip http server

Router(config)# ip http secure-server

Router(config)# ip http authentication local

Router(config)# username <username> privilege 15 password 0 <password>

Router(config)# line vty 0 4

Router(config-line)# privilege level 15

Router(config-line)# login local

Router(config-line)# transport input telnet

Router(config-line)# transport input telnet ssh

Router(config-line)# exit

사용되는 구성 요소

이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.

- IOS Software 릴리스 12.4(15)T를 실행하는 Cisco 1841 IOS Router

- Cisco Configuration Professional(Cisco CP) 릴리스 2.1

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.

표기 규칙

문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 규칙을 참조하십시오.

배경 정보

이 문서의 예에서는 라우터가 P2P 트래픽을 차단하기 위해 영역 기반 방화벽으로 구성됩니다. ZFW 라우터에는 2개의 인터페이스, 즉 내부(신뢰할 수 있는) 인터페이스가 In-zone에 있고 외부(신뢰할 수 없음) 인터페이스가 Out-zone에 있습니다. ZFW 라우터는 edonkey, fasttrack, gnutella 및 kazaa2와 같은 P2P 애플리케이션을 In-zone에서 Out-zone으로 전달되는 트래픽에 대한 로깅 작업을 차단합니다.

구성

이 섹션에는 이 문서에서 설명하는 기능을 구성하기 위한 정보가 표시됩니다.

참고: 명령 조회 도구(등록된 고객만 해당)를 사용하여 이 섹션에 사용된 명령에 대한 자세한 내용을 확인하십시오.

네트워크 다이어그램

이 문서에서는 다음 네트워크 설정을 사용합니다.

Cisco Configuration Professional을 통한 구성

이 섹션에서는 마법사를 사용하여 IOS 라우터를 영역 기반 방화벽으로 구성하는 방법에 대한 단계별 절차를 설명합니다.

다음 단계를 완료하십시오.

1. Configure(구성) > Security(보안) > Firewall and ACL로 이동합니다. 그런 다음 Advanced Firewall 라디오 버튼을 선택합니다. 선택한 작업 시작을 클릭합니다.

2. 다음 화면에는 방화벽 마법사에 대한 간략한 소개가 나와 있습니다. Next(다음)를 클릭하여 방화벽 구성을 시작합니다.

3. 영역에 포함할 라우터의 인터페이스를 선택하고 Next를 클릭합니다.

4. 다음 창에는 명령 집합과 함께 High Security가 포함된 기본 정책이 표시됩니다. Close(닫기)를 클릭하여 진행합니다.

5. DNS 서버의 세부 정보를 입력하고 Next(다음)를 클릭합니다.

6. Cisco CP는 여기에 표시된 것과 같은 컨피그레이션 요약을 제공합니다. Finish(마침)를 클릭하여 컨피그레이션을 완료합니다.

자세한 컨피그레이션 요약이 이 표에 나와 있습니다. 이는 Cisco CP의 High Security 정책에 따라 기본 컨피그레이션입니다.

구성 요약

참고: 외부(신뢰할 수 없는) 인터페이스로 Cisco CP에 액세스한 인터페이스를 선택하지 마십시오. 이렇게 하면 방화벽 마법사를 완료한 후 해당 인터페이스에서 Cisco CP를 시작할 수 없습니다.

Inside(trusted) Interfaces:

FastEthernet0/1 (10.77.241.114)

Outside(untrusted) Interfaces:

FastEthernet0/0 (209.165.201.2)

Service Policy Configuration:

In-zone -> Out-zone:

Inspect TCP,UDP,H323,SIP,SCCP and other protocols

Deny packets with invalid ip address as sourceIn the below shown network diagram,

Application Inspection for HTTP:

Block HTTP port-misuse for IP,P2P

Block HTTP protocol violation

Block HTTP request methods other than post,head,get

Block http request response containing non-ascii characters

Application Inspection for Instant Messaging:

Block all services of msn,yahoo,aol with log action

Application Inspection for P2P:

Block file transfer over edonkey, fasttrack, gnutella and kazaa2

Block text-chat over edonkey

Application Inspection for Email:

Block invalid command for imap,pop3

Block SMTP session with data length over 5 MB

Self -> Out-zone:

Inspect router generated ICMP traffic

Out-zone -> Self:

Deny all other traffic.

DNS Configuration:

Primary DNS:10.77.230.45

Secondary DN

7. Save the running config to router's startup config 확인란을 선택합니다. Deliver(전달)를 클릭하여 이 컨피그레이션을 라우터로 전송합니다.

전체 컨피그레이션이 라우터에 전달됩니다. 처리하는 데 시간이 좀 걸립니다.

8. OK(확인)를 클릭하여 진행합니다.

9. 다시 OK(확인)를 클릭합니다.

이제 컨피그레이션이 적용되고 Firewall Policy(방화벽 정책) 탭 아래에 규칙으로 표시됩니다.

10. Configure(구성) > Security(보안) > Advanced Security(고급 보안) > Zones(영역)로 이동하면 연결된 영역 쌍과 함께 zone을 볼 수 있습니다. Add(추가)를 클릭하여 새 영역을 추가하거나 Edit(수정)를 클릭하여 기존 영역을 수정할 수도 있습니다.

11. Configure(구성) > Security(보안) > Advanced Security(고급 보안) > Zone Pairs(영역 쌍)로 이동하여 영역 쌍의 세부 정보를 확인합니다.

Cisco CP의 내장형 웹 페이지에서 영역/영역 쌍 및 기타 관련 정보를 수정/추가/삭제하는 방법에 대한 즉각적인 도움말을 즉시 이용할 수 있습니다.

12. 특정 P2P 애플리케이션에 대한 애플리케이션별 검사 기능을 수정하려면 Configuration(컨피그레이션) > Security(보안) > Firewall and ACL로 이동합니다. 그런 다음 Edit Firewall Policy(방화벽 정책 수정)를 클릭하고 정책 맵에서 해당 규칙을 선택합니다. Edit를 클릭합니다.

기본 컨피그레이션에 의해 차단되는 현재 P2P 애플리케이션을 표시합니다.

13. 추가 및 제거 단추를 사용하여 특정 애플리케이션을 추가/제거할 수 있습니다. 이 스크린샷은 winmx 애플리케이션을 추가하여 해당 애플리케이션을 차단하는 방법을 보여줍니다.

14. 삭제 작업을 선택하는 대신 Inspect(검사) 작업을 선택하여 심층 패킷 검사를 위해 다른 옵션을 적용할 수도 있습니다.

P2P 검사는 애플리케이션 트래픽에 대한 레이어 4 및 레이어 7 정책을 제공합니다. 즉, ZFW는 트래픽을 허용 또는 거부할 수 있는 기본적인 스테이트풀 검사를 제공할 수 있으며, 다양한 프로토콜의 특정 활동에 대한 세분화된 레이어 7 제어를 제공하여 다른 애플리케이션 활동이 거부되는 동안 특정 애플리케이션 활동이 허용됩니다. 이 애플리케이션 검사에서는 P2P 애플리케이션에 대해 다양한 유형의 특정 헤더 레벨 검사를 적용할 수 있습니다. 그누텔라에 대한 예가 다음에 표시됩니다.

15. 이에 대한 새 정책 맵을 생성하려면 P2P 옵션을 선택하고 Create를 클릭합니다.

16. gnutella 프로토콜에 대한 심층 패킷 검사를 위한 새 정책 맵을 만듭니다. Add(추가)를 클릭한 다음 New Class Map(새 클래스 맵)을 선택합니다.

17. 클래스 맵의 새 이름을 지정하고 Add(추가)를 클릭하여 일치 기준을 지정합니다.

18. 파일 전송을 일치 조건으로 사용하고 사용된 문자열은 .exe입니다. 이는 .exe 문자열을 포함하는 모든 gnutella 파일 전송 연결이 트래픽 정책에 대해 일치함을 나타냅니다. 확인을 클릭합니다.

19. OK(확인)를 다시 클릭하여 클래스 맵 컨피그레이션을 완료합니다.

20. 회사의 보안 정책에 따라 달라지는 Reset 또는 Allow 옵션을 선택합니다. OK(확인)를 클릭하여 policy-map으로 작업을 확인합니다.

이와 같은 방법으로 다른 정책 맵을 추가하여 다른 정규식을 일치 조건으로 지정하여 다른 P2P 프로토콜에 대한 심층 검사 기능을 구현할 수 있습니다.

참고: P2P 애플리케이션은 "포트 호핑" 동작 및 탐지를 피하기 위한 기타 요령뿐 아니라 프로토콜의 동작을 수정하는 P2P 애플리케이션에 대한 잦은 변경 및 업데이트로 인해 발생하는 문제로 인해 특히 탐지하기 어렵습니다. ZFW는 네이티브 방화벽 상태 기반 검사와 NBAR(Network-Based Application Recognition)의 트래픽 인식 기능을 결합하여 P2P 애플리케이션 제어를 제공합니다.

참고: P2P Application Inspection은 Layer 4 Inspection에서 지원하는 애플리케이션의 하위 집합에 대해 애플리케이션별 기능을 제공합니다.

- edonkey

- 패스트랙

- 귀텔라

- 카사2

참고: 현재 ZFW에는 "bittorrent" 애플리케이션 트래픽을 검사하는 옵션이 없습니다. BitTorrent 클라이언트는 일반적으로 일부 비표준 포트에서 실행되는 HTTP를 통해 추적기(피어 디렉토리 서버)와 통신합니다. 일반적으로 TCP 6969이지만 Torrent 관련 추적기 포트를 확인해야 할 수도 있습니다. BitTorrent를 허용하려는 경우 추가 포트를 수용하기 위한 가장 좋은 방법은 HTTP를 match 프로토콜 중 하나로 구성하고 다음 ip port-map 명령을 사용하여 HTTP에 TCP 6969를 추가하는 것입니다. ip port-map http port tcp 6969. 클래스 맵에 적용된 일치 조건으로 http 및 bitTorrent를 정의해야 합니다.

21. OK(확인)를 클릭하여 Advanced Inspection 컨피그레이션을 완료합니다.

해당 명령 집합이 라우터에 전달됩니다.

22. OK(확인)를 클릭하여 라우터에 명령 세트 복사를 완료합니다.

23. Configure(구성) > Security(보안) > Firewall and ACL(방화벽 및 ACL)의 Edit Firewall Policy(방화벽 정책 수정) 탭에서 새로운 규칙이 발생하는 것을 관찰할 수 있습니다.

ZFW 라우터의 명령줄 구성

Cisco CP의 이전 섹션에 있는 컨피그레이션에서는 ZFW 라우터에서 다음 컨피그레이션을 수행합니다.

ZBF 라우터

ZBF-Router#show run

Building configuration...

Current configuration : 9782 bytes

!

version 12.4

service timestamps debug datetime msec

service timestamps log datetime msec

no service password-encryption

!

hostname ZBF-Router

!

boot-start-marker

boot-end-marker

!

logging buffered 51200 warnings

!

no aaa new-model

ip cef

!

!

!

!

ip name-server 10.77.230.45

!

multilink bundle-name authenticated

parameter-map type protocol-info msn-servers

server name messenger.hotmail.com

server name gateway.messenger.hotmail.com

server name webmessenger.msn.com

parameter-map type protocol-info aol-servers

server name login.oscar.aol.com

server name toc.oscar.aol.com

server name oam-d09a.blue.aol.com

parameter-map type protocol-info yahoo-servers

server name scs.msg.yahoo.com

server name scsa.msg.yahoo.com

server name scsb.msg.yahoo.com

server name scsc.msg.yahoo.com

server name scsd.msg.yahoo.com

server name cs16.msg.dcn.yahoo.com

server name cs19.msg.dcn.yahoo.com

server name cs42.msg.dcn.yahoo.com

server name cs53.msg.dcn.yahoo.com

server name cs54.msg.dcn.yahoo.com

server name ads1.vip.scd.yahoo.com

server name radio1.launch.vip.dal.yahoo.com

server name in1.msg.vip.re2.yahoo.com

server name data1.my.vip.sc5.yahoo.com

server name address1.pim.vip.mud.yahoo.com

server name edit.messenger.yahoo.com

server name messenger.yahoo.com

server name http.pager.yahoo.com

server name privacy.yahoo.com

server name csa.yahoo.com

server name csb.yahoo.com

server name csc.yahoo.com

parameter-map type regex ccp-regex-nonascii

pattern [^\x00-\x80]

!

!

!

crypto pki trustpoint TP-self-signed-1742995674

enrollment selfsigned

subject-name cn=IOS-Self-Signed-Certificate-1742995674

revocation-check none

rsakeypair TP-self-signed-1742995674

!

!

crypto pki certificate chain TP-self-signed-1742995674

certificate self-signed 02

30820242 308201AB A0030201 02020102 300D0609 2A864886 F70D0101 04050030

31312F30 2D060355 04031326 494F532D 53656C66 2D536967 6E65642D 43657274

69666963 6174652D 31373432 39393536 3734301E 170D3130 31313236 31303332

32315A17 0D323030 31303130 30303030 305A3031 312F302D 06035504 03132649

4F532D53 656C662D 5369676E 65642D43 65727469 66696361 74652D31 37343239

39353637 3430819F 300D0609 2A864886 F70D0101 01050003 818D0030 81890281

8100A84A 980D15F0 6A6B5F1B 5A3359DE 5D552EFE FAA8079B DA927DA2 4AF210F0

408131CE BB5B0189 FD82E22D 6A6284E3 5F4DB2A7 7517772B 1BC5624E A1A6382E

6A07EE71 E93A98C9 B8494A55 0CDD6B4C 442065AA DBC9D9CC 14D10B65 2FEFECC8

AA9B3064 59105FBF B9B30219 2FD53ECA 06720CA1 A6D30DA5 564FCED4 C53FC7FD

835B0203 010001A3 6A306830 0F060355 1D130101 FF040530 030101FF 30150603

551D1104 0E300C82 0A5A4246 2D526F75 74657230 1F060355 1D230418 30168014

0BDBE585 15377DCA 5F00A1A2 6644EC22 366DE590 301D0603 551D0E04 1604140B

DBE58515 377DCA5F 00A1A266 44EC2236 6DE59030 0D06092A 864886F7 0D010104

05000381 810037F4 8EEC7AF5 85429563 F78F2F41 A060EEE8 F23D8F3B E0913811

A143FC44 8CCE71C3 A5E9D979 C2A8CD38 C272A375 4FCD459B E02A9427 56E2F1A0

DA190B50 FA091669 CD8C066E CD1A095B 4E015326 77B3E567 DFD55A71 53220F86

F006D31E 02CB739E 19D633D6 61E49866 C31AD865 DC7F4380 FFEDDBAB 89E3B3E9

6139E472 DC62

quit

!

!

username cisco privilege 15 password 0 cisco123

archive

log config

hidekeys

!

!

class-map type inspect match-all sdm-cls-im

match protocol ymsgr

class-map type inspect imap match-any ccp-app-imap

match  invalid-command

class-map type inspect match-any ccp-cls-protocol-p2p

match protocol  signature

match protocol gnutella signature

match protocol kazaa2 signature

match protocol fasttrack signature

match protocol bitTorrent signature

class-map type inspect smtp match-any ccp-app-smtp

match  data-length gt 5000000

class-map type inspect http match-any ccp-app-nonascii

match  req-resp header regex ccp-regex-nonascii

class-map type inspect match-any CCP-Voice-permit

match protocol h323

match protocol skinny

match protocol sip

class-map type inspect gnutella match-any ccp-class-gnutella

match  file-transfer .exe

class-map type inspect match-any ccp-cls-insp-traffic

match protocol dns

match protocol https

match protocol icmp

match protocol imap

match protocol pop3

match protocol tcp

match protocol udp

class-map type inspect match-all ccp-insp-traffic

match class-map ccp-cls-insp-traffic

class-map type inspect match-any ccp-cls-icmp-access

match protocol icmp

match protocol tcp

match protocol udp

!

!--- Output suppressed

!

class-map type inspect match-all sdm-cls-p2p

match protocol gnutella

class-map type inspect match-all ccp-protocol-pop3

match protocol pop3

class-map type inspect kazaa2 match-any ccp-cls-p2p

match  file-transfer

class-map type inspect pop3 match-any ccp-app-pop3

match  invalid-command

class-map type inspect match-all ccp-protocol-p2p

match class-map ccp-cls-protocol-p2p

class-map type inspect match-all ccp-protocol-im

match class-map ccp-cls-protocol-im

class-map type inspect match-all ccp-invalid-src

match access-group 100

class-map type inspect match-all ccp-icmp-access

match class-map ccp-cls-icmp-access

class-map type inspect http match-any ccp-app-httpmethods

match  request method bcopy

match  request method bdelete

match  request method bmove

match  request method bpropfind

match  request method bproppatch

match  request method connect

match  request method copy

match  request method delete

match  request method edit

match  request method getattribute

match  request method getattributenames

match  request method getproperties

match  request method index

match  request method lock

match  request method mkcol

match  request method mkdir

match  request method move

match  request method notify

match  request method options

match  request method poll

match  request method post

match  request method propfind

match  request method proppatch

match  request method put

match  request method revadd

match  request method revlabel

match  request method revlog

match  request method revnum

match  request method save

match  request method search

match  request method setattribute

match  request method startrev

match  request method stoprev

match  request method subscribe

match  request method trace

match  request method unedit

match  request method unlock

match  request method unsubscribe

class-map type inspect http match-any ccp-http-blockparam

match  request port-misuse im

match  request port-misuse p2p

match  request port-misuse tunneling

match  req-resp protocol-violation

class-map type inspect match-all ccp-protocol-imap

match protocol imap

class-map type inspect match-all ccp-protocol-smtp

match protocol smtp

class-map type inspect match-all ccp-protocol-http

match protocol http

!

!

policy-map type inspect ccp-permit-icmpreply

class type inspect ccp-icmp-access

inspect

class class-default

pass

!

!--- Output suppressed

!

policy-map type inspect http ccp-action-app-http

class type inspect http ccp-http-blockparam

log

reset

class type inspect http ccp-app-httpmethods

log

reset

class type inspect http ccp-app-nonascii

log

reset

class class-default

policy-map type inspect smtp ccp-action-smtp

class type inspect smtp ccp-app-smtp

reset

class class-default

policy-map type inspect imap ccp-action-imap

class type inspect imap ccp-app-imap

log

reset

class class-default

policy-map type inspect pop3 ccp-action-pop3

class type inspect pop3 ccp-app-pop3

log

reset

class class-default

policy-map type inspect ccp-inspect

class type inspect ccp-invalid-src

drop log

class type inspect ccp-protocol-http

inspect

service-policy http ccp-action-app-http

class type inspect ccp-protocol-smtp

inspect

service-policy smtp ccp-action-smtp

class type inspect ccp-protocol-imap

inspect

service-policy imap ccp-action-imap

class type inspect ccp-protocol-pop3

inspect

service-policy pop3 ccp-action-pop3

class type inspect sdm-cls-p2p

inspect

!

!--- Output suppressed

!

class type inspect ccp-protocol-im

drop log

class type inspect ccp-insp-traffic

inspect

class type inspect CCP-Voice-permit

inspect

class class-default

pass

policy-map type inspect ccp-permit

class class-default

policy-map type inspect p2p ccp-pmap-gnutella

class type inspect gnutella ccp-class-gnutella

!

zone security out-zone

zone security in-zone

zone-pair security ccp-zp-self-out source self destination out-zone

service-policy type inspect ccp-permit-icmpreply

zone-pair security ccp-zp-in-out source in-zone destination out-zone

service-policy type inspect ccp-inspect

zone-pair security ccp-zp-out-self source out-zone destination self

service-policy type inspect ccp-permit

!

!

!

interface FastEthernet0/0

description $FW_OUTSIDE$

ip address 209.165.201.2 255.255.255.224

zone-member security out-zone

duplex auto

speed auto

!

interface FastEthernet0/1

description $FW_INSIDE$

ip address 10.77.241.114 255.255.255.192

zone-member security in-zone

duplex auto

speed auto

!

!

!--- Output suppressed

!

!

ip http server

ip http authentication local

ip http secure-server

!

!

!--- Output suppressed

!

!

!

control-plane

!

!

line con 0

line aux 0

line vty 0 4

privilege level 15

login local

transport input ssh

!

scheduler allocate 20000 1000

!

webvpn cef

end

ZBF-Router#

다음을 확인합니다.

이 섹션을 사용하여 컨피그레이션이 제대로 작동하는지 확인합니다.

Output Interpreter 도구(등록된 고객만 해당)(OIT)는 특정 show 명령을 지원합니다. OIT를 사용하여 show 명령 출력의 분석을 봅니다.

- ZBF-Router#show policy-map type inspect zone-pair sessions - 모든 기존 영역 쌍에 대한 런타임 검사 유형 정책 맵 통계를 표시합니다.

관련 정보

- Zone-Based Policy Firewall 설계 및 애플리케이션 가이드

- Cisco IOS Firewall Classic 및 Zone-Based Virtual Firewall 애플리케이션 컨피그레이션 예

- Cisco Configuration Professional 홈 페이지