目錄

簡介

必要條件

需求

採用元件

背景資訊

網路圖表

設定

平台UTD配置

服務平面和資料平面配置。

驗證

疑難排解

調試

相關資訊

簡介

本文說明如何使用IOx方法在Cisco整合多業務路由器(ISR)4000系列上部署Snort IPS和Snort IDS功能。

必要條件

需求

思科建議您瞭解以下主題：

- Cisco Integrated Services Routers 4000系列，至少具有8GB DRAM。

- 基本IOS-XE命令體驗。

- 基本Snort知識。

- 1年或3年的簽名訂閱是必需的

- IOS-XE 16.10.1a及更高版本。

採用元件

本文中的資訊係根據以下軟體和硬體版本：

- 運行17.9.3a版本的ISR4331/K9。

- 用於17.9.3a版的UTD引擎TAR。

- ISR4331/K9的SecurityK9許可證。

VMAN方法現在已棄用。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

背景資訊

Snort IPS功能為思科4000系列整合服務路由器和Cisco Cloud Services Router 1000v系列上的分支機構啟用入侵防禦系統(IPS)或入侵檢測系統(IDS)。此功能使用開源Snort啟用IPS和IDS功能。

Snort是一種開源IPS，它執行即時流量分析，並在IP網路上檢測到威脅時生成警報。它還可以執行協定分析、內容搜尋或行進，並檢測各種攻擊和探測，如緩衝區溢位、隱藏埠掃描等。Snort引擎在思科整合多業務路由器4000系列和雲服務路由器1000v系列上作為虛擬容器服務運行。

Snort IPS功能可作為網路入侵檢測或防禦模式，在Cisco Integrated Services Routers 4000系列和Cloud Services Router 1000v系列上提供IPS或IDS功能。

- 監控網路流量並根據定義的規則集進行分析。

- 執行附加分類。

- 根據匹配的規則呼叫操作。

基於網路要求。Snort IPS可以作為IPS或IDS啟用。在IDS模式下，Snort會檢查流量並報告警報，但不會採取任何操作來防止攻擊。在IPS模式中，會像IDS一樣檢查流量並報告警報，但會採取措施來防止攻擊。

Snort IPS作為ISR路由器的服務運行。服務容器使用虛擬化技術為應用提供思科裝置上的託管環境。Snort流量檢測在每個介面上啟用，或在所有支援的介面上全域性啟用。Snort感測器需要兩個VirtualPortGroup介面。第一個VirtualPortGroup用於管理流量，第二個VirtualPortGroup用於轉發平面和Snort虛擬容器服務之間的資料流量。必須為這些VirtualPortGroup介面配置IP地址。分配給管理VirtualPortGroup介面的IP子網應能夠與特徵碼伺服器和警報/報告伺服器通訊。

Snort IPS會監控流量並將事件報告給外部日誌伺服器或IOS系統日誌。啟用登入到IOS系統日誌可能會影響效能，因為日誌消息數量可能很大。支援Snort日誌的外部第三方監視工具可用於日誌收集和分析。

Cisco 4000系列整合服務路由器和Cisco Cloud Services Router 1000v系列上的Snort IPS基於特徵碼包下載。有兩種型別的預訂：

- 社群簽名包。

- 基於使用者的簽名包。

社群簽名包規則集提供有限的威脅覆蓋範圍。基於使用者的特徵碼包規則集提供了抵禦威脅的最佳保護。  它包括在攻擊前提供保護，還可以為響應安全事件或主動發現新威脅提供最快的對更新特徵碼的訪問。思科完全支援此訂閱，並將在Cisco.com上更新該包。簽名包可以從software.cisco.com下載。Snort簽名資訊可在snort.org上找到。

網路圖表

設定

平台UTD配置

步驟 1.配置虛擬VirtualPortGroups介面。

Router#configure terminal

Router(config)#interface VirtualPortGroup0

Router(config-if)#description Management Interface

Router(config-if)#ip address 192.168.1.1 255.255.255.252

Router(config-if)#no shutdown

