You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
datacom/Datacom-MD/第十二章:网络设备安全特性.md

20 KiB

网络设备安全特性

作者:行癫


第一节:网络设备安全特性

一:常见设备安全加固策略

1.为什么需要网络设备安全
image-20220218114918813

网络安全是一个系统工程,网络当中的每一样东西都有可能是被攻击的目标,网络设备本身当然也不例外

网络设备受到的常见攻击如下:

恶意登录网络设备执行非法操作,例如重启设备

伪造大量控制报文造成设备CPU利用率升高例如发送大量的ICMP报文

2.常见设备安全加固策略

常见的设备安全加固策略主要可以从以下方面部署:

关闭不使用的业务和协议端口

废弃不安全的访问通道

基于可信路径的访问控制

本机防攻击

关闭不使用的业务和协议端口

在分析业务需求的基础上,按照最小授权原则,关闭不使用的业务和协议端口

不使用的物理端口,应该默认配置为关闭,即使插上网线也不能通信

不使用的协议端口应该默认配置为关闭不对外提供访问。如常见的telnet、FTP、HTTP等端口

image-20220218115747374

在SW1上关闭FTP功能同时关闭多个不使用的端口

<SW1> system-view 
[SW1] undo ftp server 
Warning: The operation will stop the FTP server. Do you want to continue? [Y/N]:y 
Info: Succeeded in closing the FTP server. 
[SW1]port-group protgroup1
[SW1-port-group-protgroup1]group-member GigabitEthernet 0/0/4 to GigabitEthernet0/0/48 
[SW1-port-group-protgroup1]shutdown

废弃不安全的访问通道

在业务需求分析的基础上,优先满足业务的访问需求。在同一个访问需求有多种访问通道服务的情况下,废弃不安全的访问通道,而选择安全的访问通道

访问需求 不安全的通道 安全的通道
远程登录 Telnet SSH v2
文件传输 FTPTFTP SFTP
网元管理 SNMP v1/v2 SNMP v3
网管登录 HTTP HTTPS

通过命令行、WEB、网管等方式登录设备时建议采用安全加密的通道SSH、HTTPS、SNMPv3

设备之间以及设备和终端之间数据传输也建议采用加密的数据传输协议SFTP

安全的数据访问通道

设备数据传输安全常见场景及采用协议:

用户远程登录:

Telnet采用TCP协议进行明文传输

STelnet基于SSH协议提供安全的信息保障和强大的认证功能

设备文件操作:

FTP支持文件传输以及文件目录的操作具有授权和认证功能明文传输数据

TFTP只支持文件传输不支持授权和认证明文传输数据

SFTP支持文件传输及文件目录的操作数据进行了严格加密和完整性保护

SSH概述

SSH(Secure Shell安全外壳协议)在非安全网络上提供了安全的远程登录、安全文件传输以及TCP/IP安全隧道。不仅在登陆过程中对密码进行加密传送而且对登陆后执行的命令的数据也进行加密

合法用户通过客户端登录,完成用户名以及对应的密码验证后,客户端会尝试和服务端建立会话,每个会话是一个独立的逻辑通道,可以提供给不同的上层应用使用

STelnet和SFTP各自利用了其中的一个逻辑通道通过SSH对数据进行加密从而实现数据的安全传输

image-20220218120243731

SSH协议结构

image-20220218120303812

SSH协议框架中最主要的部分是三个协议传输层协议、用户认证协议和连接协议

传输层协议:提供版本协商,加密算法协商,密钥交换,服务端认证以及信息完整性支持

用户认证协议:为服务器提供客户端的身份鉴别

连接协议将加密的信息隧道复用为多个逻辑通道提供给高层的应用协议STelnet、SFTP使用各种高层应用协议可以相对地独立于SSH基本体系之外并依靠这个基本框架通过连接协议使用SSH的安全机制

SSH中用到的算法主要有几类

用于数据完整性保护的MAC算法如hmac-md5、hmac-md5-96等

用于数据信息加密的算法如3des-cbc、aes128-cbc、des-cbc等

用于产生会话密钥的密钥交换算法如diffle-hellman-group-exchange-sha1等

用于进行数字签名和认证的主机公钥算法如RSA、DSA等

公开密钥技术:

