博客 / 詳情

返回

FreeBSD 安裝pure-ftpd 實現ftp服務

最近甲方需要批量下載服務器中已上傳的文件,由於當前的文件處理並沒有使用s3單獨處理,所以需要在服務器上創建一個ftp服務,供用户使用ftp客户端完成下載。

FreeBSD中的Pure-FTPd是款小巧、使用簡單且安全的ftp服務,我們在此安裝它以提供ftp服務

安裝

安裝的過程非常簡單。

切換到root用户後,先使用pkg update -f更新下pkg,然後使用pkg install pure-ftpd進行安裝,當出現是先安裝提供的時候,輸入y後按回車繼續。

安裝完成後,得到的提示如下:

Message from pure-ftpd-1.0.51:

--
Now you need to examine /usr/local/share/examples/pure-ftpd/pam.d/pure-ftpd
and add the relevant PAM configuration lines to your /etc/pam.conf file.

If you defined call upload script in pure-ftpd config define corresponding
vars in rc.conf. pure-ftpd will not listen TCP socket without it.

See FAQ: https://github.com/jedisct1/pure-ftpd/blob/master/FAQ

上面的提示在説:我們需要檢查 /usr/local/share/examples/pure-ftpd/pam.d/pure-ftpd 文件,並編輯 /etc/pam.conf 來完成權限配置(當前場景並不需要更復雜的配置,此處我們可以忽略)。

這裏有個專有名詞PAM,代表 Privileged Access Management 簡單翻譯即為:權限管理。

更多的信息參考 https://github.com/jedisct1/pure-ftpd/blob/master/FAQ

配置權限

安裝完成後,我們參考上面給出的github地址的信息進行權限配置。

首先添加一個用户組:pw group add ftpgroup, 然後在這個用户組中添加一個用户: pw user add ftpuser -g ftpgroup

最後便可以使用prue-pw命令來添加prue管理的ftp用户了,比如我添加一個readonly用户,並且限制其下載的帶寬為10Mbit/s,並且指定其對應的目錄為:/mengyunzhi/app/api/attachment,則可以執行以下命令:

# pure-pw useradd readonly -m -u ftpuser -t 10M -d /mengyunzhi/app/api/attachment

上述命令中 -m 的作用是將新用户信息寫入 /usr/local/etc/pureftpd.passwd 的同時,將 /usr/local/etc/pureftpd.passwd 編譯為 /usr/local/etc/pureftpd.pdb , pureftpd.pdb文件為pure-ftp的權限驗證文件。

然後輸入兩次密碼,一個可用的ftp用户便創建好了。

啓動服務

$ /usr/local/sbin/pure-ftpd -lpuredb:/usr/local/etc/pureftpd.pdb 
lpuredb:/usr/local/etc/pureftpd.pdb 指認證的方式為文件,該認證文件的位置位於:/usr/local/etc/pureftpd.pdb。除了使用文件做為驗證方式外,pureftpd還支持mysqlpgsqlldap

此時便可以使用ftp工具進行連接測試了:

image.png

測試沒有問題後,使用ctrl+c終止前面的命令,然後重新執行:

 /usr/local/sbin/pure-ftpd -lpuredb:/usr/local/etc/pureftpd.pdb -H -B

這樣ftp便可以在後台中運行,即使關閉了當前的shellftp仍然會正常的運行而不會隨着shell的關閉而關閉了。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.