Openmediavault的ftp使用設定

藉由開源軟體的發展與硬體的強大,我們可以在家裡或公司自行建立各式各樣好用的服務,以滿足生活或工作所需要,而在資料分享與備份之中NAS便是最常運用的設備,想知道一些相關介紹可以看看這個網頁,而這裡將針對OpenMediaVault做實務上的介紹,介紹將會分以下幾個章節說明。
-
OpenMediaVault外掛OMV-extra安裝與啟用
以下補充章節,將陸續完成。 - Openmediavault的rsync使用設定
- OPENSOURCE應用-使用rsync做資料備份(待補)
如果還不知道要如何安裝OMV的朋友可以點擊OpenMediaVault安裝,有問題歡迎隨時留言或聯絡喔。
或者你還不確定你要的功能OMV有沒有也可以參閱OpenMediaVault各設定說明,如果想要設定如何使用OMV做區網資料分享也可以參閱OpenMediaVault區網資料分享設定,當安裝好omv後我們可以使用預設帳密登入系統,也請記得更改密碼跟使用https瀏覽,如果需要更多的外掛功能與要使用到docker,也可以參閱OpenMediaVault外掛OMV-extra安裝與啟用,基本上我不建議將Nas使用在外網之中,不過要是你有把握做好防護或資料不是很重要那其實也沒有什麼不可以的。
在資料傳輸的協定之中,FTP(File Transfer Protocol)已經是非常老舊的傳輸協定,但即使到今日其服務還是非常普遍,而且FTP的服務方式也是比較特殊,FTP的服務有分主動式和被動式兩種,在要說明Openmediavault(OMV) 之前,這裡我只大概說明一下,要是想知道詳細可以參閱鳥哥的私房菜(連結)
主動式FTP:預設使用Port20 跟Port21,都使用TCP的三向交握,Port21負責與客戶端做指令上的交流,當服務端的Port21收到客戶端的指令後(上傳、下載或瀏覽等等)服務端Port20就會主動通知客戶端指定的Port進行三向交握並開始進行資料傳輸。

如果有點資訊底子的人應該在這裡就會看到問題,當指令(Port21)的傳輸已經完成時,服務端的Port20會主動連線到客戶端電腦,這裡將由2個問題,
第一,因為是服務端Port20連線到客戶端電腦,所以客戶端電腦的防火牆需要開啟該Port接受資料,但一般使用者電腦因為安全因素是不會開啟被主動連入的Port,而且還是隨機Port。
第二,除非客戶端電腦是直接IP上網(如直接撥接),否則如果是藉由防火牆(如公司或學校)出去,那就必須設定該防火牆讓IP的資料NAT到客戶端電腦,不然客戶端電腦將接收不到服務端電腦Port20的主動連線,於是被動式FTP就可以避免掉這2個問題。

被動式FTP:預設使用Port21跟Port PASV(passive),PASV是服務端在建立服務時就要設定好,通常是由Port1024之後的一個Port區間(如Port2000~3000),運作方式Port21幾乎都一樣,不同的是服務端Port21在最後會在Port PASV區間中找一個沒在使用的Port做開放並告知客戶端電腦,請客戶端電腦自己連過去完成三向交握,如此一來客戶端電腦不用作任何調整就可以輕易取得資料。

所以現在網路上的服務幾乎都是使用被動式的FTP,另外FTP跟終端機一樣都是早期通訊協定,在那個大家都不會偷取資料的年代XD,所以FTP也是採用明碼傳輸,基於不要在網路上裸奔,FTP跟其他通訊協定一樣多了一個『S』並且是加密傳輸而變成FTPS,而FTPS又分為隱式(Implicit)跟顯式(Explicit),因為隱式(Implicit)比較安全,所以我這裡將說明被動式隱式的FTPS進行說明。(好長的前戲@@)

在開始之前我想說一下其實我沒有使用OMV設定過ftp server,之前我都是直接使用vsftpd,而且我也一直以為內建的是vsftpd,要做本篇的時候才知道是使用proftpd,不過其實原理都一樣,熟悉下就介面就可以使用了,然後因為這篇開始是使用OMV 6說明,所以我會分成三個部份。
第一部份 建立分享資料夾
登入OMV後先到Storage=>Disks 選擇要做資料分享的硬碟進行資料抹除(Wipe),我這裡是使用/dev/sda
(正常應該是sda應該會是系統碟sdb會做分享,但沒強制性不要太在意)