Router(config-if)#exit

Router(config)#interface VirtualPortGroup1

Router(config-if)#description Data Interface

Router(config-if)#ip address 192.168.2.1 255.255.255.252

Router(config-if)#no shutdown

Router(config-if)#exit

步驟2.在全域性配置模式下啟用IOx環境。

Router(config)#iox

步驟 3.使用vnic配置配置應用託管。

Router(config)#app-hosting appid UTD

Router(config-app-hosting)#app-vnic gateway0 virtualportgroup 0 guest-interface 0

Router(config-app-hosting-gateway0)#guest-ipaddress 192.168.1.2 netmask 255.255.255.252

Router(config-app-hosting-gateway0)#exit

Router(config-app-hosting)#app-vnic gateway1 virtualportgroup 1 guest-interface 1

Router(config-app-hosting-gateway0)#guest-ipaddress 192.168.2.2 netmask 255.255.255.252

Router(config-app-hosting-gateway0)#exit

步驟4（可選）。配置資源配置檔案。

Router(config-app-hosting)#app-resource package-profile low [low,medium,high]

Router(config-app-hosting)#end

附註： 如果未定義該屬性，系統將使用預設的app-resource config(Low)。如果要更改預設配置檔案配置，請確保在ISR上有足夠的可用資源。

步驟 5.使用UTD.tar檔案安裝應用託管。

Router#app-hosting install appid UTD package bootflash:iox-iosxe-utd.16.12.08.1.0.24_SV2.9.16.1_XE16.12.x86_64.tar

註：在bootflash：中保留正確的UTD.tar檔案，以繼續安裝。在UTD檔名上指定了Snort版本。

應看到下一組系統日誌，指示UTD服務已正確安裝。

Installing package 'bootflash:iox-iosxe-utd.16.12.08.1.0.24_SV2.9.16.1_XE16.12.x86_64.tar' for 'utd'. Use 'show app-hosting list' for progress.

*Jun 26 19:25:35.975: %VMAN-5-PACKAGE_SIGNING_LEVEL_ON_INSTALL: R0/0: vman: Package 'iox-iosxe-utd.16.12.08.1.0.24_SV2.9.16.1_XE16.12.x86_64.tar' for service container 'utd' is 'Cisco signed', signing level cached on original install is 'Cisco signed'

*Jun 26 19:25:50.746: %VIRT_SERVICE-5-INSTALL_STATE: Successfully installed virtual service utd

*Jun 26 19:25:53.176: %IM-6-INSTALL_MSG: R0/0: ioxman: app-hosting: Install succeeded: utd installed successfully Current state is deployed

注意：使用「show app-hosting list」時狀態應為「Deployed」

步驟 6.啟動應用託管服務。

Router#configure terminal

Router(config)#app-hosting appid UTD

Router(config-app-hosting)#start

Router(config-app-hosting)#end

注意：啟動應用託管服務後，應用託管狀態應為「正在運行」。使用「show app-hosting list」或「show app-hosting detail」檢視更多詳細資訊。

應看到下一條syslog消息，指示UTD服務已正確安裝。

*Jun 26 19:55:05.362: %VIRT_SERVICE-5-ACTIVATION_STATE: Successfully activated virtual service UTD

*Jun 26 19:55:07.412: %IM-6-START_MSG: R0/0: ioxman: app-hosting: Start succeeded: UTD started successfully Current state is running

服務平面和資料平面配置。

成功安裝後，必須配置服務平面。Snort IPS可配置為用於檢查的入侵防禦系統(IPS)或入侵檢測系統(IDS)。

警告：確認「securityk9」許可證功能已啟用，以繼續UTD服務平面配置。

步驟 1.配置統一威脅防禦(UTD)標準引擎（服務平面）

Router#configure terminal

Router(config)#utd engine standard

步驟 2.啟用將緊急消息記錄到遠端伺服器。

Router(config-utd-eng-std)#logging host 192.168.10.5

步驟 3.為Snort引擎啟用威脅檢測。

