Vsftpd 服务的部署及优化

  • 1 实验环境
  • 2 ftp介绍
  • 3 vsftpd安装与启用
  • 4 vsftpd基本信息
  • 5 用户访问控制
    • 5.1 匿名用户访问
    • 5.2 本地用户访问
  • 6 虚拟用户访问
    • 6.1 建立虚拟用户
    • 6.2 虚拟用户家目录的独立设定
    • 6.3 用户配置独立

1 实验环境

1)server主机:

  • 主机名:ftp_server
  • ip:172.25.254.136
  • selinux:关闭
  • 火墙开启
  • dnf安装设定完成

2)client主机:

  • 主机名:localhost
  • ip:172.25.254.36
  • selinux:关闭
  • dnf安装设定完成
  • 安装lftp(协议文本浏览器)

2 ftp介绍

ftp : file transfer proto
互联网中最老牌的文件传输协议;ftp允许用户以文件操作的方式与另一台主机相互通信。实际上,用户并不真正登陆到自己想要存取的计算机上而成为完全用户,可用ftp访问远程资源,实现用户往返传输文件,即使双方计算机可能配置不同的操作系统和文件存储方式。其主要目标就是提高文件共享性

3 vsftpd安装与启用

1)在服务端输入 dnf install vsftpd.x86_64 lftp.x86_64 -y安装ftp服务软件和本地访问软件 :

2)在客户端输入 dnf install lftp -y 只安装访问软件:

3)确保selinux是关闭状态:

4)开启vsftpd,添加火墙策略:

5)服务配置好后,此时默认是不允许匿名用户访问的,需要编辑/etc/vsftpd/vsftpd.conf主配置文件,在12行处允许匿名用户访问改为yes,重启服务:

6)此时使用lftp ip或在浏览器输入ftp://ip,均可访问成功:

注意:使用lftp://ip,然后输入ls能列出资源,才算登陆成功,quit或exit可退出ftp,默认能够登陆ftp的最大个数为50,登陆是指重新开一个shell

4 vsftpd基本信息

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

5 用户访问控制

用户访问分为匿名用户访问和本地用户访问。当访问时输入“lftp 172.25.254.136”,没有加入用户认证,表明是匿名用户,默认访问的是发布目录;访问时,输入“lftp 172.25.254.136 -u westos”,写了用户表示本地用户访问,默认访问的是用户家目录。

5.1 匿名用户访问

1)登陆控制,anonymous_enable=YES|NO,表示是否允许匿名用户使用ftp登陆,在前面已经设定过,也看到了效果
2)家目录控制,anon_root=/westos,表示更改匿名用户的默认发布目录为/westos,更改前要确保该目录存在,更改完成后重启服务,再重新登陆就会看到/westos目录下的内容,表示默认发布目录修改成功:

3)上传控制,anon_upload_enable=YES|NO ,表示是否允许匿名用户上传文件。未修改该参数就上传文件会报错550,表示程序本身拒绝;该参数在修改为yes后,去上传文件会报553的错误信息,表示文件系统没有权限。所以要先修改权限,输入“chgrp ftp /var/ftp/pub”和“chmod 775 /var/ftp/pub”命令,表示修改pub目录的组为ftp,发布目录下pub目录的权限为775。开放权限后,再去上传文件即可成功。注意此处不可直接更改默认发布目录的权限,只能去修改它下面的子目录的权限:

4)目录建立控制,anon_mkdir_write_enable=YES|NO ,表示是否允许匿名用户建立目录。同样的在为修改该参数前直接建立目录,会报错550,修改该参数为yes后,重启服务即可建立目录:

5)下载控制,anon_world_readable_only=NO,表示匿名用户可以下载不能读的文件,默认匿名用户不允许下载文件,修改完成后重启服务:

6)删除重命名控制,anon_other_write_enable=YES|NO ,表示匿名用户是否可以对目录中的内容删除和重命名,默认是不允许的,修改完成后重启服务:

