实现定时登录备份

2019-12-23 15:21江西张亮
网络安全和信息化 2019年9期
关键词:网络设备脚本备份

■ 江西 张亮

编者按:笔者通过比较telnet与SSH方式异同,亲自实践如何通过脚本实现SSH自动登录。

根据网络安全加固要求,笔者所在单位将辖内8台核心网络设备的登录方式,均全部改为SSH登录验证方式,原Telnet服务关停并启用只允许SSH登录方式。关停Telnet服务后,核心网络设备均需要借助SecureCRT中提供SSH1、SSH2登录设备,原来通过cmd控制台登录方式将不能访问。

因笔者分行机房8台核心网络设备,均改为SSH登录方式后,原来编写的Telnet脚本不能继续自动登录网络设备,实现核心设备的定期备份。虽然采用SSH登录验证,网络的安全性得到大大提高,但是作为一名分行的运维人员,核心网络设备的定期备份依然不然少,起初失效后笔者通过手工每周定期网络配置备份,但是工作量较繁琐且经常忘记,后面笔者通过翻阅有关SSH相关资料,通过自身的亲自实践完成了SSH方式下设备自动登录并实现备份。

TELNET与SSH区别

SSH代表完全外壳(Secure Shell),它是通过互联网访问网络设备和服务器唯一的主要协议,默认运行端口是22,更安全而且加密传输。TELNET是电信(Telecommunications)和网络(NetWorks)的联合缩写,UNIX平台上最为熟知的网络协议,是一种不安全的通信协议,它不使用任何安全机制,通过网络/互联网传输明文格式的数据,包括密码任何嗅探工具都容易抓取数据包,默认运行端口是23。

SSH自动登录备份过程介绍

笔者分行中心机房8台核心设备,首选检查是否所有网络交换设备开启SSH服务,确认后关闭Telnet服务,其次编写SSH脚本自动登录命令,并通过SecureCRT软件执行脚本,最后采用tftp&ftp服务器,实现配置备份下载至远程网络管理机器中留存,这个流程指令通过编写一个批交易指令完成,并通过电脑本身自带的任务计划建立这个批交易任务即可。

网络设备验证登录方式检查

实现SSH自动验证登录,首先检查网络设备是否开启SSH服务,如未开启需开启该服务,下面以一台上联核心设备(HUAWEI NE20E-X6)为例,首选登录交换设备通过命令dis cur查看配置信息,查看是否包括local-user h3c service-type terminal ssh命令信息。

如果maipu设备则通过命令sh run查看配置,查看是否包含ip ssh server服务。如果配置信息中为不包括该命令信息,则通过以下命令添加,下面笔者介绍华为与迈普两种常用设备更改。

1.华为网络设备SSH方式更改

首选需要以Telent方式方式登录,导入SSH服务相关命令,具体参考命令如下:

aaa

local-user 原在用用户名 service-type terminal telnet ssh /**添加telnet及SSH登录方式**/

stelnet server enable

ssh authenticationtype default password

ssh client first-time enable

user-interface vty 0 4

protocol inbound all

rsa local-key-pair create

其次网络设备添加命令成功,需要退出当前Telnet登陆,使用SSH(版本SSH2)登陆,成功登陆后删除Telnet功能,具体实施命令参考如下:

aaa

local-user 原在用用户名 service-type terminal ssh /**设置终端登录方式为SSH**/

user-interface vty 0 4

protocol inbound ssh/**设置验证方式仅为SSH**/

2.迈普设备SSH更改

ip ssh server /**开启SSH服务**/

telnet server disable/*采用SSH成功登陆后,执行该命令*/

SSH自动登录备份指令编写

检查完网络设备均采用SSH验证方式后,下一步需要编写SSH登录脚本指令,脚本指令同样借助SecureCRT软件完成,采用Telnet与SSH方式登录其中一个不同之处,SSH需要指定加密方式,指令执行前需要将用户名及密码指定,而Telnet只需要网络源IP地址,登录后根据屏幕关键字提示输入用户名与密码,下面笔者将两种登录方式命令对比如下。