Router(config-utd-eng-std)#threat-inspection

步驟 4.將威脅檢測配置為入侵防禦系統(IPS)或入侵檢測系統(IDS)

Router(config-utd-engstd-insp)#threat [protection,detection]

註:「Protection」用於IPS，「Detection」用於IDS。「Detection」是默認設定。

步驟 5.配置安全策略。

Router(config-utd-engstd-insp)#policy [balanced, connectivity, security]

Router(config-utd-engstd-insp)#exit

Router(config-utd-eng-std)#exit

註：預設策略為「balanced」

步驟6（可選）。建立UTD允許的清單（白名單）

Router#configure terminal

Router(config)#utd threat-inspection whitelist

第7步（可選）。配置Snort簽名ID以顯示在白名單中。

Router(config-utd-whitelist)#generator id 40 signature id 54621 comment FILE-OFFICE traffic from network

Router(config-utd-whitelist)#end

註：以ID「40」為例。要檢查Snort簽名資訊，請檢查Snort官方文檔。

第8步（可選）。啟用威脅檢測配置上的允許清單。

Router#config terminal

Router(config)#utd engine standard

Router(config-utd-eng-std)#threat-inspection

Router(config-utd-engstd-insp)#whitelist

步驟 9.配置特徵碼更新間隔以自動下載Snort特徵碼。

Router#config terminal

Router(config)#utd engine standard

Router(config-utd-eng-std)#threat-inspection

Router(config-utd-engstd-insp)#signature update occur-at [daily, monthly, weekly] 0 0

註：第一個數字以24小時格式定義小時，第二個數字表示分鐘。

警告：UTD簽名更新會在更新時生成一個短暫的服務中斷。

步驟 10.配置簽名更新伺服器引數。

Router(config-utd-engstd-insp)#signature update server [cisco, url] username cisco password cisco12

注意：使用「cisco」使用Cisco伺服器，或「url」定義更新伺服器的自定義路徑。對於Cisco伺服器，您必須提供自己的使用者名稱和密碼。

步驟 11.啟用日誌記錄級別。

Router(config-utd-engstd-insp)#logging level [alert,crit,debug,emerg,info,notice,warning]

Router(config-utd-engstd-insp)#exit

Router(config-utd-eng-std)#exit

步驟 12.啟用utd服務。

Router#configure terminal

Router(config)#utd

步驟13（可選）。將資料流量從VirtualPortGroup介面重定向到UTD服務。

Router#configure terminal

Router(config)#utd

Router(config-utd)#redirect interface virtualPortGroup

註：如果未配置重定向，則自動檢測到重定向。

步驟 14.對ISR上的所有第3層介面啟用UTD。

Router(config-utd)#all-interfaces

步驟 15.啟用引擎標準。

Router(config-utd)#engine standard

應看到下一條syslog消息，指示UTD已正確啟用。

*Jun 27 23:41:03.062: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel0, changed state to up

*Jun 27 23:41:13.039: %IOSXE-2-PLATFORM: R0/0: cpp_cp: QFP:0.0 Thread:000 TS:00000008501210250689 %SDVT-2-SDVT_HEALTH_CHANGE: Service node 192.168.2.2 changed state from Down => Red (3) for channel Threat Defense

*Jun 27 23:41:22.457: %IOSXE-5-PLATFORM: R0/0: cpp_cp: QFP:0.0 Thread:000 TS:00000008510628353985 %SDVT-5-SDVT_HEALTH_UP: Service node 192.168.2.2 is up for channel Threat Defense. Current Health: Green, Previous Health: Red

第16步（可選）。定義UTD引擎故障的操作（UTD資料平面）

Router(config-engine-std)#fail close

Router(config-engine-std)#end

Router#copy running-config startup-config

Destination filename [startup-config]?

注意:當UTD引擎發生故障時，「失效關閉」選項將丟棄所有IPS/IDS流量。「失效開放」選項允許在UTD故障時所有IPS/IDS流量。預設選項為「fail open」。

驗證

