目录
前言
实验环境
一、vsftpd的安装及启用
1、具体步骤
2、开启匿名用户访问功能并测试
二、vsftpd基本信息
三、匿名用户访问控制
四、本地用户访问控制
五、虚拟用户访问
1、建立虚拟用户访问
2、虚拟用户家目录的独立设定
3、用户配置独立
前言
vsftpd是“very secure TTP daemon”的缩写,是一个完全免费的、开放源代码的ftp服务器软件,主打安全的FTP服务器,有很多的选项设置。也一款在Linux发行版中最受推崇的ftp服务器程序,小巧轻快,安全易用,支持虚拟用户,支持带宽限制等功能。
实验环境
1.主机名
2.软件仓库
3.网络
4.关闭selinux(修改后需要重启)
5.开启火墙
一、vsftpd的安装及启用
1、具体步骤
在vsftpd服务器中进行如下操作:
(1)dnf install vsftpd -y 安装vsftpd,安装前要保证该主机dnf功能可正常使用
(2)vim /etc/sysconfig/selinux 关闭selinux
(3)systemctl enable --now vsftpd 启动vsftpd服务
(4) firewall-cmd --permanent --add-service=ftp 保证ftp服务通过防火墙
firewall-cmd --reload 重新加载防火墙设置(5)dnf install lftp 安装lftp服务来
在客户端主机中安装lftp服务来查看vsftpd服务端共享的文件:
2、开启匿名用户访问功能并测试
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES 编辑vsftpd的主配置文件,启动匿名用户的访问功能
修改了配置文件一定要重启服务
ls可以列出资源就证明登录成功
二、vsftpd基本信息
服务名称: | vsftpd.service |
配置目录: | /etc/vsftpd |
主配置文件: | /etc/vsftpd/vsftpd.conf |
默认发布目录: | /var/ftp |
550报错 | 程序本身拒绝(服务相应功能未开启) |
553报错 | 文件系统权限限制 |
500报错 | 权限过大 |
530报错 | 认证失败(一般是输入密码错误) |
三、匿名用户访问控制
lftp ip 当访问ftp服务时后面没有加入用户认证时为匿名访问
lftp ip -u username 本地用户访问
vim /etc/selinux/config 相应控制在该配置文件中修改、编写
(1)登陆控制
anonymous_enable=YES|NO 为YES时表示匿名访问开启(2)家目录控制
anon_root=/westosdir 设置家目录,没有设置时默认为/var/ftp(3)上传控制
anon_upload_enable=YES|NO 为YES时表示可以上传文件,使用Put命令上传,eg:Put /etc/passwd
chmod 775 /var/ftp/pub 为相应目录设置权限,并设置拥有组
chgrp ftp /var/ftp/pub
lftp ip
cd pub/
put /etc/passwd(4)目录建立控制
anon_mkdir_write_enable=YES|NO 为YES时表示匿名用户可以建立目录(5)下载控制
anon_world_readable_only=NO 为NO时匿名用户可以下载不能读的文件,下载命令为get,在哪里下载的,文件就存储在哪个位置(6)删除命令控制
anon_other_write_enable=YES|NO 当为YES时,匿名用户可以删除文件(7)匿名用户上传文件权限设定
anon_umask=xxx 当设定chown_username之后上传文权限将不是用此参数设定(因为设定完chown_username之后将不再是匿名用户(8)匿名用户上传文件的用户身份设定
chown_upload=YES 开启后可设置指定用户上传指定权限的文件
chown_username=username
chown_upload_mode=0644(9)登陆数量控制:
max_clients=2 设置完该数量之后,最多只能有该数量个登录,超过则无法登录(10)上传速率控制
anon_max_rate=102400 当用户数量过多,而流量有限的时候,可以通过该设置来限制用户的上传速度以达到资源的合理分配
家目录控制:
上传控制:
下载控制:
删除命令控制:
目录建立控制:
匿名用户上传文件权限设定:
注:当设定chown_username之后上传文件权限将不使用此参数设定
匿名用户上传文件的用户身份设定:
登陆数量控制和上传速率控制:
默认情况下ftp不显示用户登录数量
四、本地用户访问控制
lftp ip -u username 指定某个本地用户访问
vim /etc/vsftpd/vsftpd.conf 编辑主配置文件中的相应内容
实验素材,创建两个用户:
登陆控制
家目录控制
写权限控制
上传文件权限控制
用户登陆设置
用户登陆控制
/etc/vsftpd/ftpusers #永久黑
/etc/vsftpd/user_list #默认黑
用户登陆白名单
userlist_deny=NO #当为NO时表示设定/etc/vsftpd/user_list为白名单,不在名单中的用户不能登陆ftp
黑名单:
白名单
把/etc/vsftpd/user_list 变为白名单
当此参数设定只有在/etc/vsftpd/user_list文件中指定的用户才可以登录ftp
锁定用户到自己家目录中
1.锁定用户到自己的家目录中
chmod u-w /home/ * 为了防止用户访问时随意切换目录并做不合法操作而导致系统异常,开启此功能后可使用户访问时锁定到自己的家目录中而避免一些误操作
chroot_local_user=YES
2.锁定用户到自己的家目录中的白名单
chroot_local_user=YES 为YES且下面两行开启时,chroot_list为白名单,即在该名单中的用户在访问时可以切换到其他目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
3.锁定用户到自己的家目录中的黑名单
chroot_local_user=NO 为YES且下面两行开启时,chroot_list为黑名单,即在该名单中的用户在访问时不可以切换到其他目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
锁定用户到自己家目录的黑名单:
锁定用户到自己家目录的白名单:
五、虚拟用户访问
1、建立虚拟用户访问
(1)vim /etc/vsftpd/ftp_auth_file 建立认证文件模板
westos1
123
westos2
123
westos3
123(2)db_load -T -t hash -f ftp_auth_file ftp_auth_file.db 加密认证文件,-T 转换 -t type -f 指定转换文件
(3)vim /etc/pam.d/westos
account required pam_userdb.so db=/etc/vsftpd/ftp_auth_file
auth required pam_userdb.so db=/etc/vsftpd/ftp_auth_file(4)vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos 指定认证策略文件
guest_enable=YES 指定虚拟用户功能开启
guest_username=ftp 指定虚拟用户在ftp服务器上的用户身份
2、虚拟用户家目录的独立设定
(1)mkdir -p /ftpuserdir/westos{1..3} 为每个目录创建家目录
touch /ftpuserdir/westos1/westos1file 在各自相应的家目录下创建文件用来在访问的时候验证家目录是否创建成功
touch /ftpuserdir/westos2/westos2file
touch /ftpuserdir/westos3/westos3file(2)vim /etc/vsftpd/vsftpd.conf 编辑配置文件,保证每个不同的用户在访问时都能正常的进入到各自的家目录中
local_root=/ftpuserdir/$USER
user_sub_token=$USER(3)systemctl restart vsftpd 重启该服务,使主配置文件中的设置生效
3、用户配置独立
(1)chmod 775 /var/ftphome/user{1..3}/test
chgrp ftp /var/ftphome/user{1..3}/test(2)vim /etc/vsftpd/vsftpd.conf
注释下面内容(之前做匿名用户访问时的设置):
#anon_upload_enable=YES
#anon_other_write_enable=YES
#anon_umask=022
#anon_world_readable_only=NO
#anon_root=/westos_ftp(3)在该文件末尾加:user_config_dir=/etc/vsftpd/user_config #在此目录中与用户名称相同的文件为用户配置文件
mkdir /etc/vsftpd/user_config
vim /etc/vsftpd/user_config/指定用户
anon_upload_enable=YES(4)设定完成后指定用户可以上传文件,其它用户不可以