技術簡介
當今,
信息系統已經越來越像電力、交通、通信系統一樣,成為我們工作當中不可或缺的
基礎設施之一。信息系統的建設相對於其他基礎設施的建設歷史還十分短暫,系統的穩定性和成熟性還不高,這一點與其基礎設施的地位還不相稱。
很多經驗教訓顯示,不重視信息系統的安全穩定建設.一個很小的故障或人為失誤往往會造成重大的損失。在保障信息系統的安全,以進一步保證工作和業務順暢運行,同時保護政府/企業的核心信息資產不受損失方面,業務連續性系統是一重要的概念。
當今,越來越多的業務尋求實施業務連續性方案,以確保業務能夠在任何狀態下連續運轉。這就是自動化存儲可以協助完成的地方。
EMC自動化存儲
不夠穩定、缺乏保護的基礎架構會阻礙該機構發揮在各類停機事故中成功脫險的能力。僅僅恢覆信息系統並不能解決問題——它們需要的是恢復業務運行。通常認為50%或許比它更少的數據是重要數據。而最近發現數據和套用相互依存使得重要數據的比例增加到80%。
EMC自動網路存儲協助政府/企業保護關鍵性資產——數據的互相依賴性使得所有套用都變得非常關鍵。整合能夠實現全面保護,能夠在需要時為數據製作多份本地或遠程拷貝,也能夠在業務正常訪問數據的同時執行保護流程。
運用自動化網路存儲,客戶可以徹底消除對麻煩且不可靠的基於
磁帶的數據保護方式的依賴。EMC的解決方案最終為政府/企業提供一條可以滿足在當前的條件下還無法實現的業務連續性目標的道路。
政府/企業可以運用自動網路存儲對關鍵性業務連續流程進行控制。運用EMC開放存儲管理軟體,管理工作可以遠程進行——減少對員工的依賴,降低成本並降低風險。
用自動化網路存儲方案實現業務連續性很多政府機構/企業採用的基礎架構包括幾種UNIX和Windows作業系統,並配備本地存儲。它包含各種
數據孤島,而所有這些信息都沒有實現聯網,加大了信息共享難度,且信息管理也需要耗費大量時間和資金。除了這些系統所面臨的管理挑戰之外,備份流程也無法在允許的時間內成,使得客戶可能丟失數據。而且,由於各
備份必須針對各主機平台分別完成。信息的同步變得幾乎不可能實現。
而EMC的自動化網路存儲方案,能夠幫助政府機構/企業全面解決這些問題。為了實現一個強壯的業務連續性環境,需要制定完善的計畫。在制定計畫和實施的過程中包括幾個主要步驟和幾個關鍵行動。在業務連續性中的第一個關鍵行動是”業務影響評估”(BlA)。BIA回答了“如果套用或業務程式中斷運行,客戶將付出多大代價”和“客戶可以付擔得起多少數據丟失“的問題。這一信息導致了對”恢復時間目標”(RTO)的義——在信息系統中斷時,套用需要多快可以重新運轉,對“恢復點目標”(RPO)的定義——業務過程可以忍受多少數據丟失。懂得這些信息可以很大程度上鑑別出一般類型的“業務連續性或災難恢復”(BC/DR)基礎架構的必要條件。
而
風險評估可以識別出“客戶的組織機構中有可能會發生什麼問題”。就像上面提到的”業務影響評估”,當客戶能夠很好理解最有可能發生的風險時,就可以更好地開發一個最理想的“業務連續性或災難恢復”(BC/DR)基礎架構。一旦大家都知道了災難恢復基礎架構,在技術方面和業務流程程方面都需要制定詳細的計畫。
一旦制定完計畫,具體的實施就開始了,關鍵是確保預先設計的計畫可以經得起時間的考驗。“災難恢復計畫”需要定期測試,並且相應的解決方案必須有充分的能力,允許有效地進行測試。
綜上所述:政府機構和企業通過部署自動化存儲網路,可以極大的提高信息系統的可靠性,使得信息系統如同其他的基礎設施一樣,為業務的連續運行提供可信的安全保障。
日誌的自動化存儲實現
在實現
系統日誌的自動備份上,要考慮
伺服器的安全問題。伺服器一般都是放在
防火牆的後面。防火牆默認所有的連線埠都是關閉的,伺服器需要什麼連線埠,在防火牆上就開啟什麼連線埠。一般來說,我們只是打開 80、 20、 21 等幾個連線埠。
連線埠開啟的越少系統則越安全。從安全性方面考慮,利用資料夾共享等方式來實現系統日誌的自動備份會用到 139 等連線埠,這樣會存在很嚴重的安全隱患。因為開啟 139 連線埠雖然可以提供
共享服務,但是常常被攻擊者所利用進行攻擊,比如使用流光、 SuperScan 等連線埠掃描工具,就可以掃描目標計算機的 139 連線埠,如果發現有
漏洞,可以試圖獲取用戶名和密碼,這是非常危險的,21 連線埠是用來實現
FTP 檔案傳輸的默認連線埠,所以可以通過 FTP 方式來遠程備份日誌。
Windows 系統日誌備份
對於採用 Windows 作業系統的伺服器,通過 FTP 傳輸來實現系統日誌的自動定期備份,需要利用 WSH(Windows Script Host)進行腳本編程。WSH 是 Microsoft 公司提供的腳本宿主軟體,包含在 WScript.exe 和 Cscript.exe 檔案中。採用 Wscript.exe 作為腳本宿主居多。微軟公司提供了兩種語言, VBScript 和 Jscript(JavaScript 的微軟版本)用來作為腳本引擎。所謂腳本其實就是純文本檔案,檔案擴展名為 VBS 或 JS.Wscript.exe 會使用不同的
腳本引擎來執行相應的腳本檔案。WSH 包含 SCRRUN.DLL 和 WSHOM.OCX 兩個檔案。
作業系統的日誌檔案是不能直接進行拷貝的,必須在事件查看器中手動給事件日誌打包或者用專門的軟體工具打包。我們在每一台伺服器上安裝一個名叫 Microsoft Product Support Reporting Tool 的工具,這個軟體每次運行後都會記錄下很多作業系統的信息。其中包括系統的日誌。系統日誌是以*.evt 檔案格式保存.這個軟體安裝後有一個名叫 MPSRpt.cmd 的檔案,把它放到計畫任務中,考慮到日誌的傳送會影響到伺服器的性能,假定把它設定為每天凌晨 2:00 執行,到這個時間系統的事件日誌就被自動備份到本機上了,然後編寫一個把系統日誌上傳到指定的FTP空間的腳本 ftpbak.txt,代碼如下:
open 10.10.2.23 /登錄到指定的 FTP 伺服器
syslog /FTP 用戶名
putlog /FTP 密碼
binarylcd C:\WINDOWS\MPSReports\Setup\Reports /指定本地上傳目錄
put WZDX-CMET_Application.evt /上傳“應用程式”事件
put WZDX-CMET_System.evt /上傳“系統”事件
bye /退出 FTP
把 ftpbak.txt 這個腳本放在 c:\ 目錄下,同時再編寫一個用來啟動 FTP 命令、調用 ftpbak.txt檔案的批處理腳本 startup-ftp.bat。代碼如下:
C:\WINDOWS\system32\ftp.exe -s:c:\ftpbak.txt
把 start-ftp.bat 這個腳本加到計畫任務中,設定在 2:30 執行。這樣就使生成的
日誌檔案自動地傳到指定的 FTP 空間裡。
Linux 系統日誌備份
對於採用
Linux 作業系統的伺服器,也可通過 FTP 傳輸來實現
系統日誌的自動定期備份。Linux 系統的各種日誌通常都放在/var/log 這個目錄下。這裡要用到 Linux 的計畫任務來實現日誌檔案的自動傳輸。在 Linux 系統中,計畫任務一般是由 cron 承擔,可以把 cron 設定為開機時自動啟動。cron 啟動後,它會讀取它的所有配置檔案(全局性配置檔案/etc/crontab,以及每個用戶的計畫任務配置檔案),然後 cron 會根據命令和執行時間來按時調用工作任務。利用 vi 打開crontab 後可以看到如下信息:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
30 15 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
據此可以知道在/etc/下還有四個目錄: cron.hourly、 cron.daily、 cron.weekly 和 cron.monthly,只要把需要按計畫每小時、每天、每周、每月執行的
腳本放在相應的目錄下就可以了。cron 配置計畫任務的書寫格式是:分鐘 小時 日 月 周 [用戶名] 命令。其中第一欄位應該定義的是:分鐘,表示每個小時的第幾分鐘來執行,範圍是 0-59;第二欄位應該定義的是:小時,表示從第幾個小時來執行,範圍是 0-23;第三欄位應該定義的是:日期,表示從每個月的第幾天執行,範圍 1-31;第四欄位應該定義的是:月,表示每年的第幾個月來執行,範圍 1-12;第五欄位應該定義的是:周,表示每周的第幾天執行,範圍從是 0-6,其中 0 表示星期日;每六欄位應該定義的是:用戶名,也就是執行程式要通過哪個用戶來執行,這個可省略;第七欄位應該定義的是:執行的命令和參數。
例如設定
系統日誌的傳送時間是每天的 15 點 30 分,把傳送日誌的腳本 ftpbak.sh 放在/etc/cron.daily/目錄下。 Ftpbak.sh 的代碼如下:
#!/bin/shecho " open 10.10.2.23 /*用 open 連線日誌伺服器 */
user syslog putlog /*輸入用戶名和密碼*/
binary /*以二進制傳輸*/
hash /*當有數據傳輸時,顯示#號*/
lcd /var/log /*更換到日誌所在目錄*/
put messages.1 /*上傳日誌信息*/
bye " | ftp –n /*執行 ftp 命令*/
這樣在規定的時間, Linux 伺服器也會自動把自己的日誌傳到日誌伺服器上。這時,還有一個問題,按照我們編寫的腳本程式,每天上傳的日誌檔案名稱字都是相同的。這樣在日誌伺服器里今天上傳的日誌就會把昨天上傳的日誌覆蓋掉。所以還需編寫一個腳本 rename.vbs,重新命名日誌伺服器中的日誌檔案。代碼如下:
dim time
‘把今天的日期轉化成字元串
time = CStr(Date())
Set objFSO = CreateObject("Scripting.FileSystemObject")
‘給應用程式事件檔案名稱前加上日期
objFSO.MoveFile "e:\log\WZDX-CMET_Application.evt", time & "-" & "WZDX-CMET_
Application" & ".evt"
‘給系統事件檔案名稱前加上日期
objFSO.MoveFile "e:\log\WZDX-CMET_System.evt" , time & "-" & "WZDX-CMET_System"
& ".evt"
‘給 Linux 系統日誌加上日期
objFSO.MoveFile "e:\log\messages.1" , time & "-" & “messages.1”
把 rename.vbs 這個腳本加到日誌伺服器的計畫任務中,設定為每天 3:00 自動執行。這樣就完成了通過 21 連線埠來遠程自動備份系統的日誌。