常见设备安全加固策略:
1.关闭不使用的业务端口
2.废弃不安全的访问通道:在存在多种访问通道服务下,废弃不安全的访问通道,优选安全的访问通道
常用到的SSH协议(安全外壳协议):
在非安全网络上提供了安全的远程登录、安全文件传输以及TCP/IP安全隧道。不仅在登陆过程中对密码进行加密传送,而且对登陆后执行的命令的数据也进行加密。
合法用户通过客户端登录,完成用户名以及对应的密码验证后,客户端会尝试和服务端建立会话,每个会话是一个独立的逻辑通道,可以提供给不同的上层应用使用。
STelnet和SFTP各自利用了其中的一个逻辑通道,通过SSH对数据进行加密,从而实现数据的安全传输。
SSH协议框架中最主要的部分是三个协议:传输层协议、用户认证协议和连接协议。
传输层协议:提供版本协商,加密算法协商,密钥交换,服务端认证以及信息完整性支持。
用户认证协议:为服务器提供客户端的身份鉴别。
连接协议:将加密的信息隧道复用为多个逻辑通道,提供给高层的应用协议(STelnet、SFTP)使用;各种高层应用协议可以相对地独立于SSH基本体系之外,并依靠这个基本框架,通过连接协议使用SSH的安全机制。
基于可信路径的访问控制:
可以在设备上部署基于可信路径的访问控制策略,以提升网络的安全性。
部署URPF,可以判定某个报文的源地址是否合法,如果该报文的路径与URPF学习的路径不符,丢弃该报文,用URPF可以有效防范IP地址欺骗。
URPF(Unicast Reverse Path Forwarding,单播逆向路径转发)分为严格模式和松散模式以及允许匹配缺省路由的方式。其原理是当设备转发IP报文时,检查数据报文的源IP地址是否合法,检查的原理是根据数据包的源IP地址查路由表。
对于严格模式:如果报文能匹配明细路由,并且入接口跟匹配路由的出接口一致,则允许报文上送,否则丢弃报文。
对于松散模式:如果报文匹配上明细路由,则运行报文上送,否则丢弃报文,不检查接口是否匹配。默认情况下,会认为缺省路由不存在,不会去匹配缺省路由,只有进行了配置时候,才会去匹配缺省路由的。
对允许匹配缺省路由的模式,必须和严格模式一起配置,报文匹配明细路由或者缺省路由,并且报文入接口跟匹配路由的出接口一致才上送,否则丢弃。不支持缺省路由与松散模式一起配置,因为这样无法达到防攻击的效果。松散模式和严格模式互斥,只能配置一种模式。
本机防攻击:
在网络中,存在着大量针对CPU的恶意攻击报文以及需要正常上送CPU的各类报文。针对CPU的恶意攻击报文会导致CPU长时间繁忙的处理攻击报文,从而引发其他业务的断续甚至系统的中断;大量正常的报文也会导致CPU占用率过高,性能下降,从而影响正常的业务。
为了保护CPU,保证CPU对正常业务的处理和响应,设备提供了本机防攻击功能。本机防攻击针对的是上送CPU的报文,主要用于保护设备自身安全,保证已有业务在发生攻击时的正常运转,避免设备遭受攻击时各业务的相互影响。
本机防攻击包括CPU防攻击和攻击溯源两部分。
CPU防攻击针对上送CPU的报文进行限制和约束,使单位时间内上送CPU报文的数量限制在一定的范围之内,从而保护CPU的安全,保证CPU对业务的正常处理。
攻击溯源针对DoS(Denial of Service,拒绝服务)攻击进行防御。设备通过对上送CPU的报文进行分析统计,然后对统计的报文设置一定的阈值,将超过阈值的报文判定为攻击报文,再对这些攻击报文根据报文信息找出攻击源用户或者攻击源接口,最后通过日志、告警等方式提醒管理员以便管理员采用一定的措施来保护设备,或者直接丢弃攻击报文以对攻击源进行惩罚。
CPU防攻击:
多级安全机制,保证设备的安全,实现了对设备的分级保护。设备通过以下策略实现对设备的分级保护:
第一级:通过黑名单来过滤上送CPU的非法报文。
第二级:CPCAR(Control Plane Committed Access Rate)。对上送CPU的报文按照协议类型进行速率限制,保证每种协议上送CPU的报文不会过多。
第三级:对上送CPU的报文,按照协议优先级进行调度,保证优先级高的协议先得到处理。
第四级:对上送CPU的报文统一限速,对超过统一限速值的报文随机丢弃,保证整体上送CPU的报文不会过多,保护CPU安全。
动态链路保护功能的CPU报文限速,是指当设备检测到SSH Session数据、Telnet Session数据、HTTP Session数据、FTP Session数据以及BGP Session数据建立时,会启动对此Session的动态链路保护功能,后续上送报文如匹配此Session特征信息,此类数据将会享受高速率上送的权利,由此保证了此Session相关业务的运行可靠性、稳定性。
攻击溯源原理:
攻击溯源包括报文解析、流量分析、攻击源识别和发送日志告警通知管理员以及实施惩罚四个过程。
通过图中所示的四个过程,找出攻击源,然后管理员通过ACL或配置黑名单的方式限制攻击源,以保护设备CPU。
配置步骤及命令(以华为模拟器ensp为例):
SSH:
配置Stelnet server
①创建server端的本地密钥
[系统视图] rsa local-key-pair create
②创建登录用户:
[系统视图]user-interface vty 0 4
[用户登录管理视图] authentication-mode aaa
[用户登录管理视图]protocol inbound ssh
[aaa]配置用户名,密码以及服务类型,用户等级等
③配置用户认证方式:
[系统视图] ssh user user-name authentication-type {password | rsa | password-rsa | all}
④使能stelnet server功能:
[系统视图]stelnet server enable
⑤更改SSH默认端口号:
[系统视图] ssh server port 1025
⑥在客户端生成本地密钥并复制:
[系统视图] rsa local-key-pair create
[系统视图] display rsa local-key-pair public
⑦配置基于客户端密钥生成公钥:
[系统视图] rsa peer-key key-name encoding-type {der | openssh | pem}
[公钥配置视图]public-key-code begin
[公钥配置视图]将客户端生成的密钥复制过来即可
[公钥配置视图]public-key-code end //退出公共密钥视图
[公钥配置视图]peer-public-key end //回到系统视图
配置stelnet client
使能stelnet client功能:
[系统视图] ssh client first-time enable
本地防攻击配置:
1.创建黑名单:
①创建ACL匹配黑名单所指定用户设备
②创建防攻击策略
[系统视图]cpu-defend policy policy-name
[策略视图]blacklist blacklist-id acl acl-number //配置黑名单
③配置上送CPU的限制数量
[策略视图]packet-type packet-type rate-limit rate-value
④配置上送CPU报文的指定报文的优先级
[策略视图]packet-type packet-type priority priority-level
⑤使能动态链路保护功能:
[策略视图]cpu-defend application-apperceive {ssh | telnet | bgp | ftp | http } enable
⑥使能攻击溯源功能:
[策略视图]auto-defend enable
⑦配置攻击溯源检测阈值:
[策略路由] auto-defend threshold threshold
⑧配置攻击溯源时间告警:
[策略视图]auto-defend alarm enable
⑨使能防攻击策略:
[系统视图]cpu-defend-policy policy-name { global | slot slot-id }
[AR1]stelnet server enable //启动stelnet服务功能
[AR1]user-interface vty 0 4 //进行虚拟终端配置界面
[AR1-ui-vty0-4]authentication-mode aaa //配置认证方式为密码认证
[AR1-ui-vty0-4]protocol inbound ssh //指定vty用户界面所支持的协议,有三个参数分别为ssh(只支持SSH协议),telnet(只支持telnet协议)和all(支持所有协议,包括SSH和Telnet)。
[AR1-ui-vty0-4]quit
[AR1]aaa //进入aaa认证配置界面
[AR1-aaa]local-user user 1 password cipher Huawei@123 //配置允许登录的用户名为user1,密码为密文形式的Huawei@123
[AR1-aaa]local-user user 1 privilege level 3 //配置用户user1的级别为3
[AR1-aaa]local-user user1 service-type ssh //配置用户user1的服务类型为ssh
[AR1-aaa]quit
[AR1] rsa local-key-pair create //生成本地RSA密钥对
ssh server配置
[R]stelnet server enable
[R] rsa local-key-pair create
[R]aaa
[aaa]local-user xxx password cipher xxxxx
[aaa]local-user xxx preference //用户等级
[aaa]local-user xxx ser //服务类型
[R] user-interface vty 0 4
[0-4] authentication-mode aaa
[0-4]protocol inbound ssh
[R] ssh user xxx authenticaiton-type all
SSH client 配置
[R] ssh client first-time enable
[R] stelnet server的IP地址