Vsftpd服务的部署及优化
Posted S4061222
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vsftpd服务的部署及优化相关的知识,希望对你有一定的参考价值。
一、ftp介绍
client:
vim /etc/selinux/config ##selinux关闭:disabled
dnf install vsftpd -y ##安装ftp
dnf install lftp -y ##安装lftp,ftp的协议文本浏览器,客户端安装访问软件
systemctl disable --now firewalld ##关闭防火墙
systemctl enable --now vsftpd ##开启vsftpd服务
1. ftp : file transfer proto ##互联网中最老牌的文件传输协议
当安装好服务和关闭火墙之后,此时默认是不能用 ftp的方式连接开启服务的主机;不论是网页访问还是命令方式都不可以;因为默认是不允许匿名用户访问
2.匿名用户可访问的设定
启动匿名用户的访问功能
3. 测试:
方法一:firefox中输入 ftp://ip 方式
方法二:lftp ip
此访问方式必须能列出资源才算访问成功, 在使用完成后请输入 exit 或者quit 退出 lftp
二、vsftpd基本信息
1. 服务名称: vsftpd.service
2. 配置目录: /etc/vsftpd
3. 主配置文件: /etc/vsftpd/vsftpd.conf
4. 默认发布目录: /var/ftp
5 报错信息:
(1)550 ##程序本身拒绝
(2)553 ##文件系统权限限制
(3)500 ##权限过大
(4)530 ##认证失败
三、匿名用户访问控制
当访问 ftp 服务时没有加入用户认证为匿名用户访问,匿名用户默认访问的是发布目录; 对主配置文件 /etc/vsftpd/vsftpd.conf 的修改来对以下信息进行控制
1.登陆控制
anonymous_enable=YES|NO
YES 时为允许匿名用户登录,NO 时为不允许匿名用户登录;
2.家目录控制
anon_root=/westosdir
更改匿名用户的发布目录
修改主配置文件后,必须重启服务
测试:
3.上传控制
anon_upload_enable=YES|NO;
YES 时允许匿名用户上传文件,NO时为不允许匿名用户上传文件;默认情况下匿名用户不能上传文件
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
由于 /var/ftp/pub/ 目录的权限为只针对超级用户可写,可以将 /var/ftp/pub/ 的组修改为 ftp,然后在赋予组ftp对此目录的执行权限
测试:
设定权限:
注:不能更改默认发布目录的权限,只能更改默认发布目录的子目录的权限。
重新测试:
4.删除重命令控制
anon_other_write_enable=YES|NO
YES 表示匿名用户可以对目录中的内容删除也可以重命名
测试:
5.目录建立控制
anon_mkdir_write_enable=YES|NO
YES 时允许匿名用户新建目录,NO 时为不允许匿名用户新建目录;默认情况下匿名用户不能新建目录。
测试:
但无法删除:
6.下载控制
anon_world_readable_only=NO
当设置为 NO 时, 匿名用户可以下载不能读的文件
测试:
7.匿名用户上传文件权限设定
anon_umask=xxx
anon_umask=022 表示上传文件的预留权限为 022
测试:
8.匿名用户上传文件的用户身份设定
chown_upload=YES
chown_username=westos
默认情况下匿名用户上传文件用的是 ftp 组的身份,更改后,表示用户上传文件用的是指定用户的身份上传
测试:
chown_upload_mode=0644
指定上传文件的权限
测试:
9.登陆数量控制:
max_clients=2
默认情况下该服务登录基本上没有数量控制,修改后,表示 ftp 服务能够接受链接的最大数量为 2 个
测试:
当登录数量超过设置时,会出现如图所示的提示:
10.上传速率控制
anon_max_rate=102400
控制上传速度控制,修改:匿名用户上传的最大速度为 100k
测试:
三、本地用户的访问
lftp 172.25.254.104 -u sun 加入用户时为本地用户访问,本地用户默认访问的是该用户家目录的内容
1.登陆控制
local_enable=YES
YES表示本地用户可以登录
测试:
local_enable=NO
本地用户登录被限制
测试:
2.家目录控制
local_root=/xxxxx
本地用户登录时默认登录的是本地用户的家目录,设定本地用户的家目录为: /westosdir
测试:
3.写权限控制
write_enable=NO|YES
YES表示 ftp 提供写的功能,可以上传和删除文件
测试:
4.上传文件权限控制
local_umask=077
默认情况下本地用户在上传文件时的预留权限为 022
测试:
5.用户登陆控制
默认情况下本地用户都可以登录 ftp 服务,限制本地用户的部分登录权限,需要用到黑白名单。
/etc/vsftpd/ftpusers
永久黑名单
/etc/vsftpd/user_list
默认黑名单
(1)在永久黑中添加本地用户westos之后,此时该用户不能登录 ftp ,而没有在黑名单的用户还可以登录
测试:
(2)用户登陆白名单:userlist_deny=NO,设定 /etc/vsftpd/user_list 为白名单
ftp只有在白名单/etc/vsftpd/user_list中的用户可以访问
测试:
6.锁定用户到自己的家目录中
(1)黑白名单取消
(2)
chmod u-w /home/*
chroot_local_user=YES
默认情况下本地用户是可以浏览根目录,修改主配置文件,使本地用户不能登录根目录,锁定用户到自己的家目录中
当给家目录减去写的权限,会看到进不到根目录中,被锁定在自己的家目录中
测试:
7.锁定用户到自己的家目录中的白名单
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
106行 :表示锁定用户到自己的家目录中,当所有用户被锁进自己的家目录中时,此时名单中的用户为白名单用户;
第107行:表示名单的功能开启,在名单中的用户默认可以浏览根目录;
第109行:表示读取名单的位置,此时该名单为白名单
当名单建立成功之后,此时在该名单中写入用户,此处写入的是sun用户,可以看到写入名单中的用户被锁定在了自己的家目录中,而没有写在该名单中的用户可以继续访问根目录;
测试:
8.锁定用户到自己的家目录中的黑名单
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
106:关闭锁定用户到自己的家目录
名单中的用户还为 sun ,此时只有 sun 用户没有被锁定在自己的家目录中,而不在名单中的用户便被锁定在自己的家目录中。
测试:
四、虚拟用户访问
1.建立虚拟用户过程
对于登录 ftp 服务时,都用匿名用户登录管理很不方便,都用本地用户登录也不现实,不可能建立无限多的本地用户,所以通过建立虚拟用户来解决改问题。
(1)编辑 vim /etc/vsftpd/ftpauth 文件,建立认证文件模板
文件名称是自行设定的;此文件中的内容编写规则为:一行用户,一行密码要对应起来
(2) 对认证文件进行加密, -T 表示转换,-t 表示加密的类型, -f 表示指定转换文件,最后的 db 文件名称为转换后的文件名;
(3)建立认证规则:
账号 验证方式 认证插件 验证对比文件
密码 验证方式 验证插件 验证对比文件注意: 验证对比文件一定要和认证模板文件名称一致
(4) 编辑主配置文件,对服务的读取规则做设定:
131: pam_service_name=ftpauth # 表示指定认证策略文件;
132: guest_enable=YES # 表示指定虚拟用户功能开启;
133: guest_username=ftp # 表示指定虚拟用户在 ftp 服务器上的身份;
测试:
实际用户不存在,但是可以成功登录ftp
2.虚拟用户家目录的独立设定
(1) 建立不同的发布目录
(2) 编辑主配置文件并重启服务
135:表示指定用户家目录, $USER是变量方式的指定 ;
136: 表示声明 $USER 是变量不是字符串;
(3)测试:
(4)修改虚拟用户发布目录的所有组,并修改发布目录的权限测试:
3.用户配置独立
(1)修改主配置文件并重启服务
(2)mkdik etc/ vsftpd/ user_conf ##此目录下建立特殊用户的特殊权限配置文件
在此目录中与用户名称相同的文件为用户配置文件,文件内容为该用户的一些特定权限;
写入内容为 anon_upload_enable=YES ,开启了匿名用户user1上传的权限;但此参数只有在 user1
用户登录时才拥有此权限
(3)
(4)测试:
赋予权限的用户可以执行特性的操作,而没有权限的用户并不能执行
以上是关于Vsftpd服务的部署及优化的主要内容,如果未能解决你的问题,请参考以下文章