公钥加密算法也称非对称密钥算法,用两对密钥:一个公共密钥和一个专用密钥。用户要保障专用密钥的安全;公共密钥则可以发布出去。公共密钥与专用密钥是有紧密关系的,用公共密钥加密的信息只能用专用密钥解密,反之亦然。由于公钥算法不需要联机密钥服务器,密钥分配协议简单,所以极大简化了密钥管理。除加密功能外,公钥系统还可以提供数字签名

机密性:指信息在存储、传输、使用的过程中,不会被泄漏给非授权用户或实体

完整性:指信息在存储、传输、使用的过程中,不会被非授权用户篡改或防止授权用户对信息进行不恰当的篡改

可用性:指确保授权用户或实体对信息资源的正常使用不会被异常拒绝,允许其可靠而及时地访问信息资源

基于可信路径的访问控制

可以在设备上部署基于可信路径的访问控制策略,以提升网络的安全性

部署URPF可以判定某个报文的源地址是否合法如果该报文的路径与URPF学习的路径不符丢弃该报文用URPF可以有效防范IP地址欺骗

image-20220218120602269

IP网络的开放性决定了只要路由可达任何人都可以对目标主机进行访问或者攻击

对于某一个主机而言,访问它的客户端的报文历经的路径通常是固定的,尤其是在网络边缘,这种路径的固定特性表现得更加明显

URPF单播逆向路径转发分为严格模式和松散模式以及允许匹配缺省路由的方式。其原理是当设备转发IP报文时检查数据报文的源IP地址是否合法检查的原理是根据数据包的源IP地址查路由表

本机防攻击

在网络中存在着大量针对CPU的恶意攻击报文以及需要正常上送CPU的各类报文。针对CPU的恶意攻击报文会导致CPU长时间繁忙的处理攻击报文从而引发其他业务的断续甚至系统的中断大量正常的报文也会导致CPU占用率过高性能下降从而影响正常的业务

为了保护CPU保证CPU对正常业务的处理和响应设备提供了本机防攻击功能。本机防攻击针对的是上送CPU的报文主要用于保护设备自身安全保证已有业务在发生攻击时的正常运转避免设备遭受攻击时各业务的相互影响

本机防攻击包括CPU防攻击和攻击溯源两部分

CPU防攻击针对上送CPU的报文进行限制和约束使单位时间内上送CPU报文的数量限制在一定的范围之内从而保护CPU的安全保证CPU对业务的正常处理

攻击溯源针对DoSDenial of Service拒绝服务攻击进行防御。设备通过对上送CPU的报文进行分析统计然后对统计的报文设置一定的阈值将超过阈值的报文判定为攻击报文再对这些攻击报文根据报文信息找出攻击源用户或者攻击源接口最后通过日志、告警等方式提醒管理员以便管理员采用一定的措施来保护设备或者直接丢弃攻击报文以对攻击源进行惩罚

CPU防攻击

多级安全机制,保证设备的安全,实现了对设备的分级保护。设备通过以下策略实现对设备的分级保护:

第一级通过黑名单来过滤上送CPU的非法报文

第二级CPCAR对上送CPU的报文按照协议类型进行速率限制保证每种协议上送CPU的报文不会过多

第三级对上送CPU的报文按照协议优先级进行调度保证优先级高的协议先得到处理

第四级对上送CPU的报文统一限速对超过统一限速值的报文随机丢弃保证整体上送CPU的报文不会过多保护CPU安全

动态链路保护功能的CPU报文限速是指当设备检测到SSH Session数据、Telnet Session数据、HTTP Session数据、FTP Session数据以及BGP Session数据建立时会启动对此Session的动态链路保护功能后续上送报文如匹配此Session特征信息此类数据将会享受高速率上送的权利由此保证了此Session相关业务的运行可靠性、稳定性

**攻击溯源原理 **

攻击溯源包括报文解析、流量分析、攻击源识别和发送日志告警通知管理员以及实施惩罚四个过程

image-20220218120959564

通过图中所示的四个过程找出攻击源然后管理员通过ACL或配置黑名单的方式限制攻击源以保护设备CPU

二:网络设备安全加固部署示例

1.SSH基本配置

image-20220218154352764

image-20220218154403992

2.SSH配置示例

用户希望安全的远程登录设备因此配置STelnet方式进行远程的安全登录

在R3上配置两个登录用户client001和client002R1使用client001通过password认证方式登录R3R2使用client002通过RSA认证方式登录R3。配置安全策略保证只有R1和R2才能登录设备

image-20220218154446378

配置步骤:

在R3生成本地密钥对实现在服务器端和客户端进行安全的数据交互

