Vsftpd服务的部署及优化

目录

1.ftp介绍 

2.vsftpd安装及启用

3.vsftpd基本信息

4.匿名用户访问控制 

1. 登陆控制

2. 家目录控制

3. 上传控制

4. 目录建立控制:YES为允许建立目录

5. 下载控制:NO表示匿名用户可以下载不能读的文件

6. 删除命令控制:YES为允许删除

7. 匿名用户上传文件权限设定

8. 匿名用户上传文件的用户身份设定 

9. 登录数量控制

10. 上传速率控制

5.本地用户的访问 

1、登录控制:YES表示允许本地访问

2、家目录控制

3、写权限控制:YES表示写权限开启

4、上传文件权限控制

5、用户登录控制 

6、锁定用户到自己的家目录

6.虚拟用户访问 

1、建立虚拟用户过程

2、虚拟用户家目录的独立设定

3、用户配置独立


实验环境:
  • 服务端:server主机
    192.168.189.131
    (1)关闭selinux
    (2)开启火墙并设定添加ftp服务
    (3)安装vsftpd并设定开机启动

vim /etc/selinux/config    ##设定selinux状态
reboot                             ##更改完selinux必须重启才有效
systemctl enable --now  firewalld.service  ##设定火墙开机启动
firewall-cmd --permanent --add-service=ftp  ##在火墙中添加ftp服务
firewall-cmd --reload  ##刷新火墙
dnf install vsftpd -y  ##安装vsftpd
systemctl enable --now vsftpd  ##设定vsftpd开机启动

  • 客户端:client主机
    192.168.189.133
    (1)关闭selinux
    (2)安装lftp(ftp协议文本浏览器)

vim /etc/selinux/config     ##设定selinux状态

reboot                              ##更改完selinux必须重启才有效

dnf install lftp -y               ##安装lftp

 

1.ftp介绍 

ftp : file transfer proto
互联中最老牌的文件传输协议

2.vsftpd安装及启用

1. 安装

dnf install vsftpd - y    #rhel8-1
dnf install lftp - y        #rhel8-2
关闭 selinux
systemctl disable -- now firewalld

2、启用(开启匿名用户的访问功能)
(1)服务端:

vim / etc / vsftpd / vsftpd.conf
12 anonymous_enable = YES
systemctl restart vsftpd

 

(2)客户端:
用firefox访问服务端ip:firefox ftp://ip

 

 3.vsftpd基本信息

服务名称 : vsftpd.service
配置目录 : / etc / vsftpd
主配置文件 : / etc / vsftpd / vsftpd.conf
默认发布目录 : / var / ftp
报错信息
550 ##程序本身拒绝
553 ##文件系统权限限制
500 ##权限过大
530 ##认证失败

4.匿名用户访问控制 

lftp 192.168.189.131  ##当访问 ftp 服务时没有加入用户认证为匿名访问
lftp 192.168.189.131  - u westos ## 本地用户访问

1.登陆控制

anonymous_enable = YES | NO

2.家目录控制

anon_root =/ sk

 

3.上传控制

anon_upload_enable = YES | NO

553错误:权限受限,修改权限和用户组

chmod 775 / var / ftp / pub
chgrp ftp / var / ftp / pub
lftp 192.168.0.100
cd pub
put / etc / passwd

4、目录建立控制:YES为允许建立目录

anon_mkdir_write_enable=YES|NO 

5、下载控制:NO表示匿名用户可以下载不能读的文件

  • YES:文件所有人为ftp且有读权限,文件的其他人必须有读的权限才允许下载
  • NO:只要ftp组对文件有读权限即可下载
  • 下载位置为使用lftp命令的位置

anon_world_readable_only=NO ##匿名用户可以下载不能读的文件 

 6、删除命令控制:YES为允许删除

anon_other_write_enable = YES | NO

7、匿名用户上传文件权限设定

  • 目录权限=777-umask
  • 文件权限=777-umsak-111
  • 当设定chown_username之后上传文件权限将不由此参数设定
anon_umask = xxx
anon_umask = 022 ## 当设定 chown_username 之后上传文权限将不是用此参数设定

 

8、匿名用户上传文件的用户身份设定 

chown_upload = YES
chown_username = yyl
chown_upload_mode = 0644

9、登录数量控制

max_clients=2 

 

10、上传速率控制

anon_max_rate = 102400

5.本地用户的访问 

1、登录控制:YES表示允许本地访问

local_enable = NO | YES

 

 2、家目录控制

local_root=/sk

3、写权限控制:YES表示写权限开启

write_enable=NO|YES 

(1)YES: 

(2)NO:

 

4、上传文件权限控制

  • 目录权限=777-umask
  • 文件权限=777-umsak-111

 

5、用户登录控制 

永久黑名单:/etc/vsftpd/ftpusers
默认黑名单:/etc/vsftpd/user_list
YES表示/etc/vsftpd/user_list为默认黑名单
当为NO时/etc/vsftpd/user_list为白名单,只有在白名单中的用户才可以登录ftp
/etc/vsftpd/ftpusers的优先级高于/etc/vsftpd/user_list,即如果一个用户同时存在两个名单中,则会优先看永久黑名单

userlist_deny = NO # 设定 / etc / vsftpd / user_list 位白名单
# 不在名单中的用户不能登陆 ftp

 

永久黑名单> 当为NO时/etc/vsftpd/user_list的白名单 白名单中没有yyl所以也被拒绝

6、锁定用户到自己的家目录

chmod u - w / home /*
chroot_local_user = YES
  • YES表示锁定用户到自己的家目录中

 

  • 家目录中不能有写的权限(之前更改了家目录为/sk,并设定权限为777)
  • 如果家目录为默认/home/*,则只需chmod u-w /home/*
  • 确保不会因为权限过大而报错

  

(1)锁定用户到自己的家目录中的白名单 

chroot_local_user = YES
chroot_list_enable = YES
chroot_list_file =/ etc / vsftpd / chroot_list

(2)锁定用户到自己的家目录中的黑名单 

chroot_local_user = NO
chroot_list_enable = YES
chroot_list_file =/ etc / vsftpd / chroot_list

 

yyl用户在黑名单中所有不能切换到根目录

 

lee用户不在黑名单中所以可以切换根目录 

 

6.虚拟用户访问 

1、建立虚拟用户过程

(1)建立认证文件模板

vim / etc / vsftpd / ftp_auth_file    #建立认证文件模板
westos1
123
westos2
123
westos3
123

 

(2)对认证文件加密
-T:转换,-t:转换方式,-f:指定文件

db_load -T -t hash -f ftp_auth_file ftp_auth_file.db ##加密认证文件 

(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

 

pam——负责认证的插件类模块 

(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
systemctl restart vsftpd

 

  

 

3、用户配置独立

(1)编辑配置文件

vim /etc/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd/user_config

systemctl restart vsftpd

 

(2)建立配置文件目录并编写配置文件

mkdir /etc/vsftpd/user_config

vim /etc/vsftpd/user_config/qwa1

anon_upload_enable = YES

 

(3)更改家目录权限和用户组 

chmod 775 /ftpuserdir/westos{1..3}/dir
chgrp ftp /ftpuserdir/westos{1..3}/dir

测试:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值