Vsftpd服务的部署及优化


实验环境

server主机:
                   # westos_node1
                   # 172.25.254.250
                   # selinux关闭
                   # 火墙开启
                   # dnf安装设定完成
#
#client主机:
                   # westos_linux
                   # 172.25.254.100
                   # selinux关闭
                   # dnf安装设定完成
                   # 安装lftp #ftp协议文本浏览器

1.ftp介绍

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

2.vsftpd安装及启用

vsftpd:能够提供ftp服务的其中之一;(全称:very secure FTP daemon)

dnf install vsftpd -y         #server————服务端
dnf install lftp -y           #client—————客户端
关闭selinux
systemctl disable --now firewalld 

vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=YES       ##启动匿名用户的访问功能
systemctl restart vsftpd 

测试安装发布:
firefox ftp://ip
lftp ip               ##此访问方式必须能列出资源才算访问成功
                      ##在使用完成后请输入exit推出lftp

在这里插入图片描述
在这里插入图片描述

3.vsftpd基本信息

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

4.匿名用户访问控制

man 5 vsftpd.conf可以查询相关参数

lftp 192.168.0.10              ##当访问ftp服务时没有加入用户认证为匿名访问
lftp 192.168.0.10 -u westos    ##本地用户访问,本地用户为服务器用户,访问路径为本地用家目录
登陆控制
anonymous_enable=YES|NO
家目录控制
anon_root=/westosdir
上传控制
anon_upload_enable=YES|NO

chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub           ##设定权限后,匿名用户可以进行上传

lftp 192.168.0.100
cd pub
put /etc/passwd

目录建立控制
anon_mkdir_write_enable=YES|NO   ##允许匿名用户建立目录

下载控制
anon_world_readable_only=NO      ##允许匿名用户下载不能读的文件

删除、重命令控制
anon_other_write_enable=YES|NO

匿名用户上传文件权限设定、匿名用户默认建立文件预留权限
anon_umask=xxx
anon_umask=022                   ##当设定chown_username之后上传文权限将不是用此参数设定

匿名用户上传文件的用户身份设定      ##匿名用户默认使用服务器中的ftp用户进行文件管理动作
chown_upload=YES
chown_username=lee               ##可用id  lee查询
chown_upload_mode=0644           ##0644为能够得到的权限值

登陆数量控制:                     ##默认情况下,不限制客户端登录数量
max_clients=2

上传速率控制
anon_max_rate=102400

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.本地用户的访问

登陆控制
useradd westos
useradd lee
echo lee | passwd --stdin westos
echo lee | passwd --stdin lee

lftp 192.168.0.10 -u westos

进入文件设置:vim /etc/vsftpd/vsftpd.conf

local_enable=NO|YES               ##本地用户能否登录
家目录控制:local_root=/software   ##默认登录到自己的家目录
写权限控制:write_enable=NO|YES    ##本地用户默认可写
上传文件权限控制:local_umask=077   ##默认umask为022;设置后,上传的文件umask为077

用户登陆控制
/etc/vsftpd/ftpusers              ##永久黑名单
/etc/vsftpd/user_list             ##默认黑名单
用户登陆白名单
userlist_deny=NO                  #设定/etc/vsftpd/user_list为白名单
                                  #不在名单中的用户不能登陆ftp
                                       
锁定用户到自己的家目录中            ##默认本地用户登录系统后可以自由浏览“/”目录
                                  ##锁定后,会限制用户浏览系统资源
chmod u-w /home/*                 ##不执行此命令,由于权限问题,可能会出错
chroot_local_user=YES

锁定用户到自己的家目录中的白名单
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
锁定用户到自己的家目录中的黑名单
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

6.虚拟用户访问

#1.建立虚拟用户过程###########
1.vim /etc/vsftpd/ftp_auth_file   #建立认证文件模板,westos1用户仅被ftp识别登录
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  ##account required:账户必须通过认证;
                                                             ##认证模式:pam_userdb.so;ftp_auth_file后的.db会自主识别
auth required pam_userdb.so db=/etc/vsftpd/ftp_auth_file     ##密码
4.vim /etc/vsftpd/vsftpd.conf                             ##文件最后几行更改
pam_service_name=westos                                   ##指定认证策略文件(/etc/pam.d/westos)
guest_enable=YES                                          ##指定虚拟用户功能开启
guest_username=ftp                                        ##指定虚拟用户在ftp服务器上的用户身份


#2.虚拟用户家目录的独立设定######
mkdir -p /ftpuserdir/westos{1..3}
touch /ftpuserdir/westos1/westos1file
touch /ftpuserdir/westos2/westos2file
touch /ftpuserdir/westos3/westos3file
vim /etc/vsftpd/vsftpd.conf            ##在最后几行添加
  local_root=/ftpuserdir/$USER
  user_sub_token=$USER                 ##声明$USER不是字符串,而是变量
systemctl restart vsftpd

7.用户配置独立

实验前把匿名用户的设置关闭

vim /etc/vsftpd/vsftpd.conf               ##在最后一行添加即可
user_config_dir=/etc/vsftpd/user_config   #在此目录中与用户名称相同的文件为用户配置文件

mkdir /etc/vsftpd/user_config

vim /etc/vsftpd/user_config/westos2
anon_upload_enable=YES

设定完成后westos2用户可以上传文件
westos1和westos3不行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值