抹除的方式有安全模式(secure)跟安全模式(secure),主要的差異是quick只是將開機紀錄跟資料分配表刪除,而檔案其實都還在,就好像空地上有房子但門牌已經被註消待拆而未拆,因此只要使用檔案救援軟體就有很大機會將檔案救回,優點是抹除作業時間快,但是若有需註銷的機密檔案可能被救回外洩;而安全模式(secure)則是不但把門牌註銷同時房子也都拆光,所以抹除作業時間超久,但是檔案無法被救回,但因為作業時間真的非常久,所以沒有必要都會使用安全模式(secure)進行作業。


完成後到Storage=>file systems,點上方+號後選擇Create,硬碟選擇剛剛抹除的硬碟(sda)選擇格式,一般我都是使用xfs,可以做snapshot跟容量分配,當然如果不需要也可以是需求使用其他格式,選擇後按下Save;



建立(create)完成後會直接跳到掛載(mount)畫面,設定容量剩餘警示通知的觸發點後按下Save,這裡會需要做很多次的確認。



完成後會看到現在有掛載一個硬碟分割並且狀態是online,

接下來到Storage=>shared folders,按下上方+號後Create,選擇剛剛在file systems建立的資料夾做分享分享資料夾並建立分享資料夾的名稱,設定使用權限後按下Save,並再次多次確認完成。



完成後這裡灰多出一個剛剛建立的分享資料夾,中間有一個絕對路徑(Absolute Path)等等會用到。

第二部份 建立使用者
到Users=>Users然後點擊+號按下Create,

然後設定使用者名稱、Email、密碼、shell模式、群組跟憑證等等相關資訊後按下Save。

完成後到Storage=>shared folders,點擊剛剛建立的分享資料夾ftptest後選擇上方的權限(Privileges)後,將剛剛建立的使用者權限改成Read/Write,完成後Save並確認。

備註:如果會建立很多同樣權限的使用者,不要忘記善用群組(Groups)功能。
第三部份 FTP Server設置與啟用
到Service=>ftp=>Setting,並設定好相關參數後(如下圖所示)後先不啟用按下Save。



備註:
這裡有2個地方需要注意,第一就是如果會使用到繁體中文或簡體中文需要在最下面的Extra Option加上UseEncoding UTF-8 BIG5 跟UseEncoding UTF-8 GBK。
另一個要注意的是ftp在設定完成之後會從shared folders的主目錄開始,也就是你所設定的資料夾ftptest會變成你登入ftp後的其中一個子目錄,這樣一來很不方便,二來你設定多少子目錄都會被知道,所以如果在意可以在最底下的Extra Option加上Defaultroot (剛剛分享資料夾的絕對路徑)就可以讓你登入之後就直接到ftptest這個資料夾。
然後到Service=>ftp=>SSL/TLS Setting,選擇建立好的憑證、強制使用加密傳輸跟使用隱含式加密等完成後按下Save確認,如下圖所示。



最後到Service=>ftp=>Shares,按+號並選擇ftptest按下Save並確認,完成設定,


最後再回到Service=>ftp=>Setting點選啟用並按下Save確認,這樣FTP Service才會正常運作。
可以到DashBoard看多了FTP的服務。

補充:請注意防火牆的設定要正確才有辦法正常運作。
第四部份 使用filezilla client做連線設定
filezilla client是現在常用的ftp客戶端程式之一,其實filezilla也有服務端的程式,但是因為之前他只提供Windows跟Mac的版本而我用過Windows建立過Filezilla的服務端程式,因為是GUI介面所以就滿方便好用的,剛剛發現現在也有Linux版本的了,之後在研究看看好不好用,現在先說明Filezilla client的設定。
首先先安裝filezilla client程式,如果是Windows或Mac可以到官網下載(連結),Linux也可以,但我都使用apt下載安裝,不過這樣做的話可能安裝的不是最新版的程式。
sudo apt install filezilla
安裝完後開啟filezilla,點擊左上角伺服器圖示,跳出小視窗後點擊視窗下方New site,輸入服務名稱跟相關General設定,這裡Protocol要選擇ftp,Encryption(加密方式)要選擇Require Implicit FTP over TLS(使用隱含式加密)。


然後再點擊Transfer Settings,選擇Passive(被動式)。

最後在選擇charset(解碼方式),選擇use custom charset(使用指定解碼),在Encoding輸入big5按下ok。

然後再點左上圖示的右邊有個小小的下拉式選單,會看到剛剛新增的ftpserver,點擊後輸入密碼按下ok連線。



花了好多時間寫這一篇,因為使用OMV6所以順便把使用者跟資料夾的新增方式都在說明一遍,ftp service的設定其實不困難,但要注意防火牆的設置是否正確,如果設定有發生什麼問題或有什麼好的建議請在跟我說喔。^^