1. 程式人生 > >Linux環境下配置vsftpd的虛擬用戶

Linux環境下配置vsftpd的虛擬用戶

none 5.1 txt CA cal hid cif size start

環境:CentOS Linux release 7.4.1708 (Core)
vsftpd版本:vsftpd: version 3.0.2


1、安裝vsftpd
# yum -y install vsftpd

2、建立虛擬用戶帳號密碼
# vim /etc/vsftpd/users
ftp1
123456

3、創建虛擬用戶數據庫文件
# db_load -T -t hash -f /etc/vsftpd/users /etc/vsftpd/virtual_users.db

4、創建虛擬賬戶的本地目錄
# mkdir -p /var/ftp/users/ftp1

5、備份以及為虛擬用戶配置vsftpd文件
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO
local_enable=YES
virtual_use_local_privs=YES
write_enable=YES
allow_writeable_chroot=YES
pam_service_name=vsftpd.virtual
guest_enable=YES
user_sub_token=$USER
local_root=/var/ftp/users/$USER
chroot_local_user=YES
hide_ids=YES
xferlog_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
log_ftp_protocol=YES
pasv_enable=Yes
pasv_max_port=21000
pasv_min_port=20000

6、創建pam文件,使用上述新建的數據庫文件
新建pam文件:
# vim /etc/pam.d/vsftpd.virtual
auth required pam_userdb.so db=/etc/vsftpd/virtual_users
account required pam_userdb.so db=/etc/vsftpd/virtual_users
session required pam_loginuid.so

7、配置防火墻
# iptables -I INPUT -p tcp --destination-port 20:21 -j ACCEPT
# iptables -I INPUT -p tcp --destination-port 20000:21000 -j ACCEPT

8、修改所有者及所屬組
# chown ftp.ftp /var/ftp/users/ftp1
如果系統不存在ftp用戶,則需手動創建
# useradd -d varftp -s /sbin/nologin ftp

9、啟動服務並關閉selinux
# systemctl start vsftpd
# vim /etc/selinux/config
把SELINUX=enforcing 改為 SELINUX=disabled

10、測試
vbox@vbox:~$ ftp 192.168.199.153
Connected to 192.168.199.153.
220 (vsFTPd 3.0.2)
Name (192.168.199.153:vbox): ftp1
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> put hello.txt
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
7 bytes sent in 9.1e-05 seconds (75.1 kbytes/s)

Linux環境下配置vsftpd的虛擬用戶