移至主內容

試解決Professional FTP(Pro FTPD)佈署時的常見問題

Submitted by 肥貓 on

這幾天嘗試在家嘗試架設臨時性的FTP,方便區網內兩台電腦互傳檔案之用。雖然李博明老師寫的Pro FTP(容許匿名登入)的架設說明淺顯易懂,實際操作卻踢到鐵板。可能的原因是文章過舊而與現況不符;也可能是因為我是在Ubuntu上操作,而與原文使用的Debian仍有相當差距。總之我寫這篇的目的不是戰李老師,而是希望補充一些細節或解答,讓後進能少走些冤枉路。

該鐵板簡稱530 Error(或登入不正確),至少在FileZilla用localhost測試看到是這樣。該代號簡單說就是密碼錯誤,但是既然是匿名登入,那還需要什麼密碼?爬了許多文還是解決不了,只好請教協會聊天室裡的先進。得到的解法整理如下:

  • 建議改裝proftpd套件

李老師的演示是安裝proftpd-basic套件。不過個人實測後,建議改裝(功能似乎也比較完整的)proftpd套件,因為系統設定後者套件時,會自動加入一些運作必須的資料夾和設定,可以減少許多後續設定的麻煩。

  • 在<Anonymous ~ftp>處加入(或恢復)RequireValidShell        off 指令

聽起來有點抝口,但是看我的截圖大概長這樣。為了方便示範,我將設定檔( /etc/proftpd/proftpd.conf;也可下載我的設定檔來參考)的副本以KATE開啟。

若您想用懶人包解題,就請將我以黑體字(凸顯的部份)前面的#去掉,表示讓該程式碼發揮作用。不過最重要的是加入RequireValidShell        off的指令(細節可參見本網頁說明)。這也可能是因為有些FTP長久以來,有要求匿名登入者輸入email address 當作密碼的潛規則,但是這也造成設定上許多不必要的困擾。RequireValidShell        off意思就是叫系統別這麼龜毛。

不過必須注意的是,當你用搜尋指令找的時候會發現,文件上方(約莫第40行,在DenyFilter的地方)也有一個RequireValidShell        off的備用指令,請先不要將他啟動。我記得實測後會讓FTP服務啟動失敗。

至於其他參數,例如資料夾的位置等,就建議您保持原樣。等到您熟悉運作後再來嘗試修改。不過值得注意的事。

  • 注意資料夾位置

若您是用我的方法,改安裝proftpd套件。您可能要留意,FTP預設的資料夾將會放在"/srv/ftp"的位置;而非直覺可能認為的"/home/ftp"。可能的原因是proftpd在設定的時候,是在/srv/自己切了一個ftp的資料夾,作為該軟體完全掌控的空間。

所以與之相關的事情是,一般使用者也將無法透過檔案管理員編輯該資料夾裡的檔案,最多只能複製,即使那其實是你的東西。因為在Linux的運作邏輯中,系統已經認定那是ftp(或者說ftp背後控制的軟體)所擁有,所以其他人是不能隨便動他的。要刪改可能就要動用Root或sudo權限。所以以筆者的使用情境而言,建議對該資料夾內的後續操作都在FileZilla上進行,包括增減檔案都是用FileZilla的localhost,這樣比較省事。

  • 小結

因為區域網路可用流量通常遠大於對外網路的特性,大檔案使用網內的FTP來互傳,顯然比較省時與省事。不過這裡演示的,是安全性非常差的FTP設定方式。建議只作為練習或非機密資料的傳遞之用,以免發生有心人士入侵等損害。