文章目录
1.ftp服务的安装
dnf install vsftpd.x86_64 lftp.x86_64 -y
getenforce 查看模式
如果不是Disable 修改文件/etc/selinux/config
修改为disable
然后重启系统
开启vsftp的服务
systemctl --now enable vsftpd
查看防火墙的状态
systemctl status firewalld.service ##确保防火墙的状体为开启
firewall-cmd --permanent --add-service=ftp ##将ftp添加到防火清允许的范围之中
firewall-cmd --reload ##重新加载防火墙的系统文件
报错信息
550 程序本身拒绝
553 文件系统权限过大
500 权限过大
530 认证失败
配置文件
/etc/vsftpd/vsftpd.conf
4.匿名用户访问控制
lftp 172.25.254.140 ##当访问ftp服务时没有加入用户认证为你匿名访问
lftp 172.25.254.40 -u westos ##本地访问
登陆控制
是否允许匿名用户进行登陆
该参数默认时关闭的
anonymos_enable=YES #YES 表示允许匿名用户进行登陆
匿名用户上传文件权限的管理
anon_upload_enable=YES
chgrp ftp /var/ftp/pub/
chmod 775 /var/ftp/pub/
注:实验证明 匿名的登陆实际上时利用ftp用户进行登陆的
匿名用户w权限的管理
anon_mkdir_write_enable=YES
注:目录的建立,也是需要匿名用户对文件/var/ftp/pub 具有w的权限
此时匿名用户不具有目录的删除的权限
man命令查看帮助
man vsftpd.conf
anon_world_readable_only=NO ##设置NO时,可以下载不可读文件
anon_other_write_enable ##设置为YES时,可以删除和重命名
匿名用户上传文件权限设定
文件中本身不存在
anon_umask=022 ##设定上传文件的权限的预留值
匿名用户上传文件身份设定
#chown_uploads=YES
#chown_username=lee
上传文件时指定用户身份
此时文件的权限就不生效了,需要重新编写文件的权限
修改上传文件的权限
chown_upload_mode=0644
登陆数量控制
max_clients=3 ##ftp服务器能够接受连接的最大数量
上传速率的控制
anon_max_rate=102400 ##设置用户的最大上传速率
5.本地用户的访问
local_enable=NO|YES
本地用户是否能够上传文件
写权限的控制
write_enable=NO|YES
上传文件权限控制
local_umask=077 ##系统保留权限
用户登录的控制
/etc/vsftpd/目录中的文件
ftpusers ##永久的黑名单
user_list ##临时黑名单
用户登陆白名单
userlist_deny=NO 当此参数生效时,默认所有都不能登陆
user_list 名单中的人可以进行登陆,此时该名单变成白名单
锁定用户到自己的家目录中
chmod u-w /home/* ##如果不设定权限,系统会进行报错
chroot_local_user=YES
注:白名单和黑名单的文件时不存在的需要手动的进行添加
锁定用户到自己家目录中的白名单
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
注:只有白名单中的用户是可以访问其他目录的
先 cd 然后利用ls进行验证
锁定用户到自己家目录中的黑名单
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
注:只有黑名单中的用户是不能访问其他目录的
先 cd 然后利用ls进行验证
6.虚拟用户的访问
1.建立虚拟用户过程 ###
1.vim /etc/vsftpd/virt_users
文件格式
用户名
密码
用户名
密码
db_load -T -t hash -f /etc/vsftpd/virt_users /etc/vsftpd/virt_users.db
##对认证文件进行加密
在/etc/pam.d/ 目录中添加认证规则
vim virt_users
文件内容为
账号 验证方式 认证插件 验证对比文件
密码 验证方式 认证插件 验证对比文件
account required pam_userdb.so db=/etc/vsftpd/virt_users
auth required pam_userdb.so db=/etc/vsftpd/virt_users
在ftp配置文件中修改
pam_server_name=virt_users ##认证规则文件
userlist_enable=YES
guest_enable=YES
guest_username=ftp
虚拟用户用户家目录的独立设定
mkdir -p /ftpwestosdir/user{1…2}
touch /ftpwestosdir/user1/westos1file
touch /ftpwestosdir/user2/westos2file
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserdir/$USER ##指定用户家目录 $USER是变量方式指定
user_sub_token=USER ##$USER是变量不是字符串
systemctl restart vsftpd
用户配置独立
注:实验前提,关闭匿名用户的所有权限
user_config_dir=/etc/vsftpd/user_config/ #在此目录中与用户名称相同的文件为用户配置文件 #设定所有虚拟用户的配置目录为/etc/vsftpd/user_config/
mkdir /etc/vdftpd/user_config
vim /etc/vdftpd/user_config/user1
anon_upload_enable=YEs
注:此参数只有在user1登陆时才会被识别
设定完成之后user1用户可以上传文件
user2 不可以上传文件