目录
6.4.2临时控制黑名单与用户登陆白名单(user_list)
6.5.2锁定用户到自己的家目录中白名单(/etc/vsftpd/chroot-list)
6.5.3锁定用户到自己的家目录中黑名单(/etc/vsftpd/chroot-list)
1.实验环境
server主机(服务端) | client主机(客户端) | |
名称 | westosa | westosb |
ip | 172.25.254.112 | 172.25.254.212 |
selinux | (关闭) | (关闭) |
火墙设置 | 开启 | |
dnf | 安装设定完成 | 安装设定完成 |
安装lftp #ftp协议文本浏览器 |
2.ftp介绍
- 互联中最老牌的文件传输协议,全称:file transfer proto
3.vsftpd安装及启用
1.安装ftp服务日软件
dnf install vsftpd lftp -y :服务端
systemctl enable --now vsftpd :服务启动
dnf install lftp -y :客户端
2.火墙管理
systemctl enable --now firewalld
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
3.匿名用户的访问功能的启动
vim /etc/vsftpd/vsftpd.conf 编辑配置文件
12 anonymous_enable=YES 编辑内容
systemctl restart vsftpd
4.测试
lftp 172.25.254.112
lftp 172.25.254.212
4.vsftpd基本信息
服务名称 | vsftpd.service |
配置目录 | /etc/vsftpd |
主配置文件 | /etc/vsftpd/vsftpd.conf |
默认发布目录 | /var/ftp |
550 | 程序本身拒绝 |
553 | 文件系统权限限制 |
500 | 权限过大 |
530 | 认证失败 |
5.匿名用户访问控制
- lftp 172.25.254.212 :当访问ftp服务时没有加入用户认证为匿名访问
- lftp 172.25.254.212 -u westos :本地用户访问
- 登陆控制:vim /etc/vsftp/vsftpd.conf 编辑配置文件,内容:anonymous_enable=YES(允许匿名用户登陆)|NO(不允许匿名用户登陆)
- 配置文件编辑之后。均需要重启:systemctl restart vsftp
5.1家目录的控制
mkdir /var/ftp/westos1 新建目录
vim /etc/vsftp/vsftpd.conf 编辑配置文件,内容:anon_root=/var/ftp/westos1
systemctl restart vsftp 服务重启
5.2上传控制
vim /etc/vsftp/vsftpd.conf 编辑配置文件,内容:anon_upload_enable=YES(允许)|NO(不允许)
测试中会出现553报错,故需要更改上传目录所有组及权限:
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
5.3目录控制以及下载控制 (均需要vim /etc/vsftp/vsftpd.conf )
- 目录建立控制 :anon_mkdir_write_enable=YES|NO
- 下载控制 :anon_world_readable_only=NO
- 删除重命令控制:anon_other_write_enable=YES|NO
5.4匿名用户上传文件权限设定 (需要vim /etc/vsftp/vsftpd.conf )
- anon_umask=xxx (例如022,则上传文件的预留权限阀值为:777-022-111=644)
- 注:当设定匿名用户上传文件的用户身份之后上传文权限将不是用此参数设定
5.5匿名用户上传文件的用户身份设定(需要vim /etc/vsftp/vsftpd.conf )
- chown_uploads=YES
- chown_username=westos :用户身份
- chown_upload_mode=0644 :上传文件的预留权限阀值为644
5.6登陆数量及其上传速度 (均需要vim /etc/vsftp/vsftpd.conf )
- max_clients=2 :登陆数量限制为2(默认为50)
- anon_max_rate=102400 上传速度最大值为100kb每秒
6.本地用户的访问
6.1登陆控制
用户创建:
useradd lee
useradd zl
用户密码:
echo lee | passwd --stdin lee
echo zl | passwd --stdin zl
编辑配置文件:vim /etc/vsftp/vsftpd.conf ,内容:
local_enable=NO|YES
服务重启:systemctl restart vsftp
6.2权限控制(均需要vim /etc/vsftp/vsftpd.conf )
- 写权限控制 :write_enable=NO(不允许)|YES(允许)
- 上传文件权限控制 :local_umask=077 :默认保留权限为:077
6.3家目录控制 (需要vim /etc/vsftp/vsftpd.conf )
mkdir /var/ftp/westosdir 新建目录
vim /etc/vsftp/vsftpd.conf 编辑配置文件,内容:
local_root=/westosdir 家目录
systemctl restart vsftp 服务重启
6.4用户登陆控制
6.4.1永久控制黑名单(ftpusers)
- 任何用户出现在名单中,均不可登陆,且优先级最高
- 通过:vim /etc/vsftpd/ftpusers ,编辑名单
6.4.2临时控制黑名单与用户登陆白名单(user_list)
- 通过:vim /etc/vsftpd/ user_list),编辑临时控制黑名单
- 临时控制黑名单可转换成用户登陆白名单,通过:vim /etc/vsftp/vsftpd.conf ,编辑内容为:userlist_deny=NO
- 用户登陆白名单为仅有名单中的用户可以登陆
6.5家目录的访问控制(均需要vim /etc/vsftp/vsftpd.conf )
6.5.1锁定用户到自己的家目录中
- chmod u-w /home/* :为了不让所用用户对自己的家目录有写的权力
- chroot_local_user=YES
6.5.2锁定用户到自己的家目录中的白名单(/etc/vsftpd/chroot-list)
- chroot_local_user=YES
- chroot_list_enable=YES
- chroot_list_file=/etc/vsftpd/chroot_list
6.5.3锁定用户到自己的家目录中的黑名单(/etc/vsftpd/chroot-list)
- chroot_local_user=NO
- chroot_list_enable=YES
- chroot_list_file=/etc/vsftpd/chroot_list
7.虚拟用户访问
7.1建立虚拟用户过程
- 建立认证文件模板:vim /etc/vsftpd/auth_file ,编辑内容为:用户+密码
- 加密认证文件 :db_load -T -t hash -f auth_file auth_file.db :(-T :转换 , -t :type ,-f 指定转换文件)
- 编辑认证策略(vim /etc/pam.d/westos_auth)
account | required | pam_userdb.so | db=/etc/vsftpd/auth_file |
用户账号 | 认证通过 | 拒绝错误认证 | 认证用户名单 |
auth | required | pam_userdb.so | db=/etc/vsftpd/auth_file |
用户密码 | 认证通过 | 拒绝错误认证 | 认证用户名单 |
4.编辑配置文件:vim /etc/vsftpd/vsftpd.conf
- pam_service_name=westos :指定认证策略文件
- guest_enable=YES :指定虚拟用户功能开启
- guest_username=ftp :指定虚拟用户在ftp服务器上的用户身份