1.Telnet自动登录备份指令

Sub Main

crt.Screen.Synchronous = True

crt.Session.Connect"/TELNET 10.247.71.254"/**定义telnet连接设备**/

crt.Screen.WaitForString "Username:"/**等待关键字Username**/

crt.Screen.Send"admin_yc" & vbCr /**向屏幕发送admin_yc字符串**/

crt.Screen.WaitForString"Password:"/**等待关键字Password**/

crt.Screen.Send"mp2018" & vbCr /**向屏幕发送mp2018字符串**/

crt.Screen.waitForString ">"

/**上传备份信息至远程机器**/

crt.Screen.Send "tftp 10.84.31.2 put vrpcfg.zip AR01.zip" & vbcr

crt.Screen.waitForString ">"

crt.Screen.Send"quit" & vbcr

crt.Session.Disconnect

crt.Screen.Synchronous = False

End Sub

2.SSH自动登录备份指令

Sub Main

crt.Screen.Synchronous = True

dim host,user,passwor d,login

Str /**定义变量**/

host = "10.247.71.254" /**定义网络设备地址**/

user = "admin_yc" /**赋值登录用户名**/

password ="mp2019"/**赋值登录密码**/

/**定义SS2登录方式,3DES加密方式 MD5摘要**/

loginStr = "/SSH2 /L" & user & " /PASSWORD "& password & " /C 3DES /M MD5 " & host

/**SSH连接**/

crt.Session.Connect loginStr

crt.Screen.waitForString ">"

/**上传备份信息至远程机器**/

crt.Screen.Send "tftp 10.84.31.2 put vrpcfg.zip AR01.zip" & vbcr

crt.Screen.waitForString ">"

crt.Screen.Send"quit" & vbcr

crt.Session.Disconnect

crt.Screen.Synchronous = False

End Sub

编写SSH脚本执行批交易指令

编写完SSH脚本自动登录指令后,就需要开始编写脚本的批交易执行命令,批交易编写的思路为打开3CServer服务器,开启SercureCRT,执行vbs脚本命令,执行完毕关闭SecureCRT软件与3CServer服务器,按当前日期指定位置生成文件夹,并将备份的配置文本,剪切到按日期生成的文件夹中,以记事本的形式编写完毕后,另存为文件以*.bat的格式生成可执行批交易。

完整的代码可参考《网络安全和信息化》2018年5月刊登的“网络配置定时备份”,下面为脚本部分关键代码:

.........

rem 打开3CServer服务器

start "" "C:Program Files3Com3CServer.exe"

start "" "C:Program FilesSecureCRTSecureCRT.EXE" /script D:SecureScriptAR01备份脚本.vbs

.........

设置SSH脚本定时执行计划

SSH网络自动登录脚本编写完成后,下一个问题就是如何触发这个批交易,让它每周能够定时执行,可以通过很多备份软件执行,而借助Windows任务计划不下载任何软件,能够轻松完成批交易的触发。因该部分内容与笔者发表的“网络配置定时备份”一样,因而该部分省略详情可参考《网络安全和信息化》2018年5月刊。

总结

网络安全采用SSH验证登录后,虽繁琐但安全性大大提高,亦能通过脚本指令完成整个相对复杂的登录过程,特别针对核心交换设备均需要采用SSH验证方式,自动化同时又能提供安全,而且自动化备份过程除了与Telnet执行脚本指令不同外,其他批交易指令的编写及Windows的任务计划基本相同,能轻松实现网络设备高安全的自动备份,减少网络管理员的运维任务。

猜你喜欢
网络设备脚本备份
网络设备的安装与调试课程思政整体设计
利用云备份微信聊天记录
网络设备故障分析与检测系统的需求分析
网络设备安全漏洞发展趋势研究
如何只备份有用数据而不备份垃圾数据
Windows10应用信息备份与恢复
自动推送与网站匹配的脚本
旧瓶装新酒天宫二号从备份变实验室
举一反三新编
愚公移山