在R3配置SSH用户client001和client002

在R3开启STelnet服务功能

在R3配置SSH用户client001和client002的服务方式为STelnet

在R3配置SSH服务器的端口号有效防止攻击者对SSH服务标准端口的访问确保安全性

用户client001和client002分别以STelnet方式实现登录R3

配置:

[R3] rsa local-key-pair create
The key name will be: Host 
RSA keys defined for Host already exist. Confirm to replace them? (y/n):y 
The range of public key size is (512 ~ 2048). 
NOTES: If the key modulus is less than 2048, 
            It will introduce potential security risks. 
Input the bits in the modulus[default = 2048]:2048 
Generating keys... ......................................................................................+++ ....+++ .......................................++++++++ ..............++++++++
[R3] user-interface vty 0 4
[R3-ui-vty0-4] authentication-mode aaa
[R3-ui-vty0-4] protocol inbound ssh
[R3-ui-vty0-4] quit
[R3] aaa
[R3-aaa] local-user client001 password irreversible-cipher Huawei@123
[R3-aaa] local-user client001 privilege level 3
[R3-aaa] local-user client002 password irreversible-cipher Huawei@123
[R3-aaa] local-user client002 privilege level 3
[R3-aaa] quit
[R3] ssh user client001 authentication-type password
[R3] ssh user client002 authentication-type rsa
[R3] aaa
[R3-aaa] local-user client001 service-type ssh
[R3-aaa] local-user client002 service-type ssh
[R3-aaa] quit
[R3] ssh server port 1025
# 在R2生成客户端的本地密钥对。
[R2] rsa local-key-pair create
The key name will be: Host 
RSA keys defined for Host already exist. 
Confirm to replace them? (y/n):y 
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is less than 2048, 
             It will introduce potential security risks.
Input the bits in the modulus[default = 2048]:2048 
Generating keys... ......................................................................................
+++ ....+++ .......................................++++++++ ..............++++++++
# 查看R2生成的RSA密钥对的公钥部分。
[R2] display rsa local-key-pair public
Key code: 30820109 02820100 CB0E88EC A1C2CFEA F97126F9 36919C08 0455127B A3A48594 69517096 35626F55 E4FAF0EB FDA2B9E9 5E417B2B E09F38B0 D26FCA73 FE2E3FC4 DFBEC8CF 4ED0C909 E8D975E6 FFC73C81 D13FE71E 759DC805 B0F0E877 4FC9288E BE1E197C 2A7186B0 B56F5573 3A5EA588 29C63E3B 20D56233 8E63278D F941734F 6B359C69 BBAE5A52 EB842179 04B4204D 5DB31D72 97F0C085 DA771F66 0AAADC28 D264CEB9 5BADA92C CDE9F116 D6D99C48 CEBA3A1D 868B053A 32941D85 CCAA9796 A4B55760 0A8108ED DB45DA12 F61634C9 59431600 341FEDEF 5379D565 A8D1953D DEA018A2 72F99FFC 63DE04BF 2A6219BD DF13D705 27D63DEF 83D556BC 5B44D983 8D5EA126 C1EB71CB 0203 010001
 ===================================================== 
Time of Key pair created: 2012-08-06 17:17:44+00:00 Key name: Server Key type: RSA encryption Key ===================================================== 
Key code: 3067 0260 DF8AFF3C 28213B94 2292852E E98657EE 11DE5AF4 8A176878 CDD4BD31 55E05735 3080F367 A83A9034 47D534CA 81250C1D 35401DC3 464E9E5F A50202CF A7AD09CD AC3F531C A763F0A0 4C8E51B9 18755400 76AF4A78 225C92C3 01FE0DFF 06908363 0203 010001 
# 将R2上产生的RSA公钥配置到服务器端上页display命令显示信息中黑体部分即为客户端产生的RSA公钥将其拷贝粘贴至服务器端
[R3] rsa peer-public-key rsakey001
[R3-rsa-public-key] public-key-code begin
[R3-rsa-key-code] 30820109
[R3-rsa-key-code] 02820100
[R3-rsa-key-code] CB0E88EC A1C2CFEA F97126F9 36919C08 0455127B
[R3-rsa-key-code] ...... 
[R3-rsa-key-code] 010001
[R3-rsa-key-code] public-key-code end
[R3-rsa-public-key] peer-public-key end
# 在R3上为SSH用户client002绑定STelnet客户端的RSA公钥。
[R3] ssh user client002 assign rsa-key rsakey001

