1、匿名用户
[下载]
[root@kittod ftp]# dnf install ftp -y
[root@kittod ftp]# dnf install vsftpd -y
默认配置即可实现 修改匿名用户下载选项
[上传]
#修改配置文件中匿名上传的相关选项
[root@ldap ftp]# vim /etc/vsftpd/vsftpd.conf
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
#修改匿名用户目录的权限
[root@ldap ftp]# chmod 777 pub/
#修改匿名上传布尔值
[root@ldap ftp]# setsebool ftpd_anon_write on
[root@ldap var]# getsebool -a | grep ftpd_anon_write
ftpd_anon_write --> on
#修改匿名上传的上下文权限
[root@ldap var]# ll -Z /var/ftp
drwxr-xrwx. root root system_u:object_r:public_content_rw_t:s0 pub
[root@ldap ftp]# chcon -t public_content_rw_t pub/
[删除]
#修改配置文件,添加如下选项
[root@ldap ftp]# vi /etc/vsftpd/vsftpd.conf
anon_other_write_enable=YES
查看:
使用谷歌浏览器登录 ftp://192.168.254.136/
2、系统用户
[下载]
#修改主配置文件开启本地用户权限
[root@ldap ftp]# vim /etc/vsftpd/vsftpd.conf
local_enable=YES
#注释以下三行
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
#修改如下选项
[root@ldap ftp]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
#修改布尔值打开/home目录的权限
[root@localhost haha]# setsebool -P ftp_home_dir on
[root@localhost haha]# getsebool -a | grep ftp_home_dir
ftp_home_dir --> on
[上传]
#修改主配置文件开启本地用户权限
[root@ldap ftp]# vim /etc/vsftpd/vsftpd.conf
write_enable=YES
[删除]
同上传配置
[遍历]
#首先开启chroot选项
[root@ldap ftp]# vim /etc/vsftpd/vsftpd.conf
allow_writeable_chroot=YES
#然后使用下面两个选项之一
#指定本地用户能chroot
chroot_local_user=YES
#开启通过列表的方式来指定用户
chroot_list_enable=YES
#指定用户列表文件
chroot_list_file=/etc/vsftpd/chroot_list
#在当前目录创建用户列表文件
[root@localhost vsftpd]# cat chroot_list
haha
如果chroot_local_user=YES开启,那么指定列表中的用户可遍历
如果没有开启chroot_local_user=YES,那么指定列表中的用户不可以遍历
3、虚拟用户
#创建系统用户,禁止该用户进行登陆
[root@ldap ftp]# useradd -s /sbin/nologin vhaha
#修改用户家目录权限
[root@localhost vsftpd]# chmod 704 /home/vhaha/
#修改主配置文件,增加以下三个选项
[root@ldap ftp]# vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=vhaha #vhaha为系统用户
virtual_use_local_privs=YES
#创建虚拟用户数据库文件
#创建虚拟用户文件如下:
#格式为一行用户名,一行密码,示例中abc为用户名,redhat为密码
[root@localhost vsftpd]# cat vuser
abc
redhat
xixi
redhat
haha
redhat
#将虚拟用户文件转换成用户数据库文件
[root@localhost vsftpd]# db_load -T -t hash -f vuser user.db
#修改虚拟用户数据库文件权限
[root@localhost vsftpd]# chmod 600 user.db
#查看虚拟用户数据库文件的上下文权限
[root@localhost vsftpd]# ll -Z user.db
-rw-------. root root unconfined_u:object_r:etc_t:s0 user.db
#修改PAM认证方式
#编辑认证配置文件
[root@localhost vsftpd]# vi /etc/pam.d/vsftpd
#注释掉所有行,并添加以下两行:
auth required pam_userdb.so db=/etc/vsftpd/user
account required pam_userdb.so db=/etc/vsftpd/user
#注:数据库文件名的“.db”不用输入
#完成以上配置后,重启服务进行测试
抓包:
tcpdump -i ens160 -nn -X -vv tcp port 21 and ip host 192.168.254.136
tcpdump ——抓包工具
-i ens160——接口类型
-nn——以数字显示端口号信息
-X -vv——查看