輕量伺服器 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 配置中文說明參考:
- https://blog.csdn.net/aiynmimi/article/details/77012507
- https://www.cnblogs.com/xiongpq/p/3384759.html
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,下回講解。