5-1 CIFS/SMB/網芳(samba)
NAS最主要的目的就是網路檔案分享,而這裡介紹最常用的Windows和FreeNAS分享資料夾。CIFS是微軟作業系統環境下使用的通訊協定,我們所使用的網路芳鄰就是了。如果我們有微軟作業系統的PC要存取FreeNAS,就可使用CIFS/SMB服務。
1). 先進到系統裡點選,「服務」->「CIFS/SMB/網芳」。
2).勾選{啟動}。
3).認證方式:可選擇有三種,匿名者、本機使用者、Active Directory
5-1-1匿名者(Anonymous)
分享的資料夾如果要公開,不需要帳號密碼即可進入分享的資料夾存取。
1).在[認證方式]:可以選擇「匿名者(Anonymous)」。
2).在[NetBIOS名稱]:(像電腦名稱)可自訂,勿用空白鍵等奇怪字元,可輸入最大15個字元。
3).在[工作群組]:可自訂,建議使用WORKGROUP,因為大部份winxp pro內建群組都是WORKGROUP,Home版為MSHOME。
4).在[描述]:可自由地輸入想要的名稱。
5).以下使用預設值。
6).按下[儲存並重新啟動],設定完成。
7).接下來需新增一個共享資料夾,才可以從區域網路分享資料。按下右邊的標籤頁「共享」。
8). .增加一個共享資料夾:按下(+),在右邊部份。
9).在[名稱]:可行輸入共享資料夾的名稱,勿用空白鍵等奇怪字元。
10).在[註解]:可自由地輸入想要的名稱,最好是取有意義的名字。
11).在[路徑]:設定分享的資料夾存在的地方,可以按下右邊的[...]選擇路徑。
12).以下使用預設值。
13).按下[增加],設定完成。
14).要記得按下「套用」才能生效。
15).現在我們利用winxp os的電腦來觀察[網路芳鄰]。
16).開啟我的電腦後左邊有個「網路芳鄰」按下去。
17).看見FreeNAS網路共享的資料夾。
18).若沒有看見,請按左邊「檢視工作群組電腦」,就會發現FreeNAS Server(Heapnas)。
19).對「FreeNAS Server」圖示按下去,就看見FreeNAS網路共享的資料夾。
20).接下來,我們就可以在這共享的資料夾,存取資料了。
5-1-2本機使用者(Local User)
FreeNAS網路共享資料夾需要管理及管制,用戶需要帳號密碼進入共享的資料夾存取。
1).在[認證方式]:可以選擇「本機使用者(Local User)」。
2).在[NetBIOS名稱]:(像電腦名稱)可自訂,勿用空白鍵等奇怪字元,可輸入最大15個字元。
3).在[工作群組]:可自訂,建議使用WORKGROUP,因為大部份winxp pro內建群組都是WORKGROUP,Home版為MSHOME。
4).在[描述]:可自由地輸入想要的名稱。
5).以下使用預設值。
6).按下[儲存並重新啟動],設定完成。
7).接下來需新增一個共享資料夾,才可以從區域網路分享資料。按下右邊的標籤頁「共享」。
8).增加一個共享資料夾:按下(+),在右邊部份。
9).在[名稱]:可自由地共享資料夾的名稱,勿用空白鍵等奇怪字元。
10).在[註解]:可自由地輸入想要的名稱,最好是取有意義的名字。
11).在[路徑]:設定分享的資料夾存在的地方,可以按下右邊的[...]選擇路徑。
12).以下使用預設值。
13).按下[增加],設定完成。
14).要記得按下「套用」才能生效。
15).現在我們利用winxp os的電腦來觀察[網路芳鄰]。
16).開啟我的電腦後左邊有個「網路芳鄰」按下去。
17).再按左邊「檢視工作群組電腦」,就會發現FreeNAS Server(Heapnas)。
19).對「FreeNAS Server」圖示按下去,就出現需要輸入帳號密碼的視窗。將使用者帳號密碼輸入後就可存取共享的資料夾的檔案及目錄了。
5-1-3 Active Directory認證
當「存取權限」設定為Active Directory完成時,Active Directory認證方式才會有效。
5-2 FTP-檔案伺服器
FTP---File Transfer Protocol (client and server),它是一種獲得網際網路世界普遍採用的通訊協定之一, 是全世界最受歡迎的檔案傳輸標準,在1985年的時候有一組非商業組織的學者們,提出了一種開放的協定,提供給想要製作檔案傳輸相關應用的電腦軟體設計者們參考,讓大家可以依照這個標準,獨立製作出支持FTP協定的檔案傳輸軟體,確又可以確保互相能夠相容。
明白來說FTP就是用來的規範電腦之間傳輸檔案的共同協定(也就是規則),因此兩部不同的電腦之間傳遞檔案時,雖然檔案格式或本身電腦系統不同,但透過FTP協定就可以很容易讓兩部電腦檔案傳送順利進行。
因為FTP傳遞檔案是明碼封包,並未加密,如果您的資料對安全不是那麼要求的話,可將FreeNAS系統啟動FTP服務,提供使用者可以在網際網路上傳或是下載檔案。
FTP的Port Number埠號預設為21,通訊協定TCP,所以使用IP分享器的讀者們記得打開埠號21。
打造自己專屬的FTP伺服器
無論是上班時傳送檔案,或在學校交作業時,大家或許都有這種經驗,常常一份檔案大小就超過10MB,根本很難用E-mail寄送出去,這讓我們想傳送這種大檔案給其他人,時常無計可施。或是一些時候,想分享給朋友的mp3音樂、影片檔,檔案大小更是超過幾百MB。這時候,自己擁有一台FTP伺服器,放在家中或辦公室裡,是一件非常方便的事情。您可以自己管理規劃這台伺服器的權限安排,也可以方便的分享自己的檔案給同事或親友。
FreeNAS提供一個新選擇給使用者,FreeNAS有內建FTP伺服器的功能,您可以經由web管理介面啟動並設定FTP伺服器,設定方式非常簡單,所以一般的使用者皆可輕易的架設一個伺服器,以下示範如何只以幾個簡單的步驟在FreeNAS上架設FTP伺服器。
1). 先進入到「服務」->「FTP」->「設定」頁面。
2).勾選{啟動},在右上方。
3).在[TCP port]:輸入21(預設值)。TCP Port在ftp裡預設是21,這邊可以修改1~65535,基本上要修改的話建議使用1024以上的Port最好。
4).在[連線數目]:自行決定。
5).在[相同IP的連線數目]:自行決定。
6).在[失效時間]:閒置時,時間到自動切斷連線。
7).在[只允許本機使用者存取]:請勾選。
8).在[歡迎文字]:這邊可以輸入你要的歡迎文字。
9).在[續傳]:可勾選。
10).在[Ident 協定]:有必要時,需勾選。
PS:識別協定(Identification Protocol,又稱 "ident",也稱 "the Ident Protocol")提供測定特定TCP連線的使用者身份。給與一對 TCP 連接埠,它會傳回一個確任該連線在伺服端系統擁有者的字元字串。
現在網路活動那麽頻繁, 系統管理者 SA 對安全上的重視起來,譬如Tanet 開始強迫沒有 reverse DNS 註冊的使用者不能連上系統, 就有部份原因是因為安全上的考量。.
假設您是一個 BBS 的管理者,今天發現有一封廣告信貼在所有的版子,您想查清楚這封信的來源,如果發現它是某學校的一台 PC,那很好辦。但是,如果您發現對方的來源 IP 是一擁有幾萬個 user 的工作站,say, tpts1.seed.net.tw,那該怎麽辦?
Identd (及 Ident protocol) 就是針對這個理由設計出來的,假設現在有兩主機都support Ident protocol,也就是說,除了雙方都安裝了 identd 之外,雙方的 server 程式 (telnetd, sendmail, bbs...)都啟動 ident 查詢功能。如果您在主機 A 上要去連主機 B,主機 B 在接受您的連接 request 時,會向主機 A 上的 Identd 做身份查詢,也就是問問 "現在要連上我機器的夥伴,在你那兒是什麽身份",而主機 A 就會把你的身份(username/id) 報給主機 B。這麽一來,主機 B 就有了你的身份紀錄,要是發生什麽事, 秋後算帳就比較容易了。
11).在[反向DNS解析(Reverse DNS lookup)]:有必要時,需勾選。
PS:可逆DNS就是反向解析,就是把IP解析成功能變數名稱。相對應的,DNS是正向解析,把功能變數名稱解析成IP。可逆DNS的原理和DNS解析是完全相同的。DNS反向解析就是將IP反向查詢為功能變數名稱,在相關IP授權DNS伺服器上增加您的IP位址的PTR記錄。反向解析的意義是這個IP位址的網路身份是被認可的,是合法的。
反向DNS解析的目的是確定主機身份,網路最重要的事就是 “安全”,許多 server-client 程式在背後端 (Back-end) 執行 DNS 反查 (反解) 的動作。
最簡單的例子是 Telnet:
在Windows的命令提示列 (按[開始]->[所有程式]->[附屬應用程式]->[命令提示字元],鍵入 telnet 66.132.129.12 25就會出現220 mail21.mintac.net ESMTP Sendmail 8.12.8/8.12.8; Tue, 18 Dec 2007 23:04:01 -0500。
這是兩台 SMTP 伺服器開始的一段對話‧呼叫 66.132.129.12 就出現 mail21.mintac.net 的回答,像這樣由IP位址反向查詢主機名稱 (hostname) 的動作叫作反查或反解 (reverse lookup)。
12).在[偽裝位址(Masquerade address)]:如果你的FTP伺服器是架設在NAT環境之下,請輸入指定的IP位址。
13).在[被動連接埠(Passive ports)]:如果你的FTP伺服器是架設在NAT環境之下,請輸入被動連接埠區段起點及被動連接埠區段終點。
14).在[本機使用者頻寬(Local user bandwidth)]:是上傳速度限制,欄位空白代表不限制,另一個則為下載。
15).在[SSL/TLS]:是資料加密通訊協定,可自行決定勾選。
PS:SSL(Secure Socket Layer/Transport Layer Security)
Netscape Communications所開發的資料加密通訊協定,目前廣泛使用在網際網路上。SSL主要有兩種功能,其中之一為資料加密功能,防止個人、交易等資料被竊取、竄改、攻擊。另一則是身分辨識功能,避免進入仿冒網站。確認網站是否有SSL認證書,可以利用以下兩種方式:瀏覽器上網址的開頭是否是https://
瀏覽器上網址的右方會出現的黃色鎖記號,點選此鎖記號,會出現SSL證明書內容SSL的認證是經由經過RSA等公開鍵加密技術加密的電子認證書,資料的加密是採用DES、RC4等共有鍵加密技術的方式。在OSI模式是動作於第五層為Session層和第四層為Transport層之間,利用HTT通訊協定的AP,不用意識到任何就會自動的通過SSL加密。
TLS1.0為根據SSL3.0經過一些改良後的加密通訊協定。在IETF(Internet Engineering Task Force)組織,於RFC2246定義其規格。
16) .按下[儲存並重新啟動],設定完成。
重點:
如果您的FTP是在NAT之下的話,要做以下設定:
- 設定NAT主機做轉port到FreeNAS,TCP 21和一段TCP port)
- 增加公開IP於偽裝IP位址//重要
- 增加被動式連線埠的區段起點(pasv_min_port)
- 增加被動式連線埠的區段終點(pasv_max_port)
17). 現在可以利用FreeNAS的檔案管理員到主硬碟的根目錄下,新增一個FTP專用的資料夾。
18).在shareftp資料夾內再增加一個johnftp的資料夾。
19).在「存取權限」->「使用者/群組」,增加一個FTP用戶。
主要群組可選自定的。
但其餘群組必需要有「ftp」群組,請點選ftp。
家目錄路徑要選擇到shareftp的根目錄,家目錄路徑即為使用ftp登入後的預設路徑。
20).將「john」用戶,加選「ftp」群組,並且家目錄路徑要選擇到johnftp的根目錄。
21). .將「bill」用戶,加選「ftp」群組。
22). 我們可以使用網頁瀏覽器或是ftp客戶端軟體(這裡使用FileZilla)來登入FreeNAS FTP Server。
23).首先將mary用戶登入
主機(H):輸入ftp伺服器的IP位址,或網址。
使用者名稱(U):mary
密碼(W):****
連接埠(P):空,預設21,(如果在FreeNAS改過TCP Port這邊登入就要改連接埠)。
按下「快速連線」。
發現錯誤回應[530 Login incorrect]無法連線到伺服器。原因:mary用戶不是「ftp」群組成員。
24). bill用戶登入
登入目錄是/mnt,可以看見heap的資料夾。
故可以管理/mnt以下的檔案的權限。
25).ftpuser用戶登入
登入目錄是/mnt/heap/shareftp,可以看見johnftp的資料夾。
故可以管理/mnt/heap/shareftp以下的檔案的權限。
26).john用戶登入
登入目錄是/mnt/heap/shareftp/johnftp,只能看見johnftp的資料夾裡的檔案。
也只能可以管理/mnt/heap/shareftp/johnftp以下的檔案的權限。
5-3 TFTP-簡單文件傳輸傳輸協定。
TFTP簡介
TFTP(Trivial File Transfer Protocol,簡單文件傳輸傳輸協定)是一種簡化的FTP,於1980年定義。是TCP/IP傳輸協定族中的一個用來在客戶端機與伺服器之間進行簡單文件傳輸的傳輸協定,提供不複雜、預先配置不大的文件傳輸服務。TFTP承載在UDP上,提供不可靠的資料流傳輸服務,不提供存取授權與認證機制,使用超時重傳方式來保證資料的到達。與FTP相比,TFTP的大小要小的多。由於TFTP缺少安全性,在開放式網際網路上傳輸非常危險,所以普遍僅僅用於私人本地網路。
TFTP特點
- 使用UDP(埠69)作為其傳輸協議(不像FTP使用TCP埠21)。
- 不能列出目錄內容。
- 無驗證或加密機制。
- 被用於從遠程伺服器讀取或寫入文件。
- 支持三種不同的傳輸模式:"netascii","octet"和"mail",前兩種符合FTP協議中的"ASCII"和"image(binary)"模式;第三種從來很少使用,目前已經廢棄。
1). 先進入到「服務」->「TFTP」->「設定」頁面。及新增一個TFTP專用的資料夾(777)。
2).勾選{啟動},在右上方。
3).在[目錄]:設定「TFTP」的資料夾存在的地方,可以按下右邊的[...]選擇路徑。
4).在[允許新檔案]:請勾選。
出於安全考慮,在預設情況下,僅允許已存在的檔案上傳(By default, only already existing files can be uploaded. )。這句話的意思就是說,一般人即使知道伺服器開著TFTP,在不勾選“允許建立新檔案”時,非知情者很難猜中伺服器TFTP含有的檔案,因此不存在被惡意上傳寫入檔案的可能。提高了安全性。這裏打開是為了做測試。記得關閉哦。
5).其餘為預設值。
6).按下[儲存並重新啟動],設定完成。
7).對TFTP伺服器測試上傳及下載:
a.在D碟建立tftpup、tftpdown兩個資料夾,在tftpup資料夾內新增testup.txt、test.txt檔案。
b.將WINXP命令提示字元視窗開啟。
c.輸入:C:\>tftp –i 192.168.2.10 put d:\tftpup\testup.txt 後執行。
d.從網芳FreeNAS主機的sharetftp目錄中已發現testup.txt的檔案,再新增testdown.txt、testanew.txt檔案。
e.輸入:C:\>tftp –i 192.168.2.10 get testdown.txt d:\tftpdown\testdown.txt 後執行。
f. 從WINXP主機的D碟tftpdown目錄中已發現testdown.txt的檔案。
8).測試[允許新檔案]關閉。別忘按下[儲存並重新啟動],設定完成。
a.將WINXP命令提示字元視窗開啟。
b.輸入:C:\>tftp –i 192.168.2.10 put d:\tftpup\testup.txt 後執行。成功上傳。
c.輸入:C:\>tftp –i 192.168.2.10 get testanew.txt d:\tftpdown\testanew.txt 後執行。成功下載。
d.輸入:C:\>tftp –i 192.168.2.10 put d:\tftpup\test.txt 後執行。上傳失敗,因為sharetftp目錄不存在test.txt檔案,FreeNAS TFTP伺服器已不允許上傳建立新檔案。
5-4 SSH-支援SFTP安全檔案傳輸協定
在以前網路管理者都是使用 telnet 這種明碼傳輸的方式,進行從遠端連線到主機來管理。如果有心人使用像sniffit這類的封包擷取程式軟體或listen 的功能監聽你的資料封包,那麼你所傳送的帳號、密碼將會被遭到竊取了,在安全性上是一個大問題。
應該怎麼辦?既然使用 telnet 這種明碼的方式行不通的話,那麼我們要使用何種方式呢?現在有更好的方式來提供喔!那就是使用 SSH 的服務,最重要的是可以使用『非明碼』的方式來傳送你所鍵入的資料封包,也就是說,你的資料在網路上,即使被監聽而遭竊取了,由於 SSH 是一種加密過後的封包,故而即使被竊取了,該資料要經過解密也不是三天兩頭的事情,所以呢,就可以比較安全的工作!此外, SSH 同時也提供配合 PAM 的安全模組,與 TCP Wrappers 的封包限制(也就是 /etc/hosts.allow 與 /etc/hosts.deny 的機制),因此,安全性也就比較高一些,也避免成為被攻擊的對象。
SSH是Secure Shell protocol 的縮寫,優點為其傳輸的資料是經過壓縮的,所以可以加快傳輸的速度。可以用於取代rsh、rlogin、rcp、telnet、rexec、rcp和ftp等命令,又可以為FTP、POP、甚至為PPP提供一個安全的「通道」。
SSH協定框架中最主要的部分是三個協定:
- 傳輸層協定(The Transport Layer Protocol):傳輸層協定提供伺服器認證,資料機密性,資訊完整性等的支援。
- 使用者認證協定(The User Authentication Protocol):使用者認證協定為伺服器提供用戶端的身份鑒別。
- 連線協定(The Connection Protocol):連線協定將加密的資訊隧道復用成若干個邏輯通道,提供給更高層的應用協定使用。
各種高層應用協定可以相對地獨立於SSH基本體系之外,並依靠這個基本框架,透過連線協定使用SSH的安全機制。
在用戶端來看,SSH提供兩種級別的安全驗證。
- 第一種級別(基於密碼的安全驗證),知道帳號和密碼,就可以登入到遠端主機,並且所有傳輸的資料都會被加密。但是,可能會有別的伺服器在冒充真正的伺服器,無法避免被「有心人」攻擊。
- 第二種級別(基於密鑰的安全驗證),需要依靠密鑰,也就是你必須為自己建立一對密鑰,並把公有密鑰放在需要存取的伺服器上。用戶端軟體會向伺服器發出請求,請求用你的密鑰進行安全驗證。伺服器收到請求之後,先在你在該伺服器的使用者根目錄下尋找你的公有密鑰,然後把它和你發送過來的公有密鑰進行比較。如果兩個密鑰一致,伺服器就用公有密鑰加密「質詢」(challenge)並把它發送給用戶端軟體。從而避免被「有心人」攻擊。
- 在第一種方案中,主機將自己的公用密鑰分發給相關的客戶端,客戶端在存取主機時則使用該主機的公開密鑰來加密資料,主機則使用自己的私有密鑰來解密資料,從而實作主機密鑰認證,確定客戶端的可靠身份。
- 在第二種方案中,存在一個密鑰認證中心(CA),所有提供服務的主機都將自己的公開密鑰送出給認證中心,而任何作為客戶端的主機則只要保存一份認證中心的公開密鑰就可以了。在這種模式下,客戶端必須存取認證中心然後才能存取伺服器主機。
- Linux sysem:
ssh -l username host.name.domain
假設我要以 vbird 這個帳號登入一個名為 testing.adsldns.org 的主機,那麼就以:
ssh -l vbird testing.adsldns.org 來執行登入連線的程序!然後如果是第一次登入的話,你會發現到有一個訊息,告訴你要不要接受一個認證碼,直接選擇 yes 就可以連線了。使用 ssh 最大的另一個好處,root 也可以登入喔!
- Windows system:
1). 先進入到「服務」->「SSH」->「設定」頁面。
2).勾選{啟動},在右上方。
3).在[TCP port]:設置SSH的TCP監聽埠,預設是22,為增強系統安全,可以換另一個埠,如1049、1050,在1024以內的系統保留最好不用。
4).在[root准許登入]:出於安全考慮,在預設是“不允許”,這裏選擇進行測試,請勾選。
5).在[密碼認證]:設置密碼驗證方式,是否使用鍵盤交互驗證,預設使用,可以增強安全。
6).在[TCP 轉送]:建立SSH隧道,將其他TCP埠的網路資料通過防火牆來轉發。
7).在[資料壓縮]:預設為“不啟用”。建議啟用此選項,提高傳輸速度,提高其安全性。
8).在[私鑰]:如果想要為了伺服器更加安全,可以從主要憑證管理中心(CA)取得取得一份pem格式的憑證,將憑證內容貼入欄內當做「私鑰」,客戶端必需要同樣憑證做對應,才能連線成功。
9).按下[儲存並重新啟動],設定完成。
10) 在「存取權限」->「使用者/群組」,將bill、john用戶的登錄shell,設成“bash”。.
11). 我們可以使用putty、pietty或是WinSCP客戶端軟體(這裡使用WinSCP)來登入FreeNAS SFTP Server。
WinSCP 是在Windows中使用SSH的開放原始碼的圖形化SFTP用戶端。WinSCP同時也支援SCP通訊協定。它主要的功能是安全的在電腦間傳輸檔案。
WinSCP可以做所有簡單的檔案操作,包括下載與上傳檔案。它也可以重新命名檔案與資料夾、新增資料夾、變更內容、建立目錄連結(symbolic links)與捷徑,有雙視窗、檔案總管兩種程式介面可供選擇,讓使用者甚至可以管理自己電腦上的檔案。
首先在WINXP桌面WinSCP捷徑快按兩下,啟動WinSCP。
12).輸入主機名稱,埠號,使用者名稱:root(FreeNAS 管理者),密碼:freenas,協定選“SFTP”,最後按「登入」。
第一次登入,會看到這個對話方塊
這是要告訴你登入的主機公開金鑰指紋,點 Yes 就保存起來,以後就不會再彈出這個視窗,然後就正常登入。點“否”不保存,下次還是要提示你,然後也可以正常登入。如果一台主機我們只是臨時登入一下,當然就是點“否”了。Cancel 就是取消,也就是取消了這次登入。
如果你曾經登錄過這台主機,但是又彈出來這個對話方塊,可能有以下幾種情形:
- 主機重新安裝了作業系統
- 這台主機可能有多個IP,這次用的是另外一個 IP
- 有其他不懷好意的主機來冒充,誘騙我們登錄,竊取隱秘資訊
前兩個情形很常見,一般點 Yes 就行了。後面這個嘛,點 No/Cancel,再去詢問相關的主機管理人員。
注意:使用root用戶帳號有最大權限,FreeNAS主機的所有檔案都可任意更改。
13).接下來,我們將用bill、john、mary三個用戶做測試。
a.使用者bill,家目錄“/mnt”,可傳檔案到此目錄中。
在下圖左邊的視窗是指本機的我的文件的資料夾,右邊的視窗是指FreeNAS主機“/mnt”的資料夾。
上傳,將右視窗的檔案向左視窗拖曳。
下載,將左視窗的檔案向右視窗拖曳。注意檔案權限。
將右視窗的檔案向左視窗拖曳,出現“複製”對話視窗,按下「複製」鈕
正在上傳中。
上傳完成。
b.使用者john,家目錄“/mnt/”,可傳檔案到此目錄中。
c.使用者mary,家目錄“/mnt/”,沒有設定用戶的登錄shell,故無法登入。
5-5 NFS-所有UNIX系統最常用的網路檔案存取方式
網路檔案系統(Network File System,NFS ),是在 Unix 系統間實作磁碟檔案分享的一種方法,就好像是 UNIX 系統中的網路芳鄰,它支援應用程式在用戶端透過網路存取位於伺服器磁碟中資料的一種檔案系統協定。最早於1984年由昇陽開發。功能是透過網路讓不同的機器、不同的作業系統能夠彼此分享個別的資料。
NFS 將伺服器上的資料夾匯出,讓其他 UNIX 主機可以將所匯出的資料夾掛入。當您有多台 UNIX 主機時,使用 NFS 可以讓您共享同一個資料夾。如此一來,同一份資料就不必放在多台機器上,而可以經由 NFS 來節省空間並達到資料的同步。使用 NFS 不僅可以分享一個系統中的目錄,您也可以用來分享光碟機、軟碟機等裝置。
由於 NFS 發展已久,它和一般檔案分享協定最大的差別在於 NFS 的主要程式是內建在系統核心中,而非像 Samba、FTP 等主要的程式是安裝在另一套軟體上。
在使用 NFS 時,有些事我們必須特別注意。如果您 NFS server 負擔相當重,也許你會發現該伺服器時常沒有回應,而 client 端也會因此而無法動作。使用 NFS 時,網路卡的選擇及網路整體的品質很重要。否則在 client 和 server 系統負擔不一時,很容易產生沒有回應的情形。
1). 先進入到「服務」->「NFS」->「設定」頁面。
2).勾選{啟動},在右上方。
3).在[用戶服務的數量(Number of servers)]:預設是4個。為了檔案網路共享的品質,建議同一時間,連線到FreeNAS主機,使用NFS的服務,最好不要超過4到6個用戶。
4). 按下[儲存並重新啟動],啟動完成。
5).接下來需新增一個共享資料夾,才可以從區域網路分享資料。按下右邊的標籤頁「共享」。
6).增加一個共享資料夾:按下(+),在右邊部份。
7).在[路徑]:NFS檔案伺服器共用路徑。
8).在[所有人視為root]:選「是」(預設值)。小心使用,只有你完全信任的用戶,啟用它。
9).在[認可網路]:授權可以存取 NFS 分享區的網域,輸入你目前連線的區域網段。
10).在[註解]:可自由地輸入想要的名稱,最好是取有意義的名字,以後容易辨識。
11).在[所有目錄]:“勾選”將允許訪問共用目錄裏的所有檔案及子目錄,“不選”僅共用當前目錄裏的檔案。
12).按下[增加],設定完成。
13).要記得按下「套用」才能生效。
14). 以Ubuntu10.10配置 NFS 客戶端與FreeNAS伺服器連線測試,Ubuntu10.10原本沒有安裝NFS 客戶端的,因此我們首先安裝NFS 客戶端的nfs-common 和 portmap套件。
可以用終端機視窗,輸入:$sudo apt-get install nfs-common
啟動服務,輸入:$/etc/init.d/portmap start
$/etc/init.d/nfs-common start
或使用synaptic套件管理程式來安裝NFS客戶端
15).在快速搜尋欄,輸入:nfs-common,按下「搜尋」,可以很快找到nfs-common的套件。
16).將滑鼠指標移到nfs-common位置點選,則出現「標記安裝」。
17).按下「標記」。
18).按下「套用」。
19). 再按下「套用」。等待Ubuntu系統從網路下載套件安裝完成。
20). NFS客戶端套件安裝完成後,可以檢查NFS伺服器共用目錄的配置,使用「showmount -e 伺服器地址」檢查伺服器的配置是否正常以及客戶端和伺服器的連線。
開啟終端機視窗,輸入:showmount –e 192.168.2.10 執行。可以看到NFS伺服器共用目錄的路徑 /mnt/heap,表示連線成功。
21).接下來掛載遠端目錄,現在您可以用「mount -t nfs 伺服器地址:目錄 掛載點」連接有關目錄,例如將/mnt/heap掛載到/mnt下。
22).在/mnt目錄下,就可以發現伺服器的檔案,本機在此目錄所存取檔案,實際上是在遠端的伺服器上。
23).如果要卸載NFS的共享目錄,取消本機與NFS伺服器連線,可以執行「sudo umount掛載點」,例:$ sudo umount /mnt
24).現在/mnt目錄裡面沒有任何檔案。
5-6 AFP- Mac下的網路檔案分享協定
AFP 是 Apple Filing Protocol,是 Mac 作業系統內建的檔案分享功能,類似像 Windows 網路芳鄰的東西。任何一台 Mac 機作業系統都有內建支援 AFP 檔案分享的功能,直接在 Finder 下按 蘋果鍵+K 就可以開啟。
5-7 Rsync-數據鏡像同步備份工具
在個人使用電腦裡,經常存放了工作上或是生活上記憶的資料。這些資料對個人來說,都是極為重要的。因此,需要有效的方法來保護這些資料,如:隨身碟、可錄式的光碟片,都是用來避免資料損毀,造成損失與遺憾。
使用者除了資料備份的問題外,還會面臨一個問題,資料同步的問題。我們經常會修改資料,當資料變動時,為了資料保全,就要做一次備份。如此備份資料就成為煩瑣的工作。
如何將備份資料的工作自動化,是每個使用電腦者的夢想。現在介紹Rsync,可以以低成本的方式,解決資料備份與同步的問題。
Rsync 就是 remote sync。是個給Unix系統用的應用軟體,可以用來複製資料、備份資料以及同步資料。為了快速地完成備份工作,在開始傳輸檔案之前,會先比較兩端的檔案,找出資料有異動的部份,將這些異動的部份傳輸到目的端,完成備份工作。正因為Rsync只將資料有異動的部份傳輸到目的端,因此可以用來同步兩端的資料。它使從一個地方到另一個地方的檔案與目錄同步,並同時恰當的利用差分編碼以減少資料傳輸,映像發生在每個方向只需要一次傳送。Rsync可複製/顯示目錄內容,以及複製檔案,並可選擇性的壓縮以及遞歸複製。
以簡單的概念表示,將一台電腦上的一個特定目錄及子目錄,完整的同步到另一台電腦上的指定目錄,每次的同步化工作,僅會更新有修改的部份,以減少資料傳輸量及提高速度。
Rsync是自由軟體,以GNU通用公共許可證發行。首度發布於1996年6月19日。原始作者為澳洲電腦程式師安德魯·垂鳩(Andrew Tridgell)與保羅·麥可拉斯(Paul Mackerras),目前最新的版本是3.0.7版。http://samba.anu.edu.au/rsync/
FreeNAS提供Rsync服務可以設定
- 伺服器(Server)模式:將本機設成Rsync伺服器,接受遠端Rsync客戶連線,同步備份資料。
- DeltaCopy
- NasBackup
- cwRsync
- 客戶端(Client)模式:將本機設成Rsync用戶端,與遠端Rsync伺服器,定時同步備份資料,允許你去同步檔案在FreeNAS的server端和一或多台的FreeNAS的client間做同步。。
- 本地端(Local)模式:本機內部磁碟機或目錄相互同步備份。
1). 於FreeNAS主機管理介面在『存取權限』–>『使用者/群組』新增一位『datasync』的使用者(使用者名稱可以自訂),要記得按下「套用」才能生效。
2). 在『服務』->『RSYNC』。
3).在『伺服器』à『設定』裡,勾選{啟動},在右上方,啟動FreeNAS的 RSYNC伺服器端服務。
4).在[對應到本地使用者]:選擇“datasync”。
5).在[TCP port]:預設值「873」。在常駐模式(daemon mode),Rsync監聽預設TCP埠873。
6). 按下[儲存並重新啟動],啟動完成。
7). 先新增FreeNAS主機的備份目的地目錄,在『進階』à『命令列』輸入以下指令:
$ mkdir /mnt/heap/sharersync/bill
說明:
- /mnt/heap 是FreeNas存放資料檔案的掛載目錄位置。
- / sharersync 是預備將各主機同步備份資料的目錄。
- /bill 是備份目的地的目錄。
- 我想備份user-bill主機的mydata資料夾檔案到FreeNas的/mnt/heap/sharersync/bill目錄。
上圖:因“/sharesync”目錄尚未建立,必需先執行mkdir /mnt/heap/sharersync。接下來再新增“/bill”目錄,執行mkdir /mnt/heap/sharersync/bill。
8).將新增的備份目的地資料夾/bill 的擁有者權限設定給“datasync”使用者,在『進階』à「命令列」輸入以下指令: $ chown datasync /mnt/heap/sharersync/bill
1. 在[命令列]:輸入chown datasync /mnt/heap/sharersync/bill
2. 按下「執行」。
9). 回到『服務』->『RSYNC』->『伺服器』->『模組』裡增加一個新的模組設定。
10).在[名稱]:可自訂模組代表的名稱,勿用空白鍵等奇怪字元。
11).在[註解]:可自行輸入想要的名稱,最好是取有意義的名字。
12).在[路徑]:備份目的地所在目錄的絕對路徑。
13).在[User ID]:輸入“datasync”用戶,是設定為Rsync伺服器使用者。
14).在[Group ID]:輸入“admin”群組。為“datasync”所屬的群組。
15). 按下[增加],設定完成。
16).要記得按下「套用」才能生效。
17). 以上FreeNAS的Rsync伺服器服務設定完成。
將User-bill主機作為Rsync用戶端。
User-bill主機為Windows xp 系統,想要將這一台主機的檔案目錄 D:\backup 資料夾內的所有檔案備份到FreeNAS主機的/mnt/heap/sharersync/bill目錄裡。
1. User-bill主機必須安裝cwRsync client程式,在預設情況下,cwRsync是安裝在:c:\Program Files\cwRsync目錄,其程式檔案位於c:\Program Files\cwRsync\bin之中。cwRsync下載點:http://www.itefix.no/i2/cwrsync
2. 在c:\Program Files\cwRsync\bin新增一個密碼檔“datasync.ps”,編輯“datasync.ps”的內容,輸入FreeNAS主機這個datasync用戶的密碼即可。
3. 開啟一個console命令提示字元模式視窗,並使用以下指令:"C:\Program Files\cwRsync\bin\rsync.exe" -arHz --progress --delete --password-file="C:\Program Files\cwRsync\bin\datasync.ps " /cygdrive/d/backup datasync@192.168.2.10::bill,將位於D:\backup目錄中的資料,整個備份到FreeNAS主機的“/mnt/heap/sharersync/bill”目錄中。
要注意的是,原本的D:\backup 路徑,在指令中必須寫成“/cygdrive/d/backup”。
Rsync 指令說明:
- -arHz 參數,請參考Rsync參數說明。
- --progress 顯示傳送的進度
- --delete 刪除傳送端已經不存在,而目的端存在的檔案
- --password-file="C:\Program Files\cwRsync\bin\datasync.ps" 傳送datasync這個帳號的密碼。
- /cygdrive/d/backup 要備份的資料來源
- datasync@192.168.2.10::bill 透過FreeNas的『datasync』這個帳號,連結FreeNas的RSYNC服務『bill』模組設定值。
參數說明 範例 :
- cygdrive 硬碟的根目錄 c: = /cygdrive/c/
- d:\abc = /cygdrive/d/abc/
cygpath命令回應說明 範例:
- cygpath -W /cygdrive/c/windows windows安裝目錄
- cygpath -H /cygdrive/c/Document and Settings 家目錄
- cygpath -S /cygdrive/c/windows/system32 系統目錄
從網路芳鄰可以看到被備份“backup”的目錄
4. 如果要從FreeNAS主機,將備份資料回傳到User-bill主機,請使用以下指令:"C:\Program Files\cwRsync\bin\rsync.exe" -arHz --progress --delete --password-file="C:\Program Files\cwRsync\bin\datasync.ps " datasync@192.168.2.10::bill /cygdrive/d/backup。
小提示:資料傳檔的方向在於“datasync@192.168.2.10::bill”、“/cygdrive/d/backup”前後的順序,從這個特性,我們就可以做到備份及還原。
5. 綠色安裝cwRsync程式,直接copy“c:\Program Files\cwRsync\bin”資料夾,存入任何windows作業系統即可使用,不需install。
6. 我們可在windows下進行定期自動備份工作,可以使用windows的工作排程,並且輸入{"C:\Program Files\cwRsync\bin\rsync.exe" -arHz --progress --delete --password-file="C:\Program Files\cwRsync\bin\datasync.ps " /cygdrive/d/backup datasync@192.168.2.10::bill}的指令做成一個批次檔,如;rsync.bat ,使用執行身份(U):NT AUTHORITY\SYSTEM,可以不用設定windows使用者密碼。
7. 使用Rsync傳檔,單一檔案容量大於2GB。
伺服器硬碟檔案分割表型式是使用“MBR”如FAT、FAT32、NTFS、EXT2格式,則不可傳。若使用“GPT”的UFS格式則可傳。
18). media主機為Ubuntu 10.10 系統,想要將這一台主機的檔案目錄 /backup/mysql 資料夾內的所有檔案備份到FreeNAS主機的/mnt/heap/sharersync/mysql 目錄裡。
1. media主機必須先安裝好 rsync 服務。安裝 rsync的指令:
# apt-get install rsync
2. 執行rsync 同步指令,開始進行同步備份。
media:~#/usr/bin/rsync -rvlHpogDtS –delete /backup/mysql/ rsync@192.168.2.10::share10
rsync 指令說明:
- -rvlHpogDtS 參數
- - delete 刪除傳送端已經不存在,而目的端存在的檔案
- /backup/mysql/ 要備份的資料來源
- rsync@192.168.2.10::share10 透過FreeNAS的『rsync』這個帳號,連結FreeNas的RSYNC服務『share10』模組設定值。
# crontab –e 20 5 * * * /usr/bin/rsync -rvlHpogDtS –delete /backup/mysql/ rsync@192.168.2.10::share10
每天AM5:20 執行同步備份。
可以在 『診斷』–>『記錄檔』–>『RSYNC』裡檢視是否有成功執行備份工作的記錄。
註:
rsync參數說明:
-v, --verbose 詳細模式輸出訊息
-q, --quiet 安靜模式,幾乎沒有訊息產生。常用在以 cron 執行 rsync
-c, --checksum 打在傳送之前透過 128bit 的 MD4 檢查碼來檢查所有要傳送的檔案(會拖慢速度)
-a, --archive 備份模式,表示以遞迴方式傳輸文件,並保持所有文件屬性,等於 -rlptgoD(沒有 -H)
-r, --recursive 對子目錄以遞迴模式處理
-R, --relative 使用相對路徑名稱
--no-relative 不使用相對路徑
--no-implied-dirs
rsync foo/bar/foo.c remote:/tmp/
則在 /tmp 目錄下產生 foo.c 文件,而如果使用 -R 參數:
rsync -R foo/bar/foo.c remote:/tmp/
則會產生文件 /tmp/foo/bar/foo.c,也就是會保持完全路徑。
-b, --backup 產生備份,也就是對於目的已經存在有同樣的文件名時,將老的文件重新命名為 ~filename。可以使用 --suffix 選項來指定不同的備份文件前綴。
--backup-dir=DIR 將備份文件(如~filename)存放在在目錄下。
--suffix=SUFFIX 定義備份文件前綴
-u, --update 僅僅進行更新,也就是略過所有已經存在於目的端,且文件時間比要備份的檔案為新。(不覆蓋較新的文件)
--inplace
-K, --keep-dirlinks 接收方將連結到資料夾的檔案視為資料夾處理
-l, --links 保留符號連結
-L, --copy-links 像對待常規文件一樣處理符號連結
--copy-unsafe-links 僅僅拷貝指向SRC路徑目錄樹以外的連結
--safe-links 忽略指向來源端路徑目錄樹以外的連結
-H, --hard-links 保留硬式連結
-p, --perms 保留檔案權限
-o, --owner 保留檔案擁有者資訊(root only)
-g, --group 保留檔案所屬群組資訊
-D, --devices 保留設備檔案資訊(root only)
-t, --times 保留檔案時間資訊
-S, --sparse 對稀疏檔案進行特殊處理以節省目的端的空間
-n, --dry-run 不實際執行傳送,只顯示將會有的傳輸動作
-W, --whole-file 複製檔案,不進行增量檢測
--no-whole-file 關閉 --whole-file 參數
-x, --one-file-system 不要跨越檔案系統分界(只在一個檔案系統處理)
-B, --block-size=SIZE 強制透過 rsync 程式去比對修復 block-sizeforce,預設是700字節
-e, --rsh=COMMAND 定義所使用的 remote shell
--rsync-path=PATH 定義 rsync 在遠端機器存放資料的路徑
--existing 只比對更新目的端已經存在的檔案,而不備份那些新產生的檔案
--ignore-existing 忽略目的端已經存在的檔案(也就是不更新)
--delete 刪除傳送端已經不存在,而目的端存在的檔案
--delete-excluded 除了把傳送端已經不存在,而目的端存在的檔案刪除之外,也刪除 --exclude 參數所包含的檔案
--delete-after rsync 預設會在檔案傳送前進行相關刪除動作確保接收端有足夠的檔案空間,但可以透過 --delete-after 讓刪除動作在檔案傳送後再行刪除
--ignore-errors 忽略任何錯誤既使是 I/O error 也進行 --delete 刪除動作
--max-delete=NUM 定義 rsync 不要刪除超過 NUM 個檔案
--partial rsync若遇到傳輸過程中斷時,會把那些已經傳輸的檔案刪除。在某種狀況下保留那些部分傳送的檔案是令人高興的。你可以透過 --partial 參數達到這個目的
--partial-dir=DIR 在 --partial 參數啟動時,你還可以定義 rsync 把那些部分傳送的檔案寫入定義的資料夾,而非直接寫入目的端。需要注意的是,此資料夾不應該被其他使用者可以寫入(如:/tmp)
--force 當目的端資料夾被傳送端非資料夾名稱覆蓋時,強制 rsync 刪除資料夾,即使該資料夾不是空的
--numeric-ids 不將傳送端檔案的 UID 及 GID 值,與目的端的使用者/群組進行配對。若傳送端並沒有 UID 及 GID 的對應名稱(如:原帳號群組被刪除的遺留檔案),或目的端沒有相對應的帳號/群組,保留數字型態的 UID/GID
--timeout=TIMEOUT 設定 I/O 逾時的時間(秒)。超過這個秒數而沒有資料傳送,rsync 將會結束。預設為 0,也就是沒有定義逾時時間
-I, --ignore-times 不跳過那些有同樣的時間和長度的文件,可以透過此參數關閉此快速檢查
--size-only 只檢查檔案大小是否改變,不管時間存取點是否改變。通常用在 mirror,且對方時間不太正確時
--modify-window=NUM 決定文件是否時間相同時使用的時間戳窗口,預設為 0
-T, --temp-dir=DIR 定義 rsync 在接收端產生暫時性的複製檔案時使用資料夾暫存。預設是直接在接收端資料夾直接產生暫存檔案
--compare-dest=DIR 定義 rsync 在目的端建立資料夾來比對傳送過來的檔案
--link-dest=DIR 與 --compare-dest 相同,但同時會針對無法改變的檔案建立硬式連結
-P, 等同於 --partial --progress 顯示備份過程,只是為了把參數簡單化
-z, --compress 對備份的檔案在傳輸時進行壓縮處理
-C, --cvs-exclude 排除那些通常不希望傳送的檔案。定義的方式與CVS傳送相同:
RCS SCCS CVS CVS.adm RCSLOG cvslog.* tags TAGS .make.state .nse_depinfo *~ #* .#* ,* _$* *$ *.old *.bak *.BAK *.orig *.rej .del-* *.a *.olb *.o *.obj *.so *.exe *.Z *.elc *.ln core .svn/ 符合以上條件的都會被忽略而不傳送
--exclude=PATTERN 符合 PATTERN(規則表示式)樣式的檔案不進行傳送
--exclude-from=FILE 和 --exclude 參數相同,不過是把不進行傳送的檔案事先寫入某一檔案,執行時,透過此參數讓 rsync 讀取。(; # 開頭的行列或空白行會被 rsync 忽略)
--include=PATTERN 指定義 rsync 不要排除符合 pattern 樣式的檔案
--include-from=FILE 和 --include 參數相同,只不過把要包含的檔案寫到某一檔案
--files-from=FILE 把要傳送的檔案名稱都精確的寫入某一檔案,讓 rsync 讀取
如:rsync -a --files-from=/tmp/foo /usr remote:/backup
-0, --from0 定義檔案所要讀取的檔案是null字元結尾
--version 顯示 rsync 版本
--daemon 定義 rsyn c以 daemon 型態執行
--no-detach 當以 daemon 型態執行時,不要進行分裂且變成背景程序
--address=ADDRESS 定義所要連結(bind)的ip位址或是 host 名稱(daemon限定)
--config=FILE 定義所要讀取的設定檔 rsyncd.conf 位置(daemon 限定)
預設值為 /usr/local/etc/rsyncd.conf
--port=PORT 定義 rsyncd(daemon)要執行的 port(預設為 tcp 873)
--blocking-io 使用 blocking I/O 連結遠端的 shell,如 rsh、remsh
--no-blocking-io 使用 non-blocking 連結遠端的 shell,如 ssh(預設值)
--stats 顯示檔案傳送時的資訊狀態
--progress 顯示傳送的進度(給檔案傳送時,怕無聊的人用的..)
--log-format=FORMAT 定義 log 的格式(在 rsyncd.conf 設定)
--password-file=FILE 從檔案讀取與遠端 rsync 伺服器連結的密碼
--bwlimit=KBPS 定義傳輸頻寬的大小(KBytes/秒)
--write-back=FILE 把紀錄資料寫入一個檔案(給其他相同環境且相同需求的機器使用)
--read-batch=FILE 透過讀取紀錄檔案來進行傳輸(檔案由 --write-batch 參數產生)
--checksum-seed=NUM 定義檔案 checksum-seed 的大小(byte)
-4, --ipv4 使用 IPv4 協定
-6, --ipv6 使用 IPv6 協定
-h, --help 顯示 rsync 求助資訊
範例:
在 /home 底下做家目錄同步到 node,但不同步 buildcentos 這個目錄夾,顯示同步過程。
# rsync -av --delete --exclude=buildcentos -e ssh . node:/home/
對 mailbox 進行同步到 node,但不同步 root 的 mailbox,顯示同步過程。
# rsync -av --delete --exclude=root -e ssh /var/spool/mail node:/var/spool/
(二) 設定FreeNAS作為客戶端(Client):
可以在兩個FreeNAS主機,設定主從架構。
(三) 設定FreeNAS使用本地端(Local):
有時我們擔心FreeNAS主機裡的硬碟損壞,或是需要保全一份資料。如何用最方便、最省事,最好可以定時備份的方式,就是用本地端同步備份,複製到USB外接硬碟。Rsync的功能除了可以作遠端同步備份外,還可以同步本機的硬碟或者是路徑,測試目標為設定原 192.168.2.10 上面的 /mnt/heap/sharesync/bill目錄,同步到本機的 USB外接硬碟。
1). 首先把USB外接硬碟先加入到硬碟空列表內。讓 FreeNas 認得這個硬碟,不用經過格式化後(使用原本的檔案型式),掛載至 \usbdata。
1. 將USB外接80GB硬碟連接FreeNAS主機USB埠,再從「磁碟」à「管理」,按下[重新掃描磁碟]。
2. 接著按下(+)在右邊部份,增加一個磁碟。
3. 進入「磁碟」à「掛載點」管理頁面,再點選右邊部份的(+)。
4. 在「掛載點」設定頁面,各欄位選擇或輸入各類資料,最後設定完成按下[增加]。
5. 要記得按下「套用」才能生效。
2) 要驗證是否有複製,到 CIFS 服務將USB外接硬碟分享出來,然後檔案總管打開此分享,目錄中除了“RECYLER”、“System Volume Information”外沒有其他的。
3).到 Rsync服務à 選擇本地端,點選右邊部份的(+),加入一個新的規格。
1. 在『本地端』設定』頁面,勾選在右上方{啟動},啟動FreeNAS的 RSYNC本地端服務。
2. 在[來源位置]:輸入預備要備份的資料夾路徑。
3. 在[目標位置]:輸入將備份的資料要複製到的資料夾路徑。
4. 在[who]:用戶帳號,在這我們使用預設的超級使用者。
5. 在[同步時間]:在這可以設定何時啟動備份的功能,必須設定備份的時間。
6. 在[描述]:可自行輸入想要的敘述,最好是取有意義的名字。
7. 在[包含子目錄]:勾選。
8. 在[檔案]:勾選。
9. 其他可以用預設值或自行決定。
10. 最後設定完成按下[增加]。
11. 要記得按下「套用」才能生效。
........................等待備份時間開始。
4).最後要驗證是否有複製到USB外接硬碟。現在看到USB硬碟內多一資料夾“backup”。
沒有留言:
張貼留言