7)匿名用户上传文件权限设定,anon_umask=022 ,表示上传文件的预留权限为 022 ,也就是实际的权限是644;默认情况下匿名用户上传文件时的预留权限是077,也就是实际的权限是600。注意当设定了chown_username之后上传文件权限将不再是使用此参数设定:

8)匿名用户上传文件的用户身份设定,修改
“chown_upload=YES”和“chown_username=liu”参数,表示用户上传文件时使用liu这个用户身份,默认情况下匿名用户上传文件是以 ftp 用户身份上传:

由于设定了chown_username参数,所以前面的anon_umask=022参数便失效,可以看到上传文件的预留权限仍然为 077,此时可以指定用户上传文件时的权限chown_upload_mode=0644,再次上传文件时,所上传的文件权限就会改变:

9)登陆数量控制,max_clients=2表示该服务能连接的最大数量为2。默认是没有登陆数量限制的,为了防止因登陆人数过多而造成服务器崩溃,可以对该服务的登陆进行数量控制,修改完成后重启服务 :

当登陆人数超过两个时,会显示如下信息,注意,可以使用同一个主机,开启多个shell,分别登陆,超过两个时,就会显示以下信息:

10)上传速率控制,anon_max_rate=102400表示将匿名用户上传速率控制在100k左右,默认匿名用户上传文件是没有速率控制的,这会造成系统调用最大的资源去完成这个任务。为了防止资源过渡浪费,可以对匿名用户上传速率进行限制,修改完该参数后,上传速率会慢慢下降到100左右。就像百度网盘的下载速率控制一样,修改完成后重启服务:
截取一个文件,再没有限制时上传,速率很快,达到M/s:

设置参数:

上传速率逐渐减小,知道到达100k/s左右:

5.2 本地用户访问

1)输入“lftp 192.168.122.200 -u westos”“命令,使用本地用户登录,本地用户登录时默认登录的是本地用户的家目录:

2)登录控制,local_enbale=YES|NO,表示是否允许本地用户访问,默认本地用户是可以登录的,修改配置文件使得本地用户登录限制:

3)家目录控制,local_root=/westosdir ,默认的本地用户进入后,看到的是/home/westos家目录中的内容,修改该参数后,会进入修改后的目录,该目录必须存在:

4)写权限控制,write_enable=YES|NO,表示本地用户是否可写,默认情况下本地用户是可以上传文件的,修改该参数可以禁止该服务对本地用户提供写权限,修改后匿名用户也将没有写权限:

5)上传文件权限控制,local_umask=022,022是默预留权限,即实际上文件的权限是644,可修改预留权限为077,此时实际上文件权限是600:

6)用户登陆控制,本地用户默认可以访问 ftp 服务,可以限制本地用户的登录权限,可以设置黑白名单:

  • vim /etc/vsftpd/ftpusers,表示永久黑名单,优先级最高:

  • vim /etc/vsftpd/user_list ,默认黑名单或临时黑名单:

当在配置文件中设置了userlist_deny=NO之后,此时默认黑名单变成白名单,但永久黑还是永久黑,即使他的用户名在白名单中也无法登陆,因为永久黑的优先级更高 :

