Vsftpd服务的部署及优化

Vsftpd服务的部署及优化


实验环境:

  • server主机
    172.25.254.101
    selinux关闭
    dnf安装设定完成

  • client主机
    172.25.254.1
    selinux关闭
    dnf安装设定完成
    安装lftp #ftp协议文本浏览器


文件传输协议(File Transfer Protocol,FTP)

  • 是用于在网络上进行文件传输的一套标准协议
  • 它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层,
  • 使用 TCP 传输而不是 UDP
  • 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的
  • 而且是面向连接
  • 为数据传输提供可靠保证

安装lftp

【1】 首先配置好软件仓库
【2】安装

  • dnf search ftp
    搜索ftp服务

  • dnf install vsftpd.x86_64
    安装vsftpd

  • dnf install lftp.x86_64
    安装lftp

【3】getenforce 要求为disabled
selinux

【4】systemctl --now enable vsftpd #开启vsftpd服务
开启vsftpd服务

【5】firewall-cmd --permanent --add-service=ftp #在火墙中允许开启vsftp服务
在火墙中开启服务

【6】将主配置文件/etc/vsftpd/vsftpd.conf第十二行改为YES

  • vim /etc/vsftpd/vsftpd.conf
    第12行更改为:
    编辑主配置文件

【7】systemctl restart vsftpd #重启服务,让更改的主配置文件生效,即可使用ftp服务

【8】lftp 172.25.254.101-> ls #使用ftp服务,登录172.25.254.1,ls查看家目录
ftp使用


vsftpd基本信息

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

匿名用户访问控制

  • lftp 172.25.254.1 #当访问ftp服务时没有加入用户认证为匿名访问
  • lftp 172.25.254.1 -u westos #本地用户访问
    注意:每一次修改完主配置文件 /etc/vsftpd/vsftpd.conf 时,退出保存后,都需要systemctl restart vsftpd将服务重启。

【1】登录控制

anonymous_enable=YES|NO #是否允许匿名用户登录
更改主配置文件
允许匿名用户登录

  • 不允许:anonymous_enable=NO
    禁止
  • 允许:anonymous_enable=YES
    允许

【2】 家目录控制

anon_root=/westosdir#将家目录更改为指定的目录
更改家目录

  • 家目录要在默认发布目录里建立:
    默认发布目录中建立家目录
  • 测试
  • 在家目录中创建westosfile四个文件,看是否能在家目录中查看到:
    家目录修改成功

【3】上传控制

anon_upload_enable=YES|NO
上传控制

  • 修改家目录权限:
    chmod 775 /var/ftp/pub
    chgrp ftp /var/ftp/pub
    修改家目录权限
  • 测试:
    lftp 172.25.254.1
    cd pub
    put /etc/passwd
    上传控制

【4】目录建立控制

anon_mkdir_write_enable=YES|NO
目录建立控制

  • 需要切换到/pub目录下进行目录的创建:
    目录的创建

【5】下载控制

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

  • 测试:
    下载passwd文件成功

【6】删除重命令控制

anon_other_write_enable=YES|NO #对文件进行删除的控制,开启之后可以删除文件,未开启则不可对文件进行删除
删除
删除

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

  • 备注
    文件的权限为:777-umask值-111
    目录的权限为:777-umask值

在配置文件的40行写
anon_umask=xxx
anon_umask=022 #当设定chown_username之后上传文件权限将不适用此参数设定
anon_umask文件权限的更改

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

配置文件中的54行和55行
chown_upload=YES
chown_username=lxy
chown_upload_mode=0644
配置文件
创建用户

设定成功

【9】 登录数量控制:(默认建立链接的个数为50个)

  • 如果建立链接的个数过多,安全性会降低,同时会增加电脑的负荷,所以需要对登录数量进行控制,超出最大数量时,就无法登录ftp服务

在配置文件的57行写:
ftp服务器能够接受链接的最大数量的设置
max_clients=2
登录数量控制

  • 测试:可以看出超出两个的时候,就会无法登录ftp:
    在这里插入图片描述

