目录
一、环境需求
二、安装epel源
三、安装 vsftpd 及相关依赖
四、vsftpd 配置文件说明
五、vsftpd 修改配置前备份配置文件
六、vsftpd 配置匿名用户
1、编辑配置文件
2、客户端登陆验证
3、使用匿名登录
4、登录成功
5、修改权限实现上传
七、vsftp 配置本地(系统)用户
1、创建测试用户
2、修改配置文件
3、添加用户到白名单
4、重启服务
八、vsftp 配置虚拟用户
1、建立虚拟 FTP 用户的帐号
2、创建虚拟用户文件
3、创建数据文件
4、建立支持虚拟用户的PAM认证文件
5、修改配置文件
6、为用户建立独立的配置目录及文件
7、创建虚拟用户数据存放目录
8、重启服务
9、登陆测试
10、登陆成功。添加文件进行测试
服务端系统:CentOS7; 软件: vsftpd
客户端系统:Windows10 ; 软件:xftp客户端
[root@localhost ~]# yum -y install epel-release.noarch
[root@localhost ~]# yum -y install vsftpd* pam* db4*
[root@localhost ~]# systemctl restart vsftpd
配置文件 | 作用 |
---|---|
/etc/vsftpd/vsftpd.conf | vsftpd的核心配置文件 |
/etc/vsftpd/ftpusers | 用于指定哪些用户不能访问FTP服务器 |
/etc/vsftpd/user_list | 指定允许使用vsftpd的用户列表文件 |
/etc/vsftpd/vsftpd_conf_migrate.sh | 是vsftpd操作的一些变量和设置脚本 |
/var/ftp/ | 默认情况下匿名用户的根目录 |
[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
[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 ^# //过滤注释行
[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
[root@localhost ~]# useradd zhangsan
[root@localhost ~]# passwd zhangsan
[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
[root@localhost ~]# vim /etc/vsftpd/user_list
zhangsan
[root@localhost ~]# systemctl restart vsftpd
[root@localhost vsftpd]# useradd -s /sbin/nologin vu
[root@localhost vsftpd]# vim user
wangwu
123456
奇数行代表用户名,偶数行代表用户密码
[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
[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
[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
[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
[root@localhost user_dir]# cd ..
[root@localhost vsftpd]# mkdir data
[root@localhost vsftpd]# chmod 777 data/
[root@localhost vsftpd]# systemctl restart vsftpd
[root@localhost vsftpd]# cd data/
[root@localhost data]# touch wangwu.txt