SSH配置验证

[R1] ssh client first-time enable
[R1] stelnet 192.168.1.1 1025
Please input the username:client001 
Trying 192.168.1.1 ... 
Press CTRL+K to abort
Connected to 192.168.1.1 ... 
The server is not authenticated. Continue to access it?(y/n)[n]:y 
Save the server's public key?(y/n)[n]:y 
The server's public key will be saved with the name 192.168.1.1. Please wait... Enter password:
<R3>                                                             # 显示登录成功
[R2] ssh client first-time enable
[R2] stelnet 192.168.1.1 1025
Please input the username:client002 
Trying 192.168.1.1 ... Press CTRL+K to abort Connected to 192.168.1.1 ... 
The server is not authenticated. Continue to access it?(y/n)[n]:y 
Save the server's public key?(y/n)[n]:y 
The server's public key will be saved with the name 192.168.1.1. Please wait...
<R3>                                                             # 显示登录成功
3.本机防攻击基本配置

image-20220218155331824

image-20220218155340625

4.本机防攻击配置示例

image-20220218155435638

如图所示位于不同局域网的用户通过R1访问Internet。为分析R1受攻击情况需要配置攻击溯源检查功能记录攻击源信息

管理员发现存在以下现象:

通过攻击溯源检查功能分析可知Net1中的某个用户经常会发生攻击行为

R1收到大量的ARP Request报文影响CPU的正常工作

R1无法提供FTP服务

局域网用户通过DHCP方式动态获取IP地址但R1未优先处理上送CPU的DHCP报文

R1收到大量的Telnet报文

管理员希望通过在R1进行配置以便解决上述问题

配置过程:

配置黑名单将Net1网段中的攻击者0001-c0a8-0102列入黑名单阻止其接入网络

配置ARP Request报文上送CPU的速率限制使ARP Request报文限制在较小速率范围内减少对CPU处理业务的影响

配置FTP协议的动态链路保护功能保证R1正常提供FTP功能

配置协议优先级对DHCP Client报文设置较高的优先级保证R1优先处理上送CPU的DHCP Client报文

关闭R1的Telnet服务器功能使R1丢弃收到的Telnet报文

# 配置黑名单使用的ACL。
[R1] acl number 4001 
[R1-acl-L2-4001] rule 5 permit source-mac 0001-c0a8-0102 
[R1-acl-L2-4001] quit	
# 创建防攻击策略。
[R1] cpu-defend policy devicesafety
# 配置攻击溯源检查功能。
[R1-cpu-defend-policy-devicesafety] auto-defend enable 
[R1-cpu-defend-policy-devicesafety] auto-defend threshold 50
# 配置黑名单。
[R1-cpu-defend-policy-devicesafety] blacklist 1 acl 4001
# 配置黑名单。
[R1-cpu-defend-policy-devicesafety] blacklist 1 acl 4001
# 配置FTP协议动态链路保护功能的速率限制值。 
[R1-cpu-defend-policy-devicesafety] application-apperceive packet-type ftp rate-limit 2000
# 使能FTP协议动态链路保护功能。
[R1] cpu-defend application-apperceive ftp enable
# 应用防攻击策略。 
[R1-cpu-defend-policy-devicesafety] packet-type dhcp-client priority 3
[R1] cpu-defend-policy devicesafety
# 关闭telnet server功能。
[R1] undo telnet server enable

本机防攻击配置验证

# 查看上送到主控板的报文的统计信息丢弃的报文表明设备对arp-request进行了速率限制。
<R1> display cpu-defend statistics
Packet Type	Pass Packets	Drop Packets

8021X	0	0
arp-miss	5	0
arp-reply	8090	0
arp-request	1446576	127773
bfd	0	0
bgp	0	0
bgp4plus	0	0
dhcp-client	879	0
dhcp-server	0	0
# 查看配置的防攻击策略的信息。 
[R1] display cpu-defend policy devicesafety 
Related slot    : <0> 
……
Slot<0>          : Success 
Configuration : 
Blacklist 1 ACL number                        : 4001 
Packet-type arp-request rate-limit        : 64(pps) 
Packet-type dhcp-client priority            : 3 
Rate-limit all-packets                           : 2000(pps)(default) 
Application-apperceive packet-type ftp  : 2000(pps) 
Application-apperceive packet-type tftp : 2000(pps)