简介
本文档介绍如何使用IOx方法在Cisco集成多业务路由器(ISR)4000系列上部署Snort IPS和Snort IDS功能。
先决条件
要求
Cisco 建议您了解以下主题:
- 思科集成多业务路由器4000系列,至少带8GB DRAM。
- 基本IOS-XE命令体验。
- Snort基础知识。
- 1年或3年的签名订用是必需的
- IOS-XE 16.10.1a及更高版本。
使用的组件
本文档中的信息基于以下软件和硬件版本:
- 运行17.9.3a版本的ISR4331/K9。
- 用于17.9.3a版本的UTD引擎TAR。
- Securityk9许可证,适用于ISR4331/K9。
VMAN方法现在已弃用。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
Snort IPS功能为思科4000系列集成多业务路由器和Cisco云服务路由器1000v系列上的分支机构启用入侵防御系统(IPS)或入侵检测系统(IDS)。此功能使用开源Snort启用IPS和IDS功能。
Snort是一个开源IPS,它会执行实时流量分析,并在IP网络上检测到威胁时生成警报。它还可以执行协议分析、内容研究或行进,并检测各种攻击和探测,例如缓冲区溢出、隐藏端口扫描等。Snort引擎作为虚拟容器服务在思科集成多业务路由器4000系列和云服务路由器1000v系列上运行。
Snort IPS功能可作为网络入侵检测或防御模式,在思科集成服务路由器4000系列和云服务路由器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
第三步:使用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
注意: 如果未定义此配置,系统将使用默认的应用资源配置(低)。如果要更改默认配置文件配置,请确保在ISR上有足够的可用资源。
第五步:使用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”
第六步:启动应用托管服务。
Router#configure terminal
Router(config)#app-hosting appid UTD
Router(config-app-hosting)#start
Router(config-app-hosting)#end
注意:启动应用托管服务后,应用托管状态应为“Running”。使用“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
第二步:启用将紧急消息记录到远程服务器。
Router(config-utd-eng-std)#logging host 192.168.10.5
第三步:为Snort引擎启用威胁检测。
Router(config-utd-eng-std)#threat-inspection
第四步:将威胁检测配置为入侵防御系统(IPS)或入侵检测系统(IDS)
Router(config-utd-engstd-insp)#threat [protection,detection]
注:“Protection”用于IPS,“Detection”用于IDS。“Detection”是默认设置。
第五步:配置安全策略。
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”使用思科服务器或“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、内存或磁盘使用率,请联系思科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
https://bst.cloudapps.cisco.com/bugsearch/bug/CSCwf57595