接下來需要安裝ftp server和email server。這裡使用vsftpd這個套件

安裝vsftpd
sudo apt-get install vsftpd

安裝好以後需要進行組態的設定,這邊我們需要

  • 設定 anonymous_enable=NO         <—- 禁止匿名登入
  • 設定 chroot_list_enable=YES        <—- 啟用限制用戶名單
  • 打開 chroot_list_file=/etc/vsftpd.chroot_list    <—- 檔案可能不存在要手動建立,在此檔案裏面列出的使用者才能夠離開home目錄,和chroot_list_enable=YES搭配使用
  • chroot_local_user=YES    <—- 鎖定使用者不可以離開home目錄,但是在chroot_list_file中的用戶例外
  • write_enable=YES     <—- 允許上傳檔案”

 

  • connect_from_port_20=NO    <—- 禁止使用port 20連線
  • pasv_enable=YES     <—- 開啟被動模式,如果項目不存在/vsftpd.conf檔案中需要手動新增
  • pasv_min_port=*****    <—- 隨機最小port number,需要手動新增
  • pasv_max_port=xxxxx    <—- 隨機最大port number,需要手動新增

這樣設定的ftp server只支援被動模式,不支援主動模式,安全性稍微高一點。在隨機最大和最小port number的部分需要和防火牆的設定搭配,以免連線被防火牆擋住

編輯 /etc/vsftpd.conf檔案,設定上述項目

sudo nano /etc/vsftpd.conf

編輯chroot_list,加入管理者帳號

 sudo touch /etc/vsftpd.chroot_list  #建立空檔案
sudo echo "hhliu" >> /etc/vsftpd.chroot_list #將帳號寫入檔案

在執行將帳號寫入檔案指令的時候可能會碰到權限不足的問題,這時候只能透過su指令切換身分到root來執行寫入的動作,完成以後在切換身分回一般使用者

設定完成後開啟ftp服務

sudo systemctl start vsftpd

設定開機時同時啟動vsftpd

sudo systemctl enable vsftpd

設定完成以後使用FileZilla測試,連線設定畫面如

如果一切設定正常,連線會成功的被建立起來,日後便可以很方便的使用ftp來管理主機中的檔案。

 

This Post Has 5 Comments

  1. ヤンヤン

    您好,想請問作者關於上傳檔案的問題。
    目前我按照您的文章設定了所有項目,並嘗試上傳檔案到/home/user以及/var/www/html之下,不過一直遇到FIleZilla一直跟我說「550 Permission denied.」無法上傳檔案。
    我也檢查過是否是ufw、fin5ban、資料夾權限等的問題,也放寬資料夾的權限,但也還是無法成功。

    想請問作者是怎麼做到的呢?謝謝您的閱讀

    1. hhliu

      如果vsftpd.conf設定沒有問題,可以嘗試關閉vsftpd然後重啟試看看
      sudo systemctl stop vsftpd
      sudo systemctl start vsftpd

  2. KIM

    您好 我想請問設定參數那裏
    是不是都要把前面的#字號去掉?

  3. Maxine

    您好,想請問最後要確認連線時FileZilla顯示不安全的FTP連線,該伺服器不支援FTP over TLS,請問該怎麼解決?謝謝!

    1. hhliu

      一般都是這樣,沒有關係,主要看最後連現有沒有成功取得目錄列表。
      如果要使用TLS (SSL) ,伺服器還需要做其他的設定,google 一下 ftp over tls 就會有答案

發佈留言