第一步:安裝vsftpd
sudo apt install vsftpd db-util
第二步:虛擬用戶設置
- 新建一個系統(tǒng)用戶vsftpd蒜埋,家目錄為/home/vsftpd局齿,用戶登錄終端設為/bin/false(即使之不能登錄系統(tǒng))
sudo useradd vsftpd -d /home/vsftpd -s /bin/false
sudo mkdir /home/vsftpd
sudo chown vsftpd:vsftpd /home/vsftpd
- 創(chuàng)建虛擬用戶數(shù)據(jù)庫
sudo nano /home/vsftpd/loguser.txt
創(chuàng)建文本文件loguser.txt,格式如下:
user_id
password
奇數(shù)行為賬戶名蚯舱,偶數(shù)行為密碼搪缨,也就是1.3.5.等行為用戶名次氨,2.4.6行為密碼度陆,最后一行需要回車(否則建立數(shù)據(jù)庫文件時無法識別最后一行艾凯,導致報奇數(shù)行錯誤)。例如(db1, db2, db3為三個賬號):
db1
db100
db2
db200
db3
db300
- 生成賬號數(shù)據(jù)庫
需要db-util工具
sudo db_load -T -t hash -f /home/vsftpd/loguser.txt /etc/vsftpd_login.db
# 設置一下數(shù)據(jù)庫文件的訪問權限
sudo chmod 600 /etc/vsftpd_login.db
- 配置PAM文件
sudo nano /etc/pam.d/vsftpd.vu
編輯文件/etc/pam.d/vsftpd.vu懂傀,將以下內(nèi)容增加到原文件前面兩行:
auth sufficient pam_userdb.so db=/etc/vsftpd_login
account sufficient pam_userdb.so db=/etc/vsftpd_login
上一步建立的數(shù)據(jù)庫 vsftpd_login 在此處被使用趾诗。
虛擬用戶采用PAM進行驗證,這是通過/etc/vsftpd.conf文件中的語句 pam_service_name=vsftpd.vu 來啟用的蹬蚁。
- 虛擬用戶配置
在上面的/etc/vsftpd.conf配置中恃泪,有這么一行
user_config_dir=/etc/vsftpd_user_conf
現(xiàn)在,我們要把各個用戶的配置文件放到目錄/etc/vsftpd_user_conf中
sudo mkdir /etc/vsftpd_user_conf
cd /etc/vsftpd_user_conf
sudo touch db1 db2 db3
db1文件中的內(nèi)容如下
write_enable=NO
local_root=/home/vsftpd/dbzh1
同樣犀斋,db2文件中的內(nèi)容
write_enable=YES
local_root=/home/vsftpd/dbzh2
那么悟泵,db3的內(nèi)容呢? 其實也很簡單
write_enable=YES
local_root=/home/vsftpd/dbzh3
這里要注意不能有空格闪水,不然登錄的時候會提示出錯糕非。
第三步:配置
sudo nano /etc/vsftpd.conf
配置如下:
# 關閉匿名訪問
anonymous_enable=NO
#讓本地賬號可以訪問
local_enable=YES
write_enable=YES
local_umask=022
#Passive mode
pasv_enable=YES ;允許被動模式
pasv_min_port=41000
pasv_max_port=42000
#流量控制
max_clients=100 ; 允許的最大連接數(shù),定義為100球榆,默認為0朽肥,表沒有限制
max_per_ip=5 ; 每個IP允許的連接數(shù),0表沒有限制持钉,需要運行于獨立模式方可
local_max_rate=200000 衡招;用戶寬帶限制 200k
#鎖定目錄
chroot_local_user=YES ;禁止用戶離開主目錄
chroot_list_enable=NO
allow_writeable_chroot=YES
#其它
dirmessage_enable=YES
xferlog_enable=YES
#允許虛擬用戶
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd_user_conf
pam_service_name=vsftpd.vu
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
anon_max_rate=50000 ;匿名用戶最大帶寬每强,單位為bps
第四步:重啟vsftpd
sudo systemctl restart vsftpd