zoukankan      html  css  js  c++  java
  • FTP服务

    1、FTP服务器是按照FTP协议在互联网上提供文件存储和访问服务的主机,FTP客户端则是向服务器发送连接请求,以建立数据传输链路的主机。FTP协议有下面两种工作模式。
    主动模式:FTP服务器主动向客户端发起连接请求
    被动模式:FTP服务器等待客户端发起连接请求(FTP的默认工作模式)

    2、vsftpd服务程序
    vsftpd作为更加安全的文件传输的服务程序,允许用户以三种认证模式登录到FTP服务器上:
    1>匿名开放模式:是一种最不安全的认证模式,任何人都可以无需密码验证而直接登录到FTP服务器;
    2>本地用户模式:是通过Linux系统本地的账户密码信息进行认证的模式,相较于匿名开放模式更安全,而且配置起来也很简单。
    3>虚拟用户模式:是这三种模式中最安全的一种认证模式,它需要为FTP服务单独建立用户数据库文件,虚拟出用来进行口令验证的账户信息,而这些账户信息在服务器系统中实际上是不存在的,仅供FTP服务程序进行认证使用。这样,即使黑客破解了账户信息也无法登录服务器,从而有效降低了破坏范围和影响。

    3、FTP部署
      1>前期关闭防火墙,禁用selinux
      2>安装

    yum install vsftpd -y

      3>vsftpd服务程序的主配置文件(/etc/vsftpd/vsftpd.conf)
        vsftpd服务程序常用的参数以及作用如下:

    参数                                作用
    anonymous_enable=[YES|NO]          是否允许匿名用户访问
    anon_umask=022                     匿名用户上传文件的umask值
    anon_upload_enable=[YES|NO]        是否允许匿名用户上传文件
    anon_mkdir_write_enable=[YES|NO]   是否允许匿名用户创建目录
    anon_other_write_enable=[YES|NO]   是否开放匿名用户的其他写入权限(包括重命名、删除等操作权限)
    local_enable=[YES|NO]              是否允许本地用户登录FTP
    local_umask=022                    本地用户上传文件的umask值
    listen=[YES|NO]                    是否以独立运行的方式监听服务
    listen_address=IP地址               设置要监听的IP地址
    listen_port=21                     设置FTP服务的监听端口
    download_enable=[YES|NO]           是否允许下载文件
    userlist_enable=[YES|NO]           设置用户列表为“允许”还是“禁止”操作
    userlist_deny=[YES|NO]             设置用户列表为“允许”还是“禁止”操作
    max_clients=0                      最大客户端连接数,0为不限制
    max_per_ip=0                       同一IP地址的最大连接数,0为不限制
    dirmessage_enable=[YES|NO]         欢迎语设置(.message)
    message_file=.message              设置目录消息文件,可将要显示的信息写入该文件。默认值为.message
    ascii_upload_enable=YES/NO(NO)    设置是否启用ASCII 模式上传数据,默认值为NO
    ascii_download_enable=YES/NO(NO)  设置是否启用ASCII 模式下载数据,默认值为NO
    tcp_wrappers=YES/NO                设置vsftpd是否与tcp wrapper相结合来进行主机的访问控制。默认值为YES。如果启用,则vsftpd服务器会检查/etc/hosts.allow 和/etc/hosts.deny 中的设置,来决定请求连接的主机,是否允许访问该FTP服务器。这两个文件可以起到简易的防火墙功能。
        比如:若要仅允许192.168.0.1192.168.0.254的用户可以连接FTP服务器,则在/etc/hosts.allow文件中添加以下内容:
        vsftpd:192.168.0. :allow
        all:all :deny
    accept_timeout=60                  设置建立FTP连接的超时时间,单位为秒。默认值为60。
    connect_timeout=60                 PORT 方式下建立数据连接的超时时间,单位为秒。默认值为60。
    data_connection_timeout=120        设置建立FTP数据连接的超时时间,单位为秒。默认值为120。
    idle_session_timeout=300           设置多长时间不对FTP服务器进行任何操作,则断开该FTP连接,单位为秒。默认值为300 。
    xferlog_enable= YES/NO(YES)       是否启用上传/下载日志记录。如果启用,则上传与下载的信息将被完整纪录在xferlog_file 所定义的档案中。预设为开启。
    xferlog_file=/var/log/vsftpd.log   设置日志文件名和路径,默认值为/var/log/vsftpd.log。
    xferlog_std_format=YES/NO(NO)     如果启用,则日志文件将会写成xferlog的标准格式,如同wu-ftpd 一般。默认值为关闭。
    log_ftp_protocol=YES|NO(NO)       如果启用此选项,所有的FTP请求和响应都会被记录到日志中,默认日志文件在/var/log/vsftpd.log。启用此选项时,xferlog_std_format不能被激活。这个选项有助于调试。默认值为NO。
    pam_service_name=vsftpd            设置PAM使用的名称,默认值为/etc/pam.d/vsftpd。
    guest_enable= YES/NO(NO)          启用虚拟用户。默认值为NO。
    guest_username=ftp                 这里用来映射虚拟用户。默认值为ftp。
    virtual_use_local_privs=YES/NO     当该参数激活(YES)时,虚拟用户使用与本地用户相同的权限。当此参数关闭(NO)时,虚拟用户使用与匿名用户相同的权限。默认情况下此参数是关闭的(NO)。

      4>启动vsftpd

    systemctl start vsftpd
    systemctl enable vsftpd

      5>可以向匿名用户开放的权限参数以及作用

    参数                                   作用
    anonymous_enable=YES                  允许匿名访问模式
    anon_umask=022                        匿名用户上传文件的umask值
    anon_upload_enable=YES                允许匿名用户上传文件
    anon_mkdir_write_enable=YES           允许匿名用户创建目录
    anon_other_write_enable=YES           允许匿名用户修改目录名称或删除目录

      配置匿名访问方式:

    [root@ftp-server ~]# vim /etc/vsftpd/vsftpd.conf
    anonymous_enable=YES
    anon_umask=022
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    listen=NO
    listen_ipv6=YES
    pam_service_name=vsftpd
    userlist_enable=YES
    tcp_wrappers=YES
    [root@ftp-server ~]# chmod o+x /var/ftp/pub/ -R
    [root@ftp-server ~]#ll -d /var/ftp/pub/
    drwxr-xrwx. 2 root root 16 3月  14 19:44 /var/ftp/pub/
    [root@ftp-server ~]# systemctl restart vsftpd
  • 相关阅读:
    拼接表达式树的原理
    ql Server 2012完全卸载方法
    jquery tmpl 详解
    Entity Framework(EF) Code First将实体中的string属性映射成text类型的几种方式
    Entity Framework 数据生成选项DatabaseGenerated
    Entity Framework 复杂类型
    EF Code First 学习笔记:约定配置
    比特币转账流程
    mmap 的理解
    copy_to_user,copy_from_user,get_user,put_user函数比较
  • 原文地址:https://www.cnblogs.com/zyybky/p/12494314.html
Copyright © 2011-2022 走看看