• FTP的魅力:构建高效的文件传输基础


    1 ftp介绍

    1.1 ftp服务器安装

    dnf install vsftpd-3.0.3-31.el8.x86_64 -y # 安装ftp服务
    systemctl enable --now vsftpd # 启动ftp服务
    systemctl stop --now firewalld.service # 关闭防火墙,允许客户端访问
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    anonymous_enable=YES #启动匿名用户访问功能
    
    • 1

    在这里插入图片描述

    1.2 客户端访问ftp

    dnf install lftp -y # 在Linux中可以安装此服务,在终端访问ftp
    ftp://ip        # 客户端访问ftp服务器
    
    • 1
    • 2

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

    1.3 ftp服务器配置文件

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

    2 ftp匿名用户访问控制

    在这里插入图片描述
    注意,关闭此功能需要重启系统

    2.1 匿名用户访问

    anonymous_enable=YES #启动匿名用户访问功能,默认情况不允许登录
    
    • 1

    2.2 访问家目录控制

    默认情况向访问的是/var/ftp

    anon_root=/westosdir # 增加此信息
    
    • 1

    在这里插入图片描述

    2.3 上传控制

    anon_upload_enable=YES|NO # 运行匿名用户上传文件
    chmod 775 /var/ftp/pub # 修改文件权限,使得匿名用户可以写入文件
    chgrp ftp /var/ftp/pub
    
    • 1
    • 2
    • 3

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

    2.4 建立目录

    anon_mkdir_write_enable=YES|NO
    
    • 1

    在这里插入图片描述
    报错
    出现以下问题是在设置权限时候,误将ftp根目录设置为775权限,实际上应在/var/ftp/pub中设置权限。
    在这里插入图片描述
    在这里插入图片描述

    2.5 下载权限

    anon_world_readable_only=NO ##匿名用户可以下载不能读的文件,需要添加
    
    • 1

    在这里插入图片描述

    2.6 删除权限

    anon_other_write_enable=YES|NO
    
    • 1

    在这里插入图片描述

    2.7 上传文件权限设定

    2.7.1 上传文件权限设定

    anon_umask=022 ##当设定chown_username之后上传文权限将不是用此参数设定
    
    • 1

    2.7.2 上传文件用户身份设定

    chown_upload=YES
    chown_username=lee
    chown_upload_mode=0644
    
    • 1
    • 2
    • 3

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

    2.8 控制登录用户数量

    max_clients=2 # 同时登录用户最大两个
    
    • 1

    在这里插入图片描述

    2.9 控制文件上传速度

    anon_max_rate=102400 # 100M
    
    • 1

    在这里插入图片描述

    3 ftp本地用户的访问

    3.1 登陆控制

    local_enable=NO|YES 	#默认本地用户可以登录
    
    • 1

    在这里插入图片描述

    在这里插入图片描述

    3.2 家目录控制

    local_root=/software # 增添内容
    
    • 1

    在这里插入图片描述

    3.3 写权限控制

    write_enable=NO|YES # 是否可以写入文件
    
    • 1

    在这里插入图片描述

    3.4 上传文件权限控制

    local_umask=077 # 控制上传文件的权限,预留权限
    
    • 1

    3.5 用户登陆控制

    /etc/vsftpd/ftpusers 永久黑名单用户

    在这里插入图片描述

    /etc/vsftpd/user_list 默认情况下该名单是临时黑名单,修改参数后为白名单用户。
    在这里插入图片描述

    在这里插入图片描述

    3.6 用户锁定自己家目录(安全隐患)

    默认情况下,用户可以访问根目录,这样对于系统是不安全的,需要进行限制。
    在这里插入图片描述

    3.6.1 锁定用户到自己的家目录中

    chroot_local_user=YES # 开启此功能后,所有用户被锁定在家目录中
    chmod u-w /home/*  # 删除写权限
    
    • 1
    • 2

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

    3.6.2 锁定用户到自己的家目录中的白名单

    默认用户是不可以访问根目录等位置,名单中的人可以访问

    chroot_local_user=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list # 白名单
    
    • 1
    • 2
    • 3

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

    3.6.3 锁定用户到自己的家目录中的黑名单

    默认用户是可以访问根目录等位置,名单中的人不可以访问

    chroot_local_user=NO
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list # 黑名单
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    4 ftp虚拟用户访问

    rpm -qc vsftpd # 显示程序的配置文件
    
    • 1

    在这里插入图片描述

    4.1 虚拟用户介绍

    对于ftp服务安全问题,应该只能让他访问相应的文件,而不是访问文件的同时也具备本地用户相应的资源,所以需要创建虚拟用户。

    4.1.1 虚拟用户认证文件

     /etc/vsftpd/xxx # 自定义虚拟用户文件,第一行用户名,下一行密码
     db_load -T -t hash -f ftp_auth_file ftp_auth_file.db ##加密认证文件
    
    • 1
    • 2

    在这里插入图片描述

    4.1.2 虚拟用户认证机制

    /etc/pam.d/xxx   # 自定义认证机制文件
    pam_service_name=xxx ##指定认证策略文件
    guest_enable=YES ##指定虚拟用户功能开启
    guest_username=ftp ##指定虚拟用户在ftp服务器上的用户身份
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

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

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

    在这里插入图片描述

    vim /etc/vsftpd/vsftpd.conf 
    local_root=/ftpfile/$USER
    user_sub_token=$USER
    
    • 1
    • 2
    • 3

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

    4.3 用户配置独立

    mkdir /etc/vsftpd/user_config # 虚拟用户独立的设置文件
    user_config_dir=/etc/vsftpd/user_config #在此目录中与用户名称相同的文件为用户配置文件,在主配置文件中添加此信息
    
    • 1
    • 2

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

  • 相关阅读:
    AI二次开发C#复合路径
    Stearic acid-PEG-FITC 硬脂酸-聚乙二醇-荧光素
    Prompt提示词工程构建指南
    你好,区块链操作系统上的完全去中心化国际象棋
    “可编程网络”的基础概念介绍
    爬虫 — Json 模块和 Post 请求
    JDK9到底为什么要将String的底层实现由char「」改成了byte「」
    【ACWing】1401. 围住奶牛
    【无标题】
    zabbix6.0安装教程(一):安装要求&获取方式
  • 原文地址:https://blog.csdn.net/weixin_43945111/article/details/133906357