編者按:本文通過實例介紹了多臺網(wǎng)絡(luò)共享存儲間通過SSH模式進(jìn)行Rsync同步,把一份文件變成多份,提高了存儲的安全性;遠(yuǎn)程用戶通過SSL VPN方式訪問共享文件時與互聯(lián)網(wǎng)進(jìn)行隔離,提高了訪問的安全性。
筆者單位用FreeNAS搭建了一臺供多用戶使用的網(wǎng)絡(luò)存儲,以SMB共享方式為內(nèi)部用戶提供共享文件夾,運行一直比較穩(wěn)定?,F(xiàn)因用戶資料重要,且具有私密性,筆者從網(wǎng)絡(luò)安全、存儲安全和訪問安全三個層面進(jìn)行設(shè)計并實施,很好地滿足了其防丟失、防竊取等安全性要求。
圖1 網(wǎng)絡(luò)拓?fù)鋱D
為用戶提供共享文件夾的FreeNAS服務(wù)器A位于內(nèi)部服務(wù)器區(qū),新搭建一臺FreeNAS服務(wù)器B作為主備份服務(wù)器,購買一臺群暉DSM存儲C作為輔備份服務(wù)器,均部署在內(nèi)網(wǎng)服務(wù)器區(qū)。DMZ區(qū)部署一臺NTP服務(wù)器,為服務(wù)器A、B、C提供授時,使其保持時間同步。服務(wù) 器A、B、C可以訪問DMZ區(qū)的NTP服務(wù)器,但不能訪問Internet,以保證其網(wǎng)絡(luò)安全。組網(wǎng)拓?fù)鋱D如圖1所示。
A作為Rsyn c(遠(yuǎn)程同步)的客戶端,B和C作為Rsync的服務(wù)端,A向B和C發(fā)起Rsync連接,連接時使用SSH協(xié)議以提高安全性。連接成功后按照PUSH(推)的方式將共享文件夾中的文件增量備份到B和C。其體系結(jié)構(gòu)如圖2所示。
圖2 Rsync備份服務(wù)器體系結(jié)構(gòu)
服務(wù)器A
IP:192.168.1.101
主機名:nasA
數(shù)據(jù)集:storA
服務(wù)器B
IP:192.168.1.102
主機名:nasB
數(shù)據(jù)集:storB
服務(wù)器C
IP:192.168.1.103
主機名:nasC
共享文件夾:storC
A和B均用默認(rèn)管理員帳號root登錄WebGUI,開啟SSH服務(wù),并勾選“以root用戶身份使用密碼登錄”選項,勾選“自動啟動”選項;C用系統(tǒng)安裝時創(chuàng)建的管理員帳號”superman”登錄,在“控制面板-終端機和SNMP-終端機”中啟動SSH功能。
A與B、C進(jìn)行Rsync同步前,需要先建立SSH連接。為了避免每次連接時均要輸入被連接方的用戶名密碼,簡化連接過程,實現(xiàn)自動連接,需要在發(fā)起SSH連接的A服務(wù)器上生成公/私密鑰對,并將A的公鑰放入被連接方的authorized_keys文件中。
(1)在A上生成公/私密鑰對
在A的WebGUI的命令行下,運行“ssh-keygen -t rsa”命令,創(chuàng)建一個RSA類型的SSH密鑰對。運行“cat.ssh/id_rsa.pub”,查看其公鑰,鼠標(biāo)選中公鑰文本的全部內(nèi)容,復(fù)制到剪貼板。
(2)在B上粘貼A的公鑰
在B的WebGUI界面,點擊“帳戶-用戶-root”,編輯root帳戶,將A的公鑰粘貼到“Authentication-SSH公鑰”下,保存。這樣在B的root用戶的家目錄的.ssh子目錄下便產(chǎn)生了“authorized_keys”文件,其內(nèi)容為A的公鑰。當(dāng)A向B發(fā)起SSH連接時,B檢索到認(rèn)證文件中有A的公鑰(證書),便會與A實現(xiàn)無需密碼認(rèn)證的連接。
(3)在C上粘貼A的公鑰
C是群暉的DSM(DiskStation Manager)系統(tǒng),其WebGUI界面下沒有命令行,需要通過SSH客戶端軟件來運行命令行。SSH客戶端以管理員帳號superman(安裝DSM系統(tǒng)時創(chuàng)建)連接后,提示“Could not chdir to home directory/var/services/homes/superman:No such file to directory“,即DSM沒有為用戶創(chuàng)建家目錄。此時我們需要為用戶創(chuàng)建家目錄、.ssh目錄和認(rèn)證文件。運行如下命令
將A的公鑰粘貼到“authorized_keys”文件中,保存。當(dāng)A向C發(fā)起SSH連接時,C檢索到認(rèn)證文件中有A的公鑰(證書),便會與A實現(xiàn)無需密碼認(rèn)證的連接。
(4)測試SSH連接
在A的WebGUI界面的命令行下,運行
結(jié)果均連接成功,無需輸入密碼
本例中我們將A做為Rsync的客戶端,B和C做為Rsync的服務(wù)端,把A上所有用戶的共享文件夾遠(yuǎn)程同步到B、C服務(wù)器進(jìn)行備份。FreeNAS系統(tǒng)中Rsync客戶端方不需要啟用Rsync服務(wù),當(dāng)采用SSH認(rèn)證模式時,服務(wù)器方也不需要啟用Rsync服務(wù),因此A和B不啟用Rsync服務(wù)。而C是群暉的DSM系統(tǒng),需要啟用Rsync服務(wù)。
(1)在A上創(chuàng)建Rsync任務(wù)
在A的WebGUI界面下,“任務(wù)-Rsync任務(wù)“中,添加2個Rsync任務(wù),分別是與B和C進(jìn)行同步。其設(shè)置參數(shù)為:
任務(wù)1
創(chuàng)建任務(wù)2之前,我們要查看C上共享文件夾的絕對路徑。用SSH客戶端軟件連接B,運行“l(fā)s/“命令,發(fā)現(xiàn)有個volume1目錄,運行” ls/ volume1“命 令,volume1下有個storC子目錄,共享文件夾的絕對路徑為“/volume1/storC”。
任務(wù)2
(2)在C上啟用rsync服務(wù)
在C的WebGUI界面下,“控制面 板-文件服務(wù)-rsync”,啟用rsync服務(wù)。
(3)測試Rsync任務(wù)
在A的WebGUI界面下,“任務(wù)-Rsync任務(wù)”中,選中任務(wù)1,點擊任務(wù)1最右邊的“>”箭頭展開任務(wù)1,點擊“立即運行”,彈出“任務(wù)已開始”的提示,根據(jù)數(shù)據(jù)量大小不同,經(jīng)過一段時間同步,任務(wù)狀態(tài)顯示”SUCCESS”。同樣,測試一下任務(wù)2,同步也是成功的。
之后,每過一個小時,A就會運行任務(wù)1和任務(wù)2,向B、C發(fā)起Rsync請求,進(jìn)行增量備份,即只需把上次同步以來,有改變的文件備份到B和C上。
如果要在B上查看從A同步備份過來的文件,在B的WebGUI界面的命令行下,運行“l(fā)s/mnt/storB”,發(fā)現(xiàn)該目錄下有個“storA”子目錄,其內(nèi)容與A上的“/mnt/storA”完全相同,表明已同步成功。
同樣,SSH客戶端軟件查看C上的“/volume1/storC”下也有“storA”子目錄,同步成功。
由于A、B、C服務(wù)器均未對Internet開放服務(wù),內(nèi)網(wǎng)用戶訪問A提供的共享文件夾是相對安全的。如何讓遠(yuǎn)程辦公的移動用戶既能訪問A,又保證安全,我們對移動用戶設(shè)計了通過SSL VPN的訪問方式,并設(shè)置網(wǎng)絡(luò)隔離策略,當(dāng)移動用戶連接VPN后,就會與Internet隔離,無法打開Internet網(wǎng)頁,與Internet相連的程序如QQ、微信等也會處于離線狀態(tài)。內(nèi)、外網(wǎng)絡(luò)邊界有一臺天融信的多合一網(wǎng)關(guān),其帶有IPSEC VPN和SSL VPN功能,需要對其進(jìn)行網(wǎng)絡(luò)隔離設(shè)置,設(shè)置如下:
在多合一網(wǎng)關(guān)的WebGUI界面下,“SSL VPN-模塊管理”中,編輯“全網(wǎng)接入”模塊,參數(shù)如下:
DHCP服務(wù)器類型:本地
虛擬網(wǎng)卡接口IP:10.10.10.1//為多合一網(wǎng)關(guān)添加一個Loopback環(huán)回接口
虛擬網(wǎng)卡接口IP子網(wǎng)掩碼:255.255.255.0
工作模式:網(wǎng)絡(luò)隔離(禁止上網(wǎng))
在“網(wǎng)絡(luò)管理-DHCP-DHCP服務(wù)器”中,為“l(fā)o”(Loopback環(huán)回接口)創(chuàng)建一個地址池,此處為100.100.100.0/24。
在“用戶認(rèn)證-用戶管理-添加組”中,新建一個用戶組,命名為“share folder”,編輯這個組,基本信息設(shè)置如下:
所屬父組:root
//此組為一級組
虛地址池:100.100.100.0/255.255.255.0//上一步中創(chuàng)建的地址池
繼承父組的屬性配置:否
//需要定制組的屬性
強制下級組或用戶繼承屬性配置:是
繼承父組的角色權(quán)限:否
//需要定制角色權(quán)限
認(rèn)證策略設(shè)置如下:
使用全局認(rèn)證設(shè)置:不勾選
認(rèn)證因子:勾選口令認(rèn)證
口令復(fù)雜度:勾選包含大小寫字母、數(shù)字、特殊字符等
其他屬性設(shè)置如下:
SSL VPN全網(wǎng)接入工作模式:網(wǎng)絡(luò)隔離(禁止上網(wǎng))
在“SSL VPN-資源管理”中,添加一條允許SSL VPN用戶訪問的資源,設(shè)置如下:
資源名稱:共享文件夾
訪問方式:全網(wǎng)接入
//在3.1的SSL VPN模塊設(shè)置中已為全網(wǎng)接入模塊設(shè)置了網(wǎng)絡(luò)隔離工作模式
資源地址:http://192.1 68.1.101//這里只是為用戶訪問A服務(wù)器設(shè)置一個鏈接,實際上用戶使用時不需要點擊這個鏈接
IP地址:192.168.1.101//A服務(wù)器的IP地址
網(wǎng)絡(luò)掩碼:255.255.255.255
協(xié)議類型:IP
SSL VPN用戶連接成功后,運行“\192.168.1.101”訪問共享文件夾。
之所以不在訪問方式中選擇“應(yīng)用Web化”,在協(xié)議類型中選擇”文件共享“,是因為SSL VPN模塊管理中“應(yīng)用Web化”模塊無法編輯,也就無法設(shè)置網(wǎng)絡(luò)隔離工作模式。
在“用戶認(rèn)證-角色管理”中添加角色,角色名為“共享文件夾”。編輯此角色,組選擇3.3中創(chuàng)建的“share folder”組,SSLVPN資源選擇3.4中創(chuàng)建的“共享文件夾”資源。
在“用戶認(rèn)證-用戶管理”中添加用戶,其設(shè)置如下:
名稱:user1
所屬父組:share folder
帳號類型:本地
口令:
//設(shè)置用戶口令
確認(rèn)口令:
此處采用角色管理,用戶屬于“share folder”組,share folder組屬于“共享文件夾”角色,“共享文件夾”角色擁有訪問“共享文件夾”這一SSLVPN資源的權(quán)限。
在“網(wǎng)絡(luò)管理-路由-路由表”中,添加兩條靜態(tài)路由,設(shè)置如下:
路由1設(shè)置
目的地址:100.100.100.0
目的掩碼:255.255.255.0
網(wǎng)關(guān):10.10.10.1
出接口:sslvpn0
//多合一網(wǎng)關(guān)自帶SSL VPN 0虛接口,用于SSL VPN數(shù)據(jù)包路由
路由2設(shè)置
目的地址:10.10.10.0
目的掩碼:255.255.255.0
網(wǎng)關(guān):0.0.0.0
出接口:sslvpn0
此外,當(dāng)在3.2中創(chuàng)建了DHCP地址池以后,路由表中便自動產(chǎn)生了如下一條路由3:
目的地址:10.10.10.1
目的掩碼:255.255.255.2 55
網(wǎng)關(guān):0.0.0.0
出接口:lo
當(dāng)移動用戶user1以SSL VPN方式連接多合一網(wǎng)關(guān)時,從網(wǎng)關(guān)的DHCP地址池100.100.100.0/24中獲取一個臨時地址如100.100.100.5/24,訪問方式為“全網(wǎng)接入”。
由于SSL VPN模塊全網(wǎng)接入的工作模式為“網(wǎng)絡(luò)隔離(禁止上網(wǎng))”,用戶user1此時已無法打開Internet網(wǎng)頁,與Internet相連的程序如QQ、微信等也會處于離線狀態(tài),這實際上是通過路由黑洞實現(xiàn)的。
用戶僅能訪問IP地址為192.168.1.101的A服務(wù)器,而無法訪問內(nèi)網(wǎng)中其它IP地址。這大大提高了移動用戶訪問共享文件夾的安全性。
多臺網(wǎng)絡(luò)存儲服務(wù)器間通過Rsync遠(yuǎn)程同步進(jìn)行增量備份,既可以避免只有一臺存儲存在的單點故障問題,又可以避免手工備份造成的工作量加大和數(shù)據(jù)不一致缺陷,而通過SSL VPN及網(wǎng)絡(luò)隔離措施,既可以為移動用戶提供遠(yuǎn)程訪問共享文件夾服務(wù),又可以保證其訪問過程中的安全性。