proftpd 教學
寫作環境: debian 5 lenny 64bit
安裝指令:
[cmd]aptitude install proftpd[/cmd]
安裝過程中它會問你啟動模式,請選擇standalone 設定上會比較容易,若你選擇了另一種啟動模式inetd的話,那麼請確認你對這種模式相當熟悉再選擇它。
proftpd 是個功能強大的 ftp server,可細部調節的地方很多,它所有的設定全在此檔內 /etc/proftpd/proftpd.conf 可以點我下載參考設定檔。
底下針對常用的安全性設定說明一下,其它的細節請參閱上面的參考設定檔
Port 25
#設定啟動時要監聽哪個 port
PassivePorts 49152 65534
#設定被動式連線的 port 位的範圍
DefaultRoot ~
#將使用者困在他們的家目錄,有底下設定參考
#指定特定使用者登入後的根目錄。
#DefaultRoot /var/www webmaster
#設定每個使用者登入後的根目錄 ! 後為排除的使用者
#DefaultRoot /var/ftp !admin
#限制每個使用者都登入在自己的家目錄(”!” 後為排除的使用者)
#DefaultRoot ~ !admin
#DefaultRoot ~,!www-data,/var/www www-data
#↑上面這行的意思是,將所有使用者困在家目錄裡,除了www-data 群組,這群組被限制在 /var/www 這個目錄裡
#MaxClients 5 "Sorry, max %m users -- try again later"
#設定最多允許多少個使用者(不同IP)登入,後面為超過數量時顯示的訊息。
#MaxClientsPerHost 2
#設定最多允許多少個使用者(不同IP)登入,後面為超過數量時顯示的訊息。
#MaxLoginAttempts 3
# 設定使用者嘗試登入失敗後幾次斷線。
AllowStoreRestart on
#AllowStoreRestart: 允許上傳續傳。
AllowOverwrite on
#設定是否可以覆寫檔案,預設是 off,可以用於整體設定與目錄區段設定
#檔案刪除限制
DenyAll #全部都不行
#Allowuser eric david #僅允許 2 人
改 port位 ,這與防火牆有關,若你不知你 port 開啟的範圍,你就不知防火牆該打什麼洞
SSL 加密連線
使用加密連線,需要產生 SSL 憑證
debian 未自帶 ssl-cert 所以我們得先安裝這個套件
[cmd]aptitude install ssl-cert[/cmd]
再下此指令產生一個憑證
[cmd]openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 3650[/cmd]
↑下此指令後,需回答一些問題,然後會產生一個10年有效的憑證,檔案分別位於這裡 /etc/ssl/private/proftpd.key 和這裡 /etc/ssl/certs/proftpd.crt
開啟 ssl 連線功能,編輯 proftpd.conf
[cmd]vim /etc/proftpd/proftpd.conf[/cmd]
找到底下這行,將前面的 # 號拿掉
#Include /etc/proftpd/tls.conf
編輯 tls.conf 檔
[cmd]vim /etc/proftpd/tls.conf[/cmd]
將底下的內容貼至 <IfModule mod_tls.c> 和 </IfModule> 之間
TLSEngine on
TLSLog /var/log/proftpd-tls.log
TLSProtocol SSLv23
TLSRequired ctrl
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSVerifyClient off
然後重啟 proftpd
[cmd]/etc/init.d/proftpd restart[/cmd]
然後請用 Filezilla 在連線的地方伺服器種類,請選擇 FTPES – 透過外顯式 TLS/SSL 的 FTP 這樣就可以了。