CubieTruck FTP 檔案伺服器 vsftpd 雜記

目前在Linux上用FTP的人越來越少了,大家都採用雲端了。但是少了FTP,自己心裡總是覺得怪怪的,似乎少了些什麼,所以還是安裝了 vsftpd 檔案伺服器。

apt-get install vsftpd

安裝細節就不累贅了,底下就列舉一些小細節來增強其 vsftpd 安全性。

首先,vsftpd安裝完之後,設定相關檔案都在 /etc 目錄下,組態檔案就在 /etc/vsftpd.conf 裡面,你可以使用任何編輯器修改 /etc/vsftpd.conf 檔案內容。

1. 不允許匿名使用者登入

  • anonymous_enable=NO

2. 允許擁有本機帳號的使用者登入使用FTP

  • local_enable=YES
  • write_enable=YES
  • local_umask=022

3. 使用Log機制,記錄使用者存取FTP伺服器的情形

  • xferlog_enable=YES
  • xferlog_file=/var/log/vsftpd.log
  • xferlog_std_format=YES

4. 讓使用者只能待在自己的家目錄下,不允許使用者任意切換或瀏覽其他的目錄

  • chroot_list_enable=YES
  • chroot_list_file=/etc/vsftpd.chroot_list

/etc/vsftpd.chroot_list裡面就填入你可以 chroot 的使用者名稱,例如: linaro等等,千萬別填入 root。

5. 使用PAM機制,阻止root登入FTP SERVER

  • pam_service_name=vsftpd

6. 使用VSFTP內建的機制,阻止root登入FTP SERVER

  • userlist_deny=NO
  • userlist_enable=YES

而 /etc/vsftpd.user_list檔案裡面就填入你可以登入的使用者名稱,例如: linaro等等,千萬別填入 root。

7. FTP伺服器在同一時間,只允許讓多少個使用者連線登入使用,假設允許五個,便填入5。若是都不限制,則刪除此行,或是填入0都可以,預設值並沒有這行,使用者需自行加入。

  • max_clients=5

8. 利用#字號,註解掉以下各行

  • #anon_upload_enable=YES
  • #anon_mkdir_write_enable=YES
  • #chown_uploads=YES
  • #chown_username=whoever

9. 如果有使用 ufw 防火牆,記得要打開設定,必須要用 allow打開,試過用 limit 不行

  • ufw allow 21/tcp

10. 用 Windows DOS Prompt的ftp,可以登入ftp server,但是無法列出檔案,也無法進行任何讀寫動作,原因是採用 Passive方式,防火牆會擋。但如果採用其他FTP Client或直接使用Windows檔案總管上面直接打入 ftp://www.example.com,是可以運行的。

11. 如果登入有問題,有可能是 /etc/passwd 檔案內使用者的 shell 設定是 /bin/false之類不能登入的shell,必須改用 /bin/bash之類的shell。

12. FTP沒有採用加密,所以很多都是採用明碼溝通,連密碼也不例外。小心出門在外用免費的網路被人竊聽了,要時常檢查 /var/log/vsftpd.log的內容。

13. vsftpd 本身不帶硬碟容量配額 Quota 功能,所以要小心被使用者灌爆硬碟空間。如果要防止,必須採用 quota 配置。

14. 所有參數更改後,必須重啟服務。

  • service vsftpd restart