編者按:本文通過實例介紹了多臺網絡共享存儲間通過SSH模式進行Rsync同步,把一份文件變成多份,提高了存儲的安全性;遠程用戶通過SSL VPN方式訪問共享文件時與互聯網進行隔離,提高了訪問的安全性。
筆者單位用FreeNAS搭建了一臺供多用戶使用的網絡存儲,以SMB共享方式為內部用戶提供共享文件夾,運行一直比較穩定?,F因用戶資料重要,且具有私密性,筆者從網絡安全、存儲安全和訪問安全三個層面進行設計并實施,很好地滿足了其防丟失、防竊取等安全性要求。

圖1 網絡拓撲圖
為用戶提供共享文件夾的FreeNAS服務器A位于內部服務器區,新搭建一臺FreeNAS服務器B作為主備份服務器,購買一臺群暉DSM存儲C作為輔備份服務器,均部署在內網服務器區。DMZ區部署一臺NTP服務器,為服務器A、B、C提供授時,使其保持時間同步。服務 器A、B、C可以訪問DMZ區的NTP服務器,但不能訪問Internet,以保證其網絡安全。組網拓撲圖如圖1所示。
A作為Rsyn c(遠程同步)的客戶端,B和C作為Rsync的服務端,A向B和C發起Rsync連接,連接時使用SSH協議以提高安全性。連接成功后按照PUSH(推)的方式將共享文件夾中的文件增量備份到B和C。其體系結構如圖2所示。

圖2 Rsync備份服務器體系結構
服務器A
IP:192.168.1.101
主機名:nasA
數據集:storA
服務器B
IP:192.168.1.102
主機名:nasB
數據集:storB
服務器C
IP:192.168.1.103
主機名:nasC
共享文件夾:storC
A和B均用默認管理員帳號root登錄WebGUI,開啟SSH服務,并勾選“以root用戶身份使用密碼登錄”選項,勾選“自動啟動”選項;C用系統安裝時創建的管理員帳號”superman”登錄,在“控制面板-終端機和SNMP-終端機”中啟動SSH功能。
A與B、C進行Rsync同步前,需要先建立SSH連接。為了避免每次連接時均要輸入被連接方的用戶名密碼,簡化連接過程,實現自動連接,需要在發起SSH連接的A服務器上生成公/私密鑰對,并將A的公鑰放入被連接方的authorized_keys文件中。
(1)在A上生成公/私密鑰對
在A的WebGUI的命令行下,運行“ssh-keygen -t rsa”命令,創建一個RSA類型的SSH密鑰對。運行“cat.ssh/id_rsa.pub”,查看其公鑰,鼠標選中公鑰文本的全部內容,復制到剪貼板。
(2)在B上粘貼A的公鑰
在B的WebGUI界面,點擊“帳戶-用戶-root”,編輯root帳戶,將A的公鑰粘貼到“Authentication-SSH公鑰”下,保存。這樣在B的root用戶的家目錄的.ssh子目錄下便產生了“authorized_keys”文件,其內容為A的公鑰。當A向B發起SSH連接時,B檢索到認證文件中有A的公鑰(證書),便會與A實現無需密碼認證的連接。
(3)在C上粘貼A的公鑰
C是群暉的DSM(DiskStation Manager)系統,其WebGUI界面下沒有命令行,需要通過SSH客戶端軟件來運行命令行。SSH客戶端以管理員帳號superman(安裝DSM系統時創建)連接后,提示“Could not chdir to home directory/var/services/homes/superman:No such file to directory“,即DSM沒有為用戶創建家目錄。此時我們需要為用戶創建家目錄、.ssh目錄和認證文件。運行如下命令

將A的公鑰粘貼到“authorized_keys”文件中,保存。當A向C發起SSH連接時,C檢索到認證文件中有A的公鑰(證書),便會與A實現無需密碼認證的連接。
(4)測試SSH連接
在A的WebGUI界面的命令行下,運行

結果均連接成功,無需輸入密碼
本例中我們將A做為Rsync的客戶端,B和C做為Rsync的服務端,把A上所有用戶的共享文件夾遠程同步到B、C服務器進行備份。FreeNAS系統中Rsync客戶端方不需要啟用Rsync服務,當采用SSH認證模式時,服務器方也不需要啟用Rsync服務,因此A和B不啟用Rsync服務。而C是群暉的DSM系統,需要啟用Rsync服務。
(1)在A上創建Rsync任務
在A的WebGUI界面下,“任務-Rsync任務“中,添加2個Rsync任務,分別是與B和C進行同步。其設置參數為:
任務1

創建任務2之前,我們要查看C上共享文件夾的絕對路徑。用SSH客戶端軟件連接B,運行“ls/“命令,發現有個volume1目錄,運行” ls/ volume1“命 令,volume1下有個storC子目錄,共享文件夾的絕對路徑為“/volume1/storC”。
任務2