7)锁定用户到自己的家目录中,输入“chmod u-w /home/*”命令,然后设置参数chroot_local_user=YES,默认情况下本地用户登陆后可以访问根目录,但是这样会使得系统的安全性降低,所以要锁定用户,锁定后再去进入根目录时,会显示家目录里面的内容。但此是不会报错,这是因为限制了家目录写的权限,此时登录便不会报错:

  • 没有设置该参数前,可以进入根:
  • 设置该参数及家目录写权限限制后:

8)上面所示的锁定用户到自己家目录默认会锁定所有本地用户,造成影响,所以可以设定锁定用户到自己家目录中的黑白名单
锁定用户到自己家目录中的黑名单,
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
需要先建立 /etc/vsftpd/chroot_list文件,然后编辑该文件 vim /etc/vsftpd/chroot_list,将黑名单用户加入,加入后该用户无法访问自己的根,但其他未在该名单中的用户可访问根:

9)锁定用户到自己家目录中的白名单,
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
若/etc/vsftpd/chroot_list文件存在,则编辑 vim /etc/vsftpd/chroot_list文件,将用户白名单用户加入该文件,加入后该用户可以访问自己的根,但其他未在该名单中的用户不可访问根,若该文件不存在,则建立后,再进行下面的操作:

6 虚拟用户访问

登录 ftp 服务时,匿名用户管理起来费时费力,也不能全都建立为本地用户,为了解决这些文件,可以建立虚拟用户。

6.1 建立虚拟用户

1)在/etc/vsftpd目录下建立认证文件模板,文件名称自定义,文件中的内为用户名和密码用户名密码各一行,中间不能有空格,否则会被识别为字符:

2)加密认证文件,其中-T表示加秘,-t表示加密方式,-f 表示指定转换文件,加密完后,该目录下会有认证文件和.db加密认证文件:

3)书写认证规则,必须在/etc/pam.d/目录下,文件名自定义。该文件的书写格式如下图所示,其内容分别表示

  • 账号 验证方式 认证插件 验证对比文件
  • 密码 验证方式 验证插件 验证对比文件

db=/etc/vsftpd/virt_users表示从加密认证文件中对比,该文件后面不需要加.db,因为默认后面是.db,若加就表示db=/etc/vsftpd/virt_users.db.db,是错误的:

4)编辑/etc/vsftpd/vsftpd.conf文件

  • pam_service_name=virt_users ,表示ftp所读取的认证策略文件
  • guest_enable=YES ,表示虚拟用户功能开启
  • guest_username=ftp,表示虚拟用户的身份

5)设置完后虚拟用户访问的是默认的发布目录:

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

1)虚拟用户访问目录是默认的发布目录,给每个虚拟用户建立各自的发布目录,在每个用户的发布目录中建立不同的文件,便于观察实验效果:

2)编辑主配置文件

  • local_root=/ftpuserdir/$USER,指定虚拟用户家目录
  • user_sub_token=$ USER,声明$USER是变量而不是字符串

3)此时虚拟用户就可以登陆自己的发布目录了,但是虚拟用户对自己的目录和/pub目录没有权限的,设置目录权限后,就可以拥有和匿名用户一样的权限也就是说虚拟用户属于特殊的匿名用户,匿名用户有的权限,虚拟用户也有:

有目录权限后,虚拟用户就可以拥有和匿名用户一样的权限:

6.3 用户配置独立

1)注意做完上面的配置后,虚拟用户会拥有和匿名用户一样的权限,所以此时需要注释对匿名用户的权限:

2)注释后可以看到虚拟用户的权限就被限制了,那么同时虚拟用户相应的权限也会被限制:

3)如果想使某个虚拟用户有某种权限,可以在 /etc/vsftpd/ 目录中新建一个目录用于存放单个用户的配置文件。编辑主配置文件,在里面添加内容如下,表示设置所有虚拟用户的配置目录:

设置完后此时没有配置过用户的配置文件,虚拟用户仍然没有权限:

4)可以在新建的用户配置目录下建立单独的用户配置文件,该文件名同用户名一致,在该文件中单独输入某个用户所要拥有的权限:

此时未经设定的用户就不会有该权限,这样就使得用户权限独立起来:

Vsftpd 服务的部署及优化相关推荐

  1. Linux系统工程师--(1)Vsftpd服务的部署及优化与linux中内核级加强型火墙的管理

    Linux系统工程师 实验所用系统为Redhat-rhel8.2. 目录 Linux系统工程师 Linux的系统工程师--Vsftpd服务的部署及优化 一.ftp介绍 二.vsftpd安装及启用 三. ...

  2. Vsftpd服务的部署及优化

    ######################### #    实验环境    # ######################### # #server主机: #    westos_node1 #  ...

  3. Linux中的vsftpd服务的部署及优化

    1.vsftpd安装及启用 需要先配置好主机网络 挂载镜像并搭建本地软件仓库: 安装vsftp软件包: 开启vsftp服务并关闭防火墙: 关闭selinux: 测试安装发布: 安装lftp服务(ftp ...

  4. Linux下vsftpd服务的部署

    文章目录 ftp介绍 vsftpd安装 vsftpd基本信息 实验环境说明 匿名用户访问控制 匿名用户登录控制 匿名用户家目录控制 匿名用户上传控制 匿名用户下载控制 匿名用户目录建立控制 匿名用户下 ...

  5. Linux常用服务部署与优化

    3,1nfs部署和优化-1 NFS == network file  system 假如有三台机器A, B, C,它们需要访问同一个目录,目录中都是图片,传统的做法是把这些图片分别放到A, B, C. ...

  6. Linux中samba共享服务的部署及安全优化详解

    samba共享服务的部署及安全优化 文章目录 samba共享服务的部署及安全优化 1.samba服务简介 2.samba基本信息 3.samba的安装与启用 a)windows下文件系统的共享 b)L ...

  7. 目标检测推理部署:优化和部署

    目标检测推理部署:优化和部署 本文简要介绍了端对端推理管道的优化技术和部署. 将在以下三个方面研究推理优化过程:硬件优化,软件优化和模型优化.推理优化的关键指标如下: • 吞吐量(未推理图像/秒) • ...

  8. [转] 大规模服务设计部署经验谈

    大规模服务设计部署经验谈 本文中提出的最佳实践,来自于作者多年大规模服务设计和部署的经验,为设计.开发对运营友好的服务提供了一系列良好的解决方案. ■ 文/James Hamilton 译/赖翥翔 1 ...

  9. nuxt服务端php,nuxt服务端部署指南

    nuxt是一款基于vue的服务端渲染框架,语法和vue基本保持一致,不过生命周期与vue不同,部署方式也和vue大相径庭,vue项目部署是spa的静态页面,只需build出来静态页面,但是nuxt是需 ...

最新文章

  1. android 控件id为0,Android Studio错误:(3,0)未找到ID为“com.android.application”的插件...
  2. xpath以某个字符开始_XPATH技术补充-实例
  3. python-索引1909
  4. iOS用户体验之-导航之道
  5. 低配置的电脑也可以装tensorflow2
  6. vj p1025题解
  7. JNI编程中数据类型转换的方法
  8. 关于RCP引用jar包的几个问题。
  9. get请求中传json参数报400的错误_react的数据请求
  10. java 工作流框架_java工作流是什么?哪些工作流框架比较好?
  11. 上海大华条码称代码_上海大华计价电子秤 使用软件 TM-H 大华条码称设置15KG
  12. 轻量级协作机器人到仿人机器人的关键技术演进及生态共建
  13. python爬虫入门之爬取英雄联盟官网的所有英雄数据
  14. 电子工程师的自我修养 - 恒流源电路分析
  15. 2021年中国消费金融行业贷款情况及发展趋势分析:互联网消费金融放款规模达到20.2万亿[图]
  16. 计算机发展简史的ppt教程,计算机发展简史PPT.ppt
  17. 使用REPT功能设置行高
  18. 虚拟机里运行的windows10突然变卡
  19. 淘宝自定义API接口管理
  20. 超级马里奥代码_任天堂源代码泄露,引出《超级马里奥64》隐藏24年的角色

热门文章

  1. 孙海汐组专访:去伪存真的过程一定不是一帆风顺的
  2. Wiley-中国科学院文献情报中心开放科学联合研讨会第一讲:开放科学全球和中国发展态势...
  3. Nature子刊:整合宏基因组、代谢组和表型分析的的计算框架
  4. “我付了钱,为何要说谢谢?”
  5. Nature Reviews:全新的益生元定义和范围
  6. R语言使用比例-位置图(Scale-Location Plot)和Breusch-Pagan检验验证回归模型残差的同方差性(方差齐性)
  7. R构建多项式回归模型(Polynomial Regression)
  8. 多项式回归、分位数回归(Quantile Regression)、保序回归(Isotonic Regression)、RANSAC回归、核岭回归、基准回归模型(baseline)
  9. AUC是什么?AUC的的意义是什么?AUC的判断分类器优劣标准是什么?AUC如何计算?
  10. mysql简拼_mysql实现汉字换拼音,及汉字转简拼