■ 江西 張亮
編者按:筆者通過比較telnet與SSH方式異同,親自實踐如何通過腳本實現SSH自動登錄。
根據網絡安全加固要求,筆者所在單位將轄內8臺核心網絡設備的登錄方式,均全部改為SSH登錄驗證方式,原Telnet服務關停并啟用只允許SSH登錄方式。關停Telnet服務后,核心網絡設備均需要借助SecureCRT中提供SSH1、SSH2登錄設備,原來通過cmd控制臺登錄方式將不能訪問。
因筆者分行機房8臺核心網絡設備,均改為SSH登錄方式后,原來編寫的Telnet腳本不能繼續自動登錄網絡設備,實現核心設備的定期備份。雖然采用SSH登錄驗證,網絡的安全性得到大大提高,但是作為一名分行的運維人員,核心網絡設備的定期備份依然不然少,起初失效后筆者通過手工每周定期網絡配置備份,但是工作量較繁瑣且經常忘記,后面筆者通過翻閱有關SSH相關資料,通過自身的親自實踐完成了SSH方式下設備自動登錄并實現備份。
SSH代表完全外殼(Secure Shell),它是通過互聯網訪問網絡設備和服務器唯一的主要協議,默認運行端口是22,更安全而且加密傳輸。TELNET是電信(Telecommunications)和網絡(NetWorks)的聯合縮寫,UNIX平臺上最為熟知的網絡協議,是一種不安全的通信協議,它不使用任何安全機制,通過網絡/互聯網傳輸明文格式的數據,包括密碼任何嗅探工具都容易抓取數據包,默認運行端口是23。
筆者分行中心機房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服務。如果配置信息中為不包括該命令信息,則通過以下命令添加,下面筆者介紹華為與邁普兩種常用設備更改。
首選需要以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**/
ip ssh server /**開啟SSH服務**/
telnet server disable/*采用SSH成功登陸后,執行該命令*/
檢查完網絡設備均采用SSH驗證方式后,下一步需要編寫SSH登錄腳本指令,腳本指令同樣借助SecureCRT軟件完成,采用Telnet與SSH方式登錄其中一個不同之處,SSH需要指定加密方式,指令執行前需要將用戶名及密碼指定,而Telnet只需要網絡源IP地址,登錄后根據屏幕關鍵字提示輸入用戶名與密碼,下面筆者將兩種登錄方式命令對比如下。
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
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腳本自動登錄指令后,就需要開始編寫腳本的批交易執行命令,批交易編寫的思路為打開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網絡自動登錄腳本編寫完成后,下一個問題就是如何觸發這個批交易,讓它每周能夠定時執行,可以通過很多備份軟件執行,而借助Windows任務計劃不下載任何軟件,能夠輕松完成批交易的觸發。因該部分內容與筆者發表的“網絡配置定時備份”一樣,因而該部分省略詳情可參考《網絡安全和信息化》2018年5月刊。
網絡安全采用SSH驗證登錄后,雖繁瑣但安全性大大提高,亦能通過腳本指令完成整個相對復雜的登錄過程,特別針對核心交換設備均需要采用SSH驗證方式,自動化同時又能提供安全,而且自動化備份過程除了與Telnet執行腳本指令不同外,其他批交易指令的編寫及Windows的任務計劃基本相同,能輕松實現網絡設備高安全的自動備份,減少網絡管理員的運維任務。