1. 程式人生 > 實用技巧 >輕量伺服器 ubuntu18.04 上 vsftp 的基礎配置

輕量伺服器 ubuntu18.04 上 vsftp 的基礎配置

目錄

這篇講解 vsftp 的安裝和基礎配置(主要包括虛擬使用者的配置)。

注意:我的作業系統環境是騰訊雲輕量伺服器 ubuntu 18.04。由於作業系統版本不同,配置檔案的位置可能會有所不同。

安裝 vsftp

sudo apt-get install vsftpd

將 vsftp 原配置備份

cd /etc
sudo cp vsftpd.conf vsftpd.conf.bak

修改配置

vsftp.conf 配置中文說明參考:

vsftpd 主動和被動模式的說明:https://www.cnblogs.com/kuliuheng/p/3209744.html
因為被動模式需要開啟大量埠,修改防火牆配置,沒有特殊需求,禁用了被動(PASV)模式。

我的 vsftpd.conf 配置 On Gitee

基於虛擬使用者的配置

參考文章:https://www.cnblogs.com/xiongpq/p/3384759.html

修改 vsftpd.conf 配置

開啟/etc/vsftpd/vsftpd.conf,做如下配置:

anonymous_enable=NO //設定不允許匿名訪問
local_enable=YES //設定本地使用者可以訪問。注:如使用虛擬宿主使用者,在該專案設定為NO的情況下所有虛擬使用者將無法訪問
chroot_list_enable=YES //使使用者不能離開主目錄
ascii_upload_enable=YES
ascii_download_enable=YES //設定支援ASCII模式的上傳和下載功能
pam_service_name=vsftpd //PAM認證檔名。PAM將根據/etc/pam.d/vsftpd進行認證

以下這些是關於vsftpd虛擬使用者支援的重要配置項,預設vsftpd.conf中不包含這些設定專案,需要自己手動新增

guest_enable=YES //設定啟用虛擬使用者功能
guest_username=ftp //指定虛擬使用者的宿主使用者,CentOS中已經有內建的ftp使用者了
user_config_dir=/etc/vsftpd/vuser_conf //設定虛擬使用者個人vsftp的CentOS FTP服務檔案存放路徑。存放虛擬使用者個性的CentOS FTP服務檔案(配置檔名=虛擬使用者名稱

說明:上面兩段關於 vsftpd.conf 的配置已經在 vsftpd.conf On Gitee 裡了。

安裝 Berkeley DB 工具

sudo apt-get install db-util -y

建立使用者密碼檔案

新建檔案 /etc/vsftpd/vuser_passwd.txt,注意奇行是使用者名稱,偶行是密碼:

test
123456

生成虛擬使用者認證的 db 檔案

sudo db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

編輯認證檔案/etc/pam.d/vsftpd

註釋掉原來的所有內容,再增加以下內容:

auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd

建立虛擬使用者配置檔案

其中 test 是 vuser_passwd.txt 奇數行的賬戶名:

sudo mkdir /etc/vsftpd/vuser_conf/
sudo vi /etc/vsftpd/vuser_conf/test

新增內容如下:

local_root=/ftp/www
write_enable=YES
anon_umask=022
anon_world_readable_only=NO 
anon_upload_enable=YES 
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

local_root - 虛擬使用者根目錄,根據實際情況修改
anon_xxx 表示匿名使用者有許可權做某樣事情,詳情參考:http://vsftpd.beasts.org/vsftpd_conf.html

最終/etc/vsftpd 目錄的結構供參考:

ubuntu@VM-0-14-ubuntu:/etc/vsftpd$ tree
.
├── vuser_conf
│   └── test
├── vuser_passwd.db
└── vuser_passwd.txt

1 directory, 3 files

重啟 vsftpd

sudo service vsftd restart

或者用命令:

sudo systemctl restart vsftpd

如果碰到了問題,直接執行 vsftpd 命令檢視報錯:

sudo vsftpd /etc/vsftpd.conf

關於 vsftp 的 SSL 配置參考文章:https://www.digitalocean.com/community/tutorials/how-to-set-up-vsftpd-for-a-user-s-directory-on-ubuntu-16-04#step-6-—-securing-transactions,下回講解。