驗證VirtualPortGroups IP地址和介面狀態。

Router#show ip interface brief | i VirtualPortGroup

VirtualPortGroup0 192.168.1.1 YES NVRAM up up

VirtualPortGroup1 192.168.2.1 YES NVRAM up up

驗證VirtualPortGroup配置。

Router#show running-config | b interface

interface VirtualPortGroup0

description Management Interface

ip address 192.168.1.1 255.255.255.252

!

interface VirtualPortGroup1

description Data Interface

ip address 192.168.2.1 255.255.255.252

!

驗證應用託管配置。

Router#show running-config | b app-hosting

app-hosting appid UTD

app-vnic gateway0 virtualportgroup 0 guest-interface 0

guest-ipaddress 192.168.1.2 netmask 255.255.255.252

app-vnic gateway1 virtualportgroup 1 guest-interface 1

guest-ipaddress 192.168.2.2 netmask 255.255.255.252

start

end

驗證iox啟用。

Router#show running-config | i iox

iox

驗證UTD服務平面配置。

Router#show running-config | b engine

utd engine standard

logging host 192.168.10.5

threat-inspection

threat protection

policy security

signature update server cisco username cisco password KcEDIO[gYafNZheBHBD`CC\g`_cSeFAAB

signature update occur-at daily 0 0

logging level info

whitelist

utd threat-inspection whitelist

generator id 40 signature id 54621 comment FILE-OFFICE traffic

utd

all-interfaces

redirect interface VirtualPortGroup1

engine standard

fail close

Router#show utd engine standard config

UTD Engine Standard Configuration:

IPS/IDS : Enabled

Operation Mode : Intrusion Prevention

Policy : Security

Signature Update:

Server : cisco

User Name : cisco

Password : KcEDIO[gYafNZheBHBD`CC\g`_cSeFAAB

Occurs-at : daily ; Hour: 0; Minute: 0

Logging:

Server : 192.168.10.5

Level : info

Statistics : Disabled

Hostname : router

System IP : Not set

Whitelist : Enabled

Whitelist Signature IDs:

54621, 40

Port Scan : Disabled

Web-Filter : Disabled

驗證應用託管狀態。

Router#show app-hosting list

App id                                      State

---------------------------------------------------------

UTD                                         RUNNING

驗證應用託管詳細資訊。

Router#show app-hosting detail

App id : UTD

Owner : ioxm

State : RUNNING

Application

Type : LXC

Name : UTD-Snort-Feature

Version : 1.0.7_SV2.9.18.1_XE17.9

Description : Unified Threat Defense

Author :

Path : /bootflash/secapp-utd.17.09.03a.1.0.7_SV2.9.18.1_XE17.9.x86_64.tar

URL Path :

Multicast : yes

Activated profile name :

Resource reservation

Memory : 1024 MB

Disk : 752 MB

CPU :

CPU-percent : 25 %

VCPU : 0

Platform resource profiles

Profile Name CPU(unit) Memory(MB) Disk(MB)

--------------------------------------------------------------

Attached devices

Type Name Alias

---------------------------------------------

Disk /tmp/xml/UtdLogMappings-IOX

Disk /tmp/xml/UtdIpsAlert-IOX

Disk /tmp/xml/UtdDaqWcapi-IOX

Disk /tmp/xml/UtdUrlf-IOX

Disk /tmp/xml/UtdTls-IOX

Disk /tmp/xml/UtdDaq-IOX

Disk /tmp/xml/UtdAmp-IOX

Watchdog watchdog-503.0

Disk /tmp/binos-IOX

Disk /opt/var/core

Disk /tmp/HTX-IOX

Disk /opt/var

NIC ieobc_1 ieobc

Disk _rootfs

NIC mgmt_1 mgmt

NIC dp_1_1 net3

NIC dp_1_0 net2

Serial/Trace serial3

Network interfaces

---------------------------------------

eth0:

MAC address : 54:0e:00:0b:0c:02

IPv6 address : ::

Network name :

eth:

MAC address : 6c:41:0e:41:6b:08

IPv6 address : ::

Network name :

eth2:

MAC address : 6c:41:0e:41:6b:09

IPv6 address : ::

Network name :

eth1:

MAC address : 6c:41:0e:41:6b:0a

IPv4 address : 192.168.2.2

IPv6 address : ::

Network name :

----------------------------------------------------------------------

Process Status Uptime # of restarts

----------------------------------------------------------------------

climgr UP 0Y 0W 0D 21:45:29 2

logger UP 0Y 0W 0D 19:25:56 0

snort_1 UP 0Y 0W 0D 19:25:56 0

Network stats:

eth0: RX packets:162886, TX packets:163855

eth1: RX packets:46, TX packets:65

DNS server:

domain cisco.com

nameserver 192.168.90.92

Coredump file(s): core, lost+found

Interface: eth2

ip address: 192.168.2.2/30

Interface: eth1

ip address: 192.168.1.2/30

Address/Mask Next Hop Intf.

-------------------------------------------------------------------------------

0.0.0.0/0 192.168.2.1 eth2

0.0.0.0/0 192.168.1.1 eth1

疑難排解

1.確保思科整合服務路由器(ISR)運行XE 16.10.1a及更高版本（用於IOx方法）

2.確保思科整合多業務路由器(ISR)在啟用SecurityK9功能的情況下獲得許可。

3.驗證ISR硬體模型符合最低資源配置檔案。

4.與基於區域的防火牆SYN-cookie和網路地址轉換不相容的功能64(NAT64)

5.確認安裝後已啟動UTD服務。

6.在手動下載特徵碼包期間，確保包與Snort引擎版本相同。如果版本不匹配，簽名包更新可能會失敗。

7.如果出現效能問題，請使用「show app-hosting resource」 和「show app-hosting utilization appid "UTD-NAME" 瞭解有關CPU/記憶體/儲存完善的資訊。

Router#show app-hosting resource

CPU:

Quota: 75(Percentage)

Available: 50(Percentage)

VCPU:

Count: 6

Memory:

Quota: 10240(MB)

Available: 9216(MB)

Storage device: bootflash

Quota: 4000(MB)

Available: 4000(MB)

Storage device: harddisk

Quota: 20000(MB)

Available: 19029(MB)

Storage device: volume-group

Quota: 190768(MB)

Available: 169536(MB)

Storage device: CAF persist-disk

Quota: 20159(MB)

Available: 18078(MB)

Router#show app-hosting utilization appid utd

Application: utd

CPU Utilization:

CPU Allocation: 33 %

CPU Used: 3 %

Memory Utilization:

Memory Allocation: 1024 MB

Memory Used: 117632 KB

Disk Utilization:

Disk Allocation: 711 MB

Disk Used: 451746 KB

警告：如果您能夠看到高CPU、記憶體或磁碟使用率，請與Cisco TAC聯絡。

調試

使用下面列出的debug命令在出現故障時收集Snort IPS資訊。

debug virtual-service all

debug virtual-service virtualPortGroup

debug virtual-service messaging

debug virtual-service timeout

debug utd config level error [error, info, warning]

debug utd engine standard all

相關資訊

在以下位置可以找到與Snort IPS部署相關的其他文檔：

Snort IPS安全配置指南

https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/sec_data_utd/configuration/xe-17/sec-data-utd-xe-17-book/snort-ips.html

虛擬服務資源配置檔案

https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/sec_data_utd/configuration/xe-17/sec-data-utd-xe-17-book/snort-ips.html#id_31952

路由器上的Snort IPS — 逐步配置。

https://community.cisco.com/t5/security-knowledge-base/router-security-snort-ips-on-routers-step-by-step-configuration/ta-p/3369186

疑難排解Snort IPS

https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/sec_data_utd/configuration/xe-17/sec-data-utd-xe-17-book/snort-ips.html#concept_C3C869E633A6475890475931DF83EBCC

ISR4K Snort IPS未部署，因為硬體沒有足夠的平台資源

https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwf57595