이 문서에서는 NBAR(Network Based Application Recognition)를 사용하여 내부 네트워크에서 인터넷으로 P2P(peer-to-peer) 트래픽을 차단하도록 Cisco IOS® 라우터를 구성하는 방법에 대해 설명합니다.
NBAR는 네트워크에서 사용되는 특정 네트워크 프로토콜 및 네트워크 애플리케이션을 인식합니다.프로토콜 또는 애플리케이션이 NBAR에서 인식되면 MQC(Modular Quality of Service Command-Line Interface)를 사용하여 이러한 프로토콜 또는 애플리케이션과 관련된 패킷을 클래스로 그룹화할 수 있습니다.이러한 클래스는 패킷이 특정 기준을 준수하는지 여부에 따라 그룹화됩니다.
NBAR의 경우, 조건은 패킷이 특정 프로토콜과 일치하는지 아니면 NBAR에 알려진 애플리케이션과 일치하는지를 결정합니다.MQC를 사용하면 하나의 네트워크 프로토콜(예: Citrix)을 사용하는 네트워크 트래픽을 하나의 트래픽 클래스에 배치할 수 있으며, 다른 네트워크 프로토콜(예: gnutella)과 일치하는 트래픽은 다른 트래픽 클래스에 배치할 수 있습니다.나중에 트래픽 정책(정책 맵)을 사용하여 각 클래스 내의 네트워크 트래픽에 적절한 QoS 처리를 제공할 수 있습니다. NBAR에 대한 자세한 내용은 Cisco IOS Quality of Service 솔루션 컨피그레이션 가이드의 NBAR를 사용하여 네트워크 트래픽 분류 섹션을 참조하십시오.
P2P 트래픽을 차단하도록 NBAR를 구성하기 전에 CEF(Cisco Express Forwarding)를 활성화해야 합니다.
CEF를 활성화하려면 글로벌 컨피그레이션 모드에서 ip cef를 사용합니다.
Hostname(config)#ip cef
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
Cisco 2801 라우터(Cisco IOS® Software 릴리스 12.4(15)T 포함)
Cisco SDM(Security Device Manager) 버전 2.5
참고: SDM이 라우터를 구성하도록 허용하려면 SDM을 사용하여 기본 라우터 컨피그레이션을 참조하십시오.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참고하십시오.
NBAR(Network-Based Application Recognition)는 다양한 프로토콜과 애플리케이션을 인식하고 분류하는 분류 엔진입니다.NBAR가 프로토콜 또는 애플리케이션을 인식하고 분류할 때 해당 애플리케이션 또는 해당 프로토콜을 사용하는 트래픽에 적절한 QoS(Quality of Service)를 적용하도록 네트워크를 구성할 수 있습니다.
NBAR는 다음 기능을 수행합니다.
애플리케이션 및 프로토콜 식별(레이어 4 ~ 레이어 7)
NBAR는 다음을 사용하는 애플리케이션을 분류할 수 있습니다.
정적으로 할당된 TCP(Transfer Control Protocol) 및 UDP(User Datagram Protocol) 포트 번호입니다.
비 UDP 및 비 TCP IP 프로토콜.
연결 설정 중에 협상된 동적으로 할당된 TCP 및 UDP 포트 번호.애플리케이션 및 프로토콜을 분류하려면 스테이트풀 검사가 필요합니다.스테이트풀 검사는 할당이 이루어지는 데이터 연결 포트에 제어 연결을 전달하여 분류될 데이터 연결을 검색하는 기능입니다.
하위 포트 분류:게시된 애플리케이션 이름을 기반으로 HTTP(URL, mime 또는 호스트 이름) 및 Citrix 애플리케이션 ICA(Independent Computing Architecture) 트래픽 분류
심층 패킷 검사 및 여러 애플리케이션별 특성을 기반으로 한 분류RTP(Real-Time Transport Protocol) 페이로드 분류는 RTP 헤더의 여러 특성을 기반으로 패킷이 RTP로 분류되는 이 알고리즘을 기반으로 합니다.
프로토콜 검색
프로토콜 검색은 인터페이스당 애플리케이션 및 프로토콜 통계(패킷 수, 바이트 수 및 비트 속도)를 수집하는 일반적으로 사용되는 NBAR 기능입니다.GUI 기반 관리 도구는 NBAR PD MIB(Management Information Base)에서 SNMP 통계를 폴링하여 이 정보를 그래픽으로 표시할 수 있습니다. 다른 네트워킹 기능과 마찬가지로, 이 기능을 프로덕션 네트워크에 구축하기 전에 성능 및 확장성 특성을 이해하는 것이 중요합니다.소프트웨어 기반 플랫폼에서는 CPU 사용률에 미치는 영향과 이 기능이 활성화된 상태에서 지속 가능한 데이터 속도가 고려됩니다.특정 인터페이스에서 NBAR로 알려진 모든 프로토콜의 트래픽을 검색하도록 NBAR를 구성하려면 인터페이스 컨피그레이션 모드 또는 VLAN 컨피그레이션 모드에서 ip nbar protocol-discovery 명령을 사용합니다.트래픽 검색을 비활성화하려면 no ip nbar protocol-discovery 명령을 사용합니다.
이 섹션에서는 이 문서에 설명된 기능을 구성하는 정보를 제공합니다.
참고: P2P 프로토콜의 특성 때문에 일부 P2P 트래픽을 완전히 차단할 수 없습니다.이러한 P2P 프로토콜은 트래픽을 완전히 차단하려는 DPI 엔진을 우회하도록 동적으로 시그니처를 변경합니다.따라서 대역폭을 완전히 차단하는 대신 제한할 것을 권장합니다.(이 트래픽의 대역폭을 조절합니다.대역폭을 매우 적게 제공합니다.그러나 연결을 통과하도록 합니다.)
참고: 명령 조회 도구(등록된 고객만 해당)를 사용하여 이 섹션에 사용된 명령에 대한 자세한 내용을 확인하십시오.
이 문서에서는 다음 네트워크 설정을 사용합니다.
Cisco IOS 라우터에서 P2P 트래픽을 차단하기 위한 구성 |
---|
R1#show run Building configuration... Current configuration : 4543 bytes ! version 12.4 service timestamps debug datetime msec service timestamps log datetime msec service password-encryption ! hostname R1 ! logging buffered 4096 enable secret 5 $1$bKq9$AHOxTgk6d3hcMGn6jTGxs/ ! aaa new-model ! ! ! ! aaa session-id common !--- IP CEF should be enabled at first to block P2P traffic. !--- P2P traffic cannot be blocked when IPC CEF is disabled. ip cef ! !--- Configure the user name and password with Privilege level 15 !--- to get full access when using SDM for configuring the router. username cisco123 privilege 15 password 7 121A0C0411045D5679 secure boot-image secure boot-config archive log config hidekeys ! ! ! !--- Configure the class map named p2p to match the P2P protocols !--- to be blocked with this class map p2p. class-map match-any p2p !--- Mention the P2P protocols to be blocked in order to block the !--- P2P traffic flow between the required networks. edonkey, !--- fasttrack, gnutella, kazaa2, skype are some of the P2P !--- protocols used for P2P traffic flow. This example !--- blocks these protocols. match protocol edonkey match protocol fasttrack match protocol gnutella match protocol kazaa2 match protocol winmx match protocol skype !--- The access list created is now mapped with the class map P2P !--- to specify the interesting traffic. match access-group 102 ! ! !--- Here the policy map named SDM-QoS-Policy-2 is created, and the !--- configured class map p2p is attached to this policy map. !--- Drop is the command to block the P2P traffic. policy-map SDM-QoS-Policy-2 class p2p drop ! ! ! !--- Below is the basic interface configuration on the router. interface FastEthernet0/0 ip address 10.77.241.109 255.255.255.192 duplex auto speed auto ! interface FastEthernet0/1 ip address 10.10.10.2 255.255.255.0 !--- The command ip nbar protocol-discovery enables NBAR !--- protocol discovery on this interface where the QoS !--- policy configured is being used. ip nbar protocol-discovery duplex auto speed auto !--- Use the service-policy command to attach a policy map to !--- an input interface so that the interface uses this policy map. service-policy input SDM-QoS-Policy-2 ! ip route 10.77.241.0 255.255.255.0 10.10.10.2 ip route 10.77.0.0 255.255.0.0 10.77.241.65 ! !--- Configure the below commands to enable SDM !--- access to the Cisco routers. ip http server ip http authentication local no ip http secure-server ! !--- Configure the access lists and map them to the configured class map. !--- Here the access list 102 is mapped to the class map p2p. The access !--- lists are created for both Incoming and outgoing traffic through !--- the inside network interface. access-list 102 remark SDM_ACL Category=256 access-list 102 remark Outgoing Traffic access-list 102 permit ip 10.10.10.0 0.0.0.255 10.77.241.0 0.0.0.255 access-list 102 remark Incoming Traffic access-list 102 permit ip 10.77.241.0 0.0.0.255 10.10.10.0 0.0.0.255 ! ! line con 0 exec-timeout 0 0 line aux 0 password 7 02250C520807082E01165E41 line vty 0 4 exec-timeout 0 0 password 7 05080F1C22431F5B4A transport input all ! ! webvpn cef end |
Cisco IOS 라우터에서 P2P 트래픽 차단을 구성하려면 다음 단계를 완료합니다.
참고: 특정 인터페이스에서 NBAR로 알려진 모든 프로토콜의 트래픽을 검색하도록 NBAR를 구성하려면 ip nbar protocol-discovery 명령을 인터페이스 컨피그레이션 모드 또는 VLAN 컨피그레이션 모드에서 사용하여 트래픽 검색을 활성화해야 합니다.구성된 QoS 정책을 사용 중인 필수 인터페이스에서 프로토콜 검색을 구성한 후 SDM 컨피그레이션을 진행합니다.
Hostname#config t Hostname(config)#interface fastEthernet 0/1 Hostname(config-if)#ip nbar protocol-discovery Hostname(config-if)#end
브라우저를 열고 SDM 액세스를 위해 구성된 라우터의 IP 주소를 입력합니다.예: https://<SDM_Router_IP_Address>
브라우저에서 SSL 인증서 신뢰성과 관련된 경고를 승인해야 합니다.기본 사용자 이름과 비밀번호는 모두 비어 있습니다.
라우터가 SDM 응용 프로그램을 다운로드할 수 있도록 이 창을 표시합니다.이 예에서는 응용 프로그램을 로컬 컴퓨터에 로드하며 Java 애플릿에서 실행되지 않습니다.
SDM 다운로드가 지금 시작됩니다.
SDM Launcher가 다운로드되면, 소프트웨어를 설치하고 Cisco SDM Launcher를 실행하기 위해 프롬프트에 의해 지시된 단계를 완료합니다.
사용자 이름과 암호를 지정한 경우 입력하고 확인을 클릭합니다.
이 예에서는 cisco123을 사용자 이름으로 사용하고 cisco123을 비밀번호로 사용합니다.
Configure(구성) > QoS(서비스 품질)를 선택하고 SDM 홈 페이지에서 Edit QoS Policy(QoS 정책 수정) 탭을 클릭합니다.
View Policy on interface 드롭다운 목록에서 인터페이스 이름을 선택한 다음 In Direction 드롭다운 목록에서 트래픽 흐름의 방향(인바운드 또는 아웃바운드)을 선택합니다.
이 예에서 인터페이스는 FastEthernet 0/1이고 방향은 인바운드입니다.
인터페이스에 대한 새 QoS 클래스를 추가하려면 Add를 클릭합니다.
Add a QoS Class 대화 상자가 나타납니다.
새 클래스를 만들려면 클래스 이름 라디오 버튼을 클릭하고 클래스 이름을 입력합니다.그렇지 않으면 기본 클래스를 사용하려면 Class Default 라디오 버튼을 클릭합니다.
이 예에서는 p2p라는 새 클래스를 만듭니다.
Classification(분류) 영역에서 Any 라디오 버튼 또는 Match(일치) 옵션의 All(모두) 라디오 버튼을 클릭합니다.
이 예에서는 라우터에서 class-map match-any p2p 명령을 실행하는 Any Match 옵션을 사용합니다.
Classification 목록에서 Protocol을 선택하고 Edit를 클릭하여 프로토콜 매개변수를 편집합니다.
Edit Match Protocol Values 대화 상자가 나타납니다.
Available Protocol Values 목록에서 차단할 각 P2P 프로토콜을 선택하고 오른쪽 화살표(>>) 버튼을 클릭하여 각 프로토콜을 Selected Protocol Values 목록으로 이동합니다.
참고: NBAR를 사용하여 P2P 트래픽을 분류하려면 소프트웨어 다운로드 페이지로 이동하여 최신 P2P PDLM(Protocol Description Language Module) 소프트웨어 및 Readme 파일을 다운로드합니다.다운로드할 수 있는 P2P PDLM에는 WinMx, Bittorrent, Kaza2, Gnutella, eDonkey, Fasttrack 및 Napster가 있습니다.IOS에 따라 최신 PDLM 버전이 필요하지 않을 수도 있습니다. 일부는 IOS에 통합될 수 있기 때문입니다(예: Fasttrack 및 Napster). 다운로드된 후 PDLM을 라우터의 플래시에 복사하고 ip nbar pdlm <flash_device>:<filename>.pdlm을 구성하여 IOS에 로드합니다.show ip nbar pdlm 명령을 실행하여 성공적으로 로드되었는지 확인합니다.로드된 다음에는 클래스 맵 컨피그레이션 아래의 match protocol 문에서 사용할 수 있습니다.
확인을 클릭합니다.
QoS 클래스 추가 대화 상자의 분류 목록에서 액세스 규칙을 선택하고 편집을 클릭하여 새 액세스 규칙을 생성합니다.p2p 클래스 맵에 기존 액세스 규칙을 매핑할 수도 있습니다.
Edit Match ACL 대화 상자가 나타납니다.
Access Rule(액세스 규칙) 버튼(...)을 클릭하고 적절한 옵션을 선택합니다.이 예에서는 새 ACL을 생성합니다.
Add a Rule 대화 상자가 나타납니다.
Add a Rule 대화 상자에서 ACL의 Name/Number 필드에 생성할 ACL의 이름 또는 번호를 입력합니다.
Type 드롭다운 목록에서 생성할 ACL의 유형(Extended Rule 또는 Standard Rule)을 선택합니다.
ACL 102에 세부 정보를 추가하려면 Add를 클릭합니다.
Add an Extended Rule Entry 대화 상자가 나타납니다.
Add an Extended Rule Entry(확장 규칙 항목 추가) 대화 상자의 Select an action(작업 선택) 드롭다운 목록에서 작업(Permit 또는 Deny)을 선택하여 ACL 규칙이 소스와 대상 네트워크 간의 트래픽을 허용할지 또는 거부할지를 나타냅니다.이 규칙은 내부 네트워크에서 외부 네트워크로 나가는 트래픽을 위한 것입니다.
Source Host/Network 및 Destination Host/Network 영역에서 소스 및 대상 네트워크에 대한 정보를 각각 입력합니다.
Protocol and Service(프로토콜 및 서비스) 영역에서 적절한 라디오 버튼을 클릭합니다.이 예에서는 IP를 사용합니다.
이 ACL 규칙에 대해 일치하는 패킷을 로깅하려면 Log Matches against this entry 확인란을 선택합니다.
확인을 클릭합니다.
Add a Rule 대화 상자에서 OK를 클릭합니다.
Edit Match ACL(일치 ACL 수정) 대화 상자에서 OK(확인)를 클릭합니다.
QoS 클래스 추가 대화 상자에서 삭제 확인란을 선택하여 라우터가 P2P 트래픽을 강제로 차단합니다.
확인을 클릭합니다.
인터페이스에 매핑된 QoS 정책이 없으므로 다음 경고 메시지가 기본적으로 표시됩니다.
SDM은 QoS 정책을 자동으로 생성하고 구성된 클래스 맵을 정책에 연결합니다.이 SDM 구성 단계에 해당하는 CLI(Command-Line Interface)는 다음과 같습니다.
R1(config)#policy-map SDM-QoS-Policy-2 R1(config-pmap)#class p2p R1(config-pmap-c)#drop R1(config-pmap-c)#end R1#
Edit QoS Policy(QoS 정책 수정) 탭에서 Apply Changes(변경 사항 적용)를 클릭하여 라우터에 컨피그레이션을 전달합니다.
Application Firewall - Instant Message Traffic Enforcement(애플리케이션 방화벽 - 인스턴트 메시지 트래픽 시행) 기능을 사용하면 사용자가 네트워크에 허용할 인스턴트 메신저 트래픽 유형을 지정하는 정책을 정의하고 적용할 수 있습니다.애플리케이션 im 아래 appfw 정책에서 구성할 때 여러 메신저(AOL, YAHOO, MSN)를 동시에 제어할 수 있습니다.따라서 다음과 같은 추가 기능을 적용할 수도 있습니다.
방화벽 검사 규칙 구성
페이로드에 대한 심도 있는 패킷 검사(텍스트 채팅 등의 서비스 찾기)
참고: Application Firewall-Instant Message Traffic Enforcement 기능은 Cisco IOS 버전 12.4(4)T 이상에서 지원됩니다.
애플리케이션 방화벽은 정적 서명 모음으로 구성된 애플리케이션 정책을 사용하여 보안 위반을 탐지합니다.정적 서명은 작업을 수행하기 전에 충족해야 하는 프로토콜 조건을 지정하는 매개 변수의 컬렉션입니다.이러한 프로토콜 조건 및 반응은 CLI를 통해 최종 사용자가 애플리케이션 정책을 형성하도록 정의합니다.
Cisco IOS 애플리케이션 방화벽은 인스턴트 네이티브 메신저 애플리케이션 정책을 지원하도록 개선되었습니다.따라서 Cisco IOS 방화벽은 이제 AOL AIM(Instant Messenger), Yahoo!용 인스턴트 메신저 서버에 대한 사용자 연결을 탐지하고 금지할 수 있습니다.Messenger 및 MSN Messenger 인스턴트 메시징 서비스입니다.이 기능은 텍스트, 음성, 비디오 및 파일 전송 기능을 포함하여 지원되는 서비스에 대한 모든 연결을 제어합니다.세 개의 애플리케이션은 개별적으로 거부하거나 허용할 수 있습니다.텍스트 채팅 서비스가 허용되고 음성, 파일 전송, 비디오 및 기타 서비스가 제한되도록 각 서비스를 개별적으로 제어할 수 있습니다.이 기능은 HTTP(웹) 트래픽으로 위장된 인스턴트 메신저(IM) 애플리케이션 트래픽을 제어하는 기존 애플리케이션 검사 기능을 강화합니다.자세한 내용은 애플리케이션 방화벽 - 인스턴트 메시지 트래픽 시행을 참조하십시오.
참고: IM 애플리케이션이 차단되면 연결이 재설정되고 syslog 메시지가 적절히 생성됩니다.
이 섹션을 사용하여 컨피그레이션이 제대로 작동하는지 확인합니다.
Output Interpreter 도구(등록된 고객만 해당)(OIT)는 특정 show 명령을 지원합니다.OIT를 사용하여 show 명령 출력의 분석을 봅니다.
show ip nbar pdlm—NBAR에서 사용 중인 PDLM을 표시하려면 특권 EXEC 모드에서 show ip nbar pdlm 명령을 사용합니다.
Router#show ip nbar pdlm The following PDLMs have been loaded: flash://edonkey.pdlm flash://fasttrack.pdlm flash://gnutella.pdlm flash://kazaa2.pdlm
show ip nbar version - Cisco IOS 릴리스의 NBAR 소프트웨어 버전 또는 Cisco IOS 라우터의 NBAR PDLM 버전에 대한 정보를 표시하려면 특권 EXEC 모드에서 show ip nbar version 명령을 사용합니다.
R1#show ip nbar version NBAR software version: 6 1 base Mv: 2 2 ftp Mv: 2 3 http Mv: 9 4 static Mv: 6 5 tftp Mv: 1 6 exchange Mv: 1 7 vdolive Mv: 1 8 sqlnet Mv: 1 9 rcmd Mv: 1 10 netshow Mv: 1 11 sunrpc Mv: 2 12 streamwork Mv: 1 13 citrix Mv: 10 14 fasttrack Mv: 2 15 gnutella Mv: 4 16 kazaa2 Mv: 7 17 custom-protocols Mv: 1 18 rtsp Mv: 4 19 rtp Mv: 5 20 mgcp Mv: 2 21 skinny Mv: 1 22 h323 Mv: 1 23 sip Mv: 1 24 rtcp Mv: 2 25 edonkey Mv: 5 26 winmx Mv: 3 27 bittorrent Mv: 4 28 directconnect Mv: 2 29 skype Mv: 1 {<No.>}<PDLM name> Mv: <PDLM Version>, {Nv: <NBAR Software Version>; <File name> }{Iv: <PDLM Interdependency Name> - <PDLM Interdependency Version>}
show policy-map interface - 지정된 인터페이스 또는 하위 인터페이스 또는 인터페이스의 특정 영구 가상 회로(PVC)에 모든 서비스 정책에 대해 구성된 모든 클래스의 패킷 통계를 표시하려면 특권 EXEC 모드에서 show policy-map interface 명령을 사용합니다.
R1#show policy-map interface fastEthernet 0/1 FastEthernet0/1 Service-policy input: SDM-QoS-Policy-2 Class-map: p2p (match-any) 0 packets, 0 bytes 5 minute offered rate 0 bps, drop rate 0 bps Match: protocol edonkey 0 packets, 0 bytes 5 minute rate 0 bps Match: protocol fasttrack 0 packets, 0 bytes 5 minute rate 0 bps Match: protocol gnutella 0 packets, 0 bytes 5 minute rate 0 bps Match: protocol kazaa2 0 packets, 0 bytes 5 minute rate 0 bps Match: protocol winmx 0 packets, 0 bytes 5 minute rate 0 bps Match: access-group 102 0 packets, 0 bytes 5 minute rate 0 bps Match: protocol skype 0 packets, 0 bytes 5 minute rate 0 bps drop Class-map: class-default (match-any) 0 packets, 0 bytes 5 minute offered rate 0 bps, drop rate 0 bps Match: any
show running-config policy-map - 모든 정책 맵 컨피그레이션 및 기본 정책 맵 컨피그레이션을 표시하려면 show running-config policy-map 명령을 사용합니다.
R1#show running-config policy-map Building configuration... Current configuration : 57 bytes ! policy-map SDM-QoS-Policy-2 class p2p drop ! end
show running-config class-map - 클래스 맵 컨피그레이션에 대한 정보를 표시하려면 show running-config class-map 명령을 사용합니다.
R1#show running-config class-map Building configuration... Current configuration : 178 bytes ! class-map match-any p2p match protocol edonkey match protocol fasttrack match protocol gnutella match protocol kazaa2 match protocol winmx match access-group 102 ! end
이 섹션에서는 컨피그레이션 문제를 해결하는 데 사용할 수 있는 정보를 제공합니다.
Output Interpreter 도구(등록된 고객만 해당)(OIT)는 특정 show 명령을 지원합니다.OIT를 사용하여 show 명령 출력의 분석을 봅니다.
참고: debug 명령을 사용하기 전에 디버그 명령에 대한 중요 정보를 참조하십시오.
show access-list - Cisco IOS 라우터에서 실행되는 액세스 목록 컨피그레이션을 표시하려면 show access-list 명령을 사용합니다.
R1#show access-lists Extended IP access list 102 10 permit ip 10.10.10.0 0.0.0.255 10.77.241.0 0.0.0.255 20 permit ip 10.77.241.0 0.0.0.255 10.10.10.0 0.0.0.255