【10】上传速率控制:

anon_max_rate=102400
表示匿名用户上传速率被控制在每秒钟100兆
上传速率

  • 测试:
    (1)截取一个较大的文件,在上传的时候需要较长的时间:
    大文件(2)上传速率控制在每秒钟100兆以内:
    上传速率控制

本地用户的访问

【1】登录控制

配置文件17行
local_enable=YES

useradd westos
useradd lxy
echo westos | passwd --stdin lxy

  • 登录方式:
    lftp 172.25.254.1 -u lxy
    本地用户登录方式

  • 系统默认本地用户可以上传文件

【2】 指定本地用户文件上传文件默认的保留权限

local_umask=077
默认保留权限

【3】 用户登录控制

  • 永久黑名单/etc/vsftpd/ftpusers
    永久黑

  • 临时黑名单:(默认是黑名单,但是经过设定可以成为白名单)/etc/vsftpd/user_list
    临时黑名单

  • 如果所有用户都在临时黑名单中,那么临时黑名单就成为了白名单,不在名单中的用户就不能呢个登录ftp
    136 userlist_enable=YES
    137 userlist_deny=NO

  • 在配置文件中添加这两条命令,则将临时黑名单变成白名单

  • 永久黑名单的优先级最高,只要在永久黑名单中,就无法登录

【4】 家目录控制

local_root=/westosdir

【5】写权限控制

write_enable=NO|YES

  • 锁定本地用户到自己的家目录中是用户不能浏览根目录
    不能浏览家目录

chmod u-w /home/*
chroot_local_user=YES
权限开启
开启权限浏览自己的根目录

【6】锁定用户到自己的家目录的白名单

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
锁定用户到自己的家目录的白名单编写配置文件j家目录访问

  • westos用户不能访问家目录:
    在这里插入图片描述

默认/etc/vsftpd/chroot_list是不存在的,是新建的文件

【7】 锁定用户到自己的家目录中的黑名单

chroot_local-user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list


虚拟用户访问

  • 建立虚拟用户过程
    【1】虚拟用户建立
    vim /etc/vsftpd/virt_users
    在里面书写(建立两个用户):
    user1
    123
    user2
    123
    虚拟用户建立

【2】db_load -T -t hash -f /etc/vsftpd/virt_users /etc/vsftpd/virt_users.db#加密认证文件
加密认证文件

【3】认证规则的建立
cd /etc/pam.d/
vim virt_users
其中写:
account required pam_userdb.so db=/etc/vsftpd/virt_users
auth required pam_userdb.so db=/etc/vsftpd/virt_users
认证规则建立

【4】配置文件中要修改:
pam_service_name=virt_users
userlist_enable=YES
guest_enable=YES
guest_username=ftp
配置文件

  • 重启服务后测试
    id user1 #该用户不存在
    lftp 172.25.254.1 -u user1输入密码后可以登录
    测试

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

【1】mkdir -p /ftphomedir/user{1,2}/pub
配置文件:
local_root=/ftphomedir/KaTeX parse error: Expected 'EOF', got '#' at position 6: USER #̲指定用户家目录 user_su…USER #告诉系统USER是变量不是字符串
配置文件

  • 测试:
    touch /ftphomedir/user1/user1file
    touch /ftphomedir/user2/user2file
    user1user2

用户配置独立

【1】设定所有虚拟用户的配置文件为==/etc/vsftpd/user_config==
**user_config_dir=/etc/vsftpd/user_config **
#在此目录中与用户名称相同的文件用户配置文件

【2】mkdir /etc/vsftpd/user_config
【3】vim /etc/vsftpd/user_config/user1
其中写:anon_upload_enable=YES
在这里插入图片描述
【4】chgrp ftp /ftphomedir/user{1,2}/pub
【5】chmod 775 /ftphomedir/user{1,2}/pub
#设定完成后user1可以上传文件,但是user2不能上传文件
改权限

  • 注意:每次编写完配置文件之后都需要将服务重新启动
    systemctl restart vsftpd
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值