目录
一、环境需求
服务端系统:CentOS7; 软件: vsftpd
客户端系统:Windows10 ; 软件:xftp客户端
二、安装epel源
[root@localhost ~]# yum -y install epel-release.noarch
三、安装 vsftpd 及相关依赖
[root@localhost ~]# yum -y install vsftpd* pam* db4*
[root@localhost ~]# systemctl restart vsftpd
四、vsftpd 配置文件说明
配置文件 | 作用 |
---|---|
/etc/vsftpd/vsftpd.conf | vsftpd的核心配置文件 |
/etc/vsftpd/ftpusers | 用于指定哪些用户不能访问FTP服务器 |
/etc/vsftpd/user_list | 指定允许使用vsftpd的用户列表文件 |
/etc/vsftpd/vsftpd_conf_migrate.sh | 是vsftpd操作的一些变量和设置脚本 |
/var/ftp/ | 默认情况下匿名用户的根目录 |
五、vsftpd 修改配置前备份配置文件
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# cp vsftpd.conf{,.bak}
[root@localhost vsftpd]# ls
ftpusers user_list vsftpd.conf vsftpd.conf.bak vsftpd_conf_migrate.sh
六、vsftpd 配置匿名用户
1、编辑配置文件
[root@localhost vsftpd]# vim vsftpd.conf
write_enable=YES
anon_umask=022
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
[root@localhost vsftpd]# cat vsftpd.conf | grep -v ^# //过滤注释行
2、客户端登陆验证
3、使用匿名登录
4、登录成功
5、修改权限实现上传
[root@localhost vsftpd]# cd /var/ftp/
[root@localhost ftp]# chown -R ftp.ftp pub/
[root@localhost ftp]# ll -d pub/
drwxr-xr-x. 2 ftp ftp 6 6月 10 00:15 pub/
[root@localhost ftp]# systemctl restart vsftpd
七、vsftp 配置本地(系统)用户
1、创建测试用户
[root@localhost ~]# useradd zhangsan
[root@localhost ~]# passwd zhangsan
2、修改配置文件
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
local_enable=YES
local_umask=077
chroot_local_user=YES
allow_writeable_chroot=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
tcp_wrappers=YES
3、添加用户到白名单
[root@localhost ~]# vim /etc/vsftpd/user_list
zhangsan
4、重启服务
[root@localhost ~]# systemctl restart vsftpd
八、vsftp 配置虚拟用户
1、建立虚拟 FTP 用户的帐号
[root@localhost vsftpd]# useradd -s /sbin/nologin vu
2、创建虚拟用户文件
[root@localhost vsftpd]# vim user
wangwu
123456
奇数行代表用户名,偶数行代表用户密码
3、创建数据文件
[root@localhost vsftpd]# db_load -T -t hash -f user user.db
[root@localhost vsftpd]# ls
ftpusers user user.db user_list vsftpd.conf vsftpd.conf.bak vsftpd_conf_migrate.sh
4、建立支持虚拟用户的PAM认证文件
[root@localhost vsftpd]# vim /etc/pam.d/vsftpd.vu
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/user
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/user
5、修改配置文件
[root@localhost vsftpd]# vim vsftpd.conf
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
userlist_enable=YES
tcp_wrappers=YES
allow_writeable_chroot=YES
guest_enable=YES
guest_username=vu
pam_service_name=vsftpd.vu
local_enable=YES
local_umask=077
chroot_local_user=YES
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/user_dir
6、为用户建立独立的配置目录及文件
[root@localhost vsftpd]# mkdir /etc/vsftpd/user_dir
[root@localhost vsftpd]# cd /etc/vsftpd/user_dir
[root@localhost user_dir]# vim wangwu
local_root=/etc/vsftpd/data
7、创建虚拟用户数据存放目录
[root@localhost user_dir]# cd ..
[root@localhost vsftpd]# mkdir data
[root@localhost vsftpd]# chmod 777 data/
8、重启服务
[root@localhost vsftpd]# systemctl restart vsftpd
9、登陆测试
10、登陆成功。添加文件进行测试
[root@localhost vsftpd]# cd data/
[root@localhost data]# touch wangwu.txt