zoukankan      html  css  js  c++  java
  • centos7_vsftpd-ssl/tls搭建及ftp加固

    2019-12-25-cqcet
    环境
    WEB-02 vsFTPd (ftp.nlsz.ru)
    FTP(File Transfer Protocol)文件传输协议
    登录ftp服务器上的有三类账户
    Real(ftp上拥有的账户)
    Guest(来宾账户)
    Anonymous(匿名账户)
    FTP服务器应仅接受显式SSL / TLS连接
    SSL / TLS证书保护vsftpd数据通信

    • vsftp的服务进程是vsftpd
    • vsftpd的配置文件是/etc/vsftpd/vsftpd.conf .
    • vsftpd的用户文件是/etc/vsftpd/ftpusers
    • vsftpd的用户文件是/etc/vsftpd/user_list

    测试vsftpd是否支持ssl
    在这里插入图片描述

    防火墙策略

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

    在这里插入图片描述

    生成证书和密钥

    openssl req -x509 -nodes -newkey rsa:2024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem -days 365
    
    • req 是x509证书签名的请求
    • x509 表示使用x509证书管理数据
    • newkey 指定证书密钥处理
    • rsa RSA密钥加密 我这里采用的是2024位私有密钥
    • keyout 指定密钥存储位置
    • out 指定证书存储位置
    • days 证书有效天数
      在这里插入图片描述

    配置vsftpd服务器

    /etc/vsftpd/vsftpd.conf
    根据需求添加以下

    ssl_enable=yes/no             	//是否启用 SSL,默认为no
    allow_anon_ssl=yes/no         	//是否允许匿名用户使用SSL,默认为no
    rsa_cert_file=/path/to/file     //rsa证书的位置
    dsa_cert_file=/path/to/file     //dsa证书的位置
    force_local_logins_ssl=yes/no   //非匿名用户登陆时是否加密,默认为yes
    force_local_data_ssl=yes/no    	//非匿名用户传输数据时是否加密,默认为yes
    force_anon_logins_ssl=yes/no    //匿名用户登录时是否加密,默认为no
    force_anon_data_ssl=yes/no     	//匿名用户数据传输时是否加密,默认为no
    ssl_sslv2=yes/no              	//是否激活sslv2加密,默认no
    ssl_sslv3=yes/no                //是否激活sslv3加密,默认no
    ssl_tlsv1=yes/no                //是否激活tls v1加密,默认yes
    ssl_ciphers=加密方法             //默认是DES-CBC3-SHA
    listen_port=21					//指定端口
    
    关于vsftpd服务器加固
    require_ssl_reuse =no
    ssl_ciphers = HIGH		
    

    在这里插入图片描述

    关闭selinux

    /etc/selinux/config
    在这里插入图片描述
    重启vsftpd服务器尝试登录会报一个错误

    530 Non-anonymous sessions must use encryption.
    命令行不提供加密服务,因此会产生错误。因此,为了安全地连接到服务器,我们需要一个支持SSL / TLS连接的FTP客户端在这里插入图片描述

    随便在网上下一个支持ssl传输的ftp客户端
    在这里插入图片描述

    保存证书即可
    在这里插入图片描述
    在这里插入图片描述

    关于vsftpd加固及优化

    anonymous_enable=no				//关闭匿名用户登录
    anon_upload_enable=no			//禁用匿名上传
    anon_mkdir_write_enable=no		//禁用匿名新建文件夹
    anon_other_write_enable=no  	//禁用匿名账号rwx权限
    local_enable=yes				//本地账户登录后无权删除修改文件
    chroot_list_enable=YES			//只允许本地用户在自己目录
    write_enable=no					//用户的写权限
    idle_session_timeout=60			//以秒为单位,1分钟无操作断开
    local_max_rate=50000			//以bite为单位,本地用户传输速率
    max_clients=200					//FTP最大连接数
    max_per_ip=1					//每个ip单线程下载
    xferlog_enable=YES				//开启日志文件
    listen=yes						//设置独立进程
    cmds_allowed=HELP,DIR,QUIT,!	//允许使用的ftp命令
    
    

    ftp的登录会被xferlog记录
    在这里插入图片描述
    在这里插入图片描述
    /var/ftp下创建一个.message
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    23种设计模式
    (C# 基础) 接口
    (C#) Handling and Raising Events
    (C# 基础) 位运算
    (C#) 线程之 AutoResetEvent, EventHandle.
    (C#) 线程基础
    div在固定高的文字垂直居中
    滚动置顶
    jQuery给同一个元素两个点击事件
    (置顶)js实现超过页面一屏后,点击图标滚动到页面顶部top
  • 原文地址:https://www.cnblogs.com/cqnswp/p/12568869.html
Copyright © 2011-2022 走看看