(2)在C上啟用rsync服務
在C的WebGUI界面下,“控制面 板-文件服務-rsync”,啟用rsync服務。
(3)測試Rsync任務
在A的WebGUI界面下,“任務-Rsync任務”中,選中任務1,點擊任務1最右邊的“>”箭頭展開任務1,點擊“立即運行”,彈出“任務已開始”的提示,根據數據量大小不同,經過一段時間同步,任務狀態顯示”SUCCESS”。同樣,測試一下任務2,同步也是成功的。
之后,每過一個小時,A就會運行任務1和任務2,向B、C發起Rsync請求,進行增量備份,即只需把上次同步以來,有改變的文件備份到B和C上。
如果要在B上查看從A同步備份過來的文件,在B的WebGUI界面的命令行下,運行“ls/mnt/storB”,發現該目錄下有個“storA”子目錄,其內容與A上的“/mnt/storA”完全相同,表明已同步成功。
同樣,SSH客戶端軟件查看C上的“/volume1/storC”下也有“storA”子目錄,同步成功。
由于A、B、C服務器均未對Internet開放服務,內網用戶訪問A提供的共享文件夾是相對安全的。如何讓遠程辦公的移動用戶既能訪問A,又保證安全,我們對移動用戶設計了通過SSL VPN的訪問方式,并設置網絡隔離策略,當移動用戶連接VPN后,就會與Internet隔離,無法打開Internet網頁,與Internet相連的程序如QQ、微信等也會處于離線狀態。內、外網絡邊界有一臺天融信的多合一網關,其帶有IPSEC VPN和SSL VPN功能,需要對其進行網絡隔離設置,設置如下:
在多合一網關的WebGUI界面下,“SSL VPN-模塊管理”中,編輯“全網接入”模塊,參數如下:
DHCP服務器類型:本地
虛擬網卡接口IP:10.10.10.1//為多合一網關添加一個Loopback環回接口
虛擬網卡接口IP子網掩碼:255.255.255.0
工作模式:網絡隔離(禁止上網)
在“網絡管理-DHCP-DHCP服務器”中,為“lo”(Loopback環回接口)創建一個地址池,此處為100.100.100.0/24。
在“用戶認證-用戶管理-添加組”中,新建一個用戶組,命名為“share folder”,編輯這個組,基本信息設置如下:
所屬父組:root
//此組為一級組
虛地址池:100.100.100.0/255.255.255.0//上一步中創建的地址池
繼承父組的屬性配置:否
//需要定制組的屬性
強制下級組或用戶繼承屬性配置:是
繼承父組的角色權限:否
//需要定制角色權限
認證策略設置如下:
使用全局認證設置:不勾選
認證因子:勾選口令認證
口令復雜度:勾選包含大小寫字母、數字、特殊字符等
其他屬性設置如下:
SSL VPN全網接入工作模式:網絡隔離(禁止上網)
在“SSL VPN-資源管理”中,添加一條允許SSL VPN用戶訪問的資源,設置如下:
資源名稱:共享文件夾
訪問方式:全網接入
//在3.1的SSL VPN模塊設置中已為全網接入模塊設置了網絡隔離工作模式
資源地址:http://192.1 68.1.101//這里只是為用戶訪問A服務器設置一個鏈接,實際上用戶使用時不需要點擊這個鏈接
IP地址:192.168.1.101//A服務器的IP地址
網絡掩碼:255.255.255.255
協議類型:IP
SSL VPN用戶連接成功后,運行“\192.168.1.101”訪問共享文件夾。
之所以不在訪問方式中選擇“應用Web化”,在協議類型中選擇”文件共享“,是因為SSL VPN模塊管理中“應用Web化”模塊無法編輯,也就無法設置網絡隔離工作模式。
在“用戶認證-角色管理”中添加角色,角色名為“共享文件夾”。編輯此角色,組選擇3.3中創建的“share folder”組,SSLVPN資源選擇3.4中創建的“共享文件夾”資源。
在“用戶認證-用戶管理”中添加用戶,其設置如下:
名稱:user1
所屬父組:share folder
帳號類型:本地
口令:
//設置用戶口令
確認口令:
此處采用角色管理,用戶屬于“share folder”組,share folder組屬于“共享文件夾”角色,“共享文件夾”角色擁有訪問“共享文件夾”這一SSLVPN資源的權限。
在“網絡管理-路由-路由表”中,添加兩條靜態路由,設置如下:
路由1設置
目的地址:100.100.100.0
目的掩碼:255.255.255.0
網關:10.10.10.1
出接口:sslvpn0
//多合一網關自帶SSL VPN 0虛接口,用于SSL VPN數據包路由
路由2設置
目的地址:10.10.10.0
目的掩碼:255.255.255.0
網關:0.0.0.0
出接口:sslvpn0
此外,當在3.2中創建了DHCP地址池以后,路由表中便自動產生了如下一條路由3:
目的地址:10.10.10.1
目的掩碼:255.255.255.2 55
網關:0.0.0.0
出接口:lo
當移動用戶user1以SSL VPN方式連接多合一網關時,從網關的DHCP地址池100.100.100.0/24中獲取一個臨時地址如100.100.100.5/24,訪問方式為“全網接入”。
由于SSL VPN模塊全網接入的工作模式為“網絡隔離(禁止上網)”,用戶user1此時已無法打開Internet網頁,與Internet相連的程序如QQ、微信等也會處于離線狀態,這實際上是通過路由黑洞實現的。
用戶僅能訪問IP地址為192.168.1.101的A服務器,而無法訪問內網中其它IP地址。這大大提高了移動用戶訪問共享文件夾的安全性。
多臺網絡存儲服務器間通過Rsync遠程同步進行增量備份,既可以避免只有一臺存儲存在的單點故障問題,又可以避免手工備份造成的工作量加大和數據不一致缺陷,而通過SSL VPN及網絡隔離措施,既可以為移動用戶提供遠程訪問共享文件夾服務,又可以保證其訪問過程中的安全性。