zoukankan      html  css  js  c++  java
  • Cenos7+vsftpd3+nginx搭建

    0、总体要求:

    • ftp服务器只能本地用户访问。
    • 支持互联网数据传输,【即必须使用被动模式】。
    • ftp用户访问权限必须限定在/data/ftpDir目录下。
    • 登录ftp服务后,可以上传、下载文件,创建目录。
    • 通过Nginx以http的方式将/data/ftpDir目录下的静态文件对外提供服务,方便浏览器解析。

    一、目录配置:

    # 创建目录并为目录赋予写权限
    mkdir /data/ftpDir
    chmod -R 777 /data/ftpDir
    

    二、本地用户配置

    useradd ftpuser
    passwd ftpuser
    

    禁止ftpuser用户登录系统
    vim /etc/passwd
    ftpuser❌1001:1001::/home/ftpuser:/bin/bash # 找到用户ftpuser所在的行,将行末的【bash】改为【nologin】

    三、firewall配置:

    firewall-cmd --zone=public --add-port=21/tcp --permanent
    firewall-cmd --zone=public --add-port=3000-3099/tcp --permanent
    firewall-cmd --reload
    

    四、SeLinux配置:

    getsebool -a | grep ftp  # 查看ftp相关功能项
    --------------------------------------------
    ftpd_anon_write --> off
    ftpd_connect_all_unreserved --> off
    ftpd_connect_db --> off
    ftpd_full_access --> on
    ftpd_use_cifs --> off
    ftpd_use_fusefs --> off
    ftpd_use_nfs --> off
    ftpd_use_passive_mode --> on
    httpd_can_connect_ftp --> off
    httpd_enable_ftp_server --> off
    tftp_anon_write --> off
    tftp_home_dir --> on
    --------------------------
    # 打开必要的ftp功能项
    setsebool -P ftpd_full_access on
    setsebool -P tftp_home_dir on
    setsebool -P ftpd_use_passive_mode on
    

    五、vsftpd配置:

    1. 禁止匿名访问:
    anonymous_enable=NO  # 修改
    
    1. 启用本地用户访问:
    local_enable=YES # 默认已启用
    
    1. 指定访问目录,因为本地用户的默认访问目录是其home:
    # 创建目录并为目录赋予写权限
    mkdir /data/ftpDir
    chmod -R 777 /data/ftpDir
    
    local_roo=/data/ftpDir  # 手动新增
    
    1. 本地用户通过ftp登录系统后,默认允许访问OS的整个文件系统的,存在安全隐患,必须限制:
    chroot_local_user=YES # 打开注释
    allow_writeable_chroot=YES  # 手动添加
    
    1. 被动模式端口范围指定:
    port_enable=NO # 关闭主动模式
    pasv_enable=YES # 开启被动模式,才能通过互联网传输
    pasv_min_port=3000
    pasv_max_port=3099
    
    grep -v "^#" /etc/vsftpd/vsftpd.conf # 查看最终生效的全部配置
    
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    chroot_local_user=YES
    listen=NO
    listen_ipv6=YES
    
    pam_service_name=vsftpd
    userlist_enable=YES
    tcp_wrappers=YES
    
    port_enable=NO
    pasv_enable=YES
    local_root=/data/ftpDir
    allow_writeable_chroot=YES
    pasv_min_port=3000
    pasv_max_port=3099
    

    六、Nginx部分:

    很简单,待续....

  • 相关阅读:
    《Code Complete》第一部分纪要
    深入理解Java虚拟机-JVM内存管理的猜测
    成长经验系列之三-猜想-技术未来
    深入理解Java虚拟机-第三版-前言及第一章笔记
    float与double的精度问题
    成长经验系列之二-方法-成长分享
    工作可能用的一些网站(不定时更新)
    Walkthrough: Write your first client script
    Make a Field Required in a Dynamics CRM Dialog / PowerApps
    Refresh Power BI Dataset programmatically from Dynamics 365 CRM/PowerApps
  • 原文地址:https://www.cnblogs.com/JaxYoun/p/13083049.html
Copyright © 2011-2022 走看看