• vsftpd


      0.ftp  1.LocalUser  2.VirtualUser  3.ftps  FAQ  last  


    0.ftp

    数据传输通道的建立方式分为:主动模式(active)、被动模式(passive);

    • active模式的建立过程;
    1. 客户端发送自己的地址、端口给服务端;
    2. 客户端请求服务端传输数据;
    3. 服务端发起数据传输连接;
    4. 数据传输通道建立。
    • passive模式的建立过程;
    1. 客户端要求服务端进入被动传输模式;
    2. 服务端提供给客户端自己的地址、端口;
    3. 客户端发起数据传输请求;
    4. 数据传输通道建立。

    1.系统用户

    1.1.添加用户

        添加系统用户,禁止登录系统,设定用户目录权限。

    [root@tri work]# useradd -d /data/vsftpd -s /sbin/nologin pub
    [root@tri work]# passwd pub
    [root@tri work]# chmod 500 /data/vsftpd
    [root@tri work]# mkdir /data/vsftpd/upload
    [root@tri work]# chown -R pub:pub /data/vsftpd
    [root@tri work]# rm /data/vsftpd/.*
    View Code

    1.2.编辑vsftpd.conf

        编辑配置,设定白名单。

    [root@tri work]# grep -v "^#" /etc/vsftpd/vsftpd.conf
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    #default is YES understand. passive mode
    pasv_enable=YES
    pasv_min_port=51000
    pasv_max_port=52160
    #pasv_address=0.0.0.0
    connect_from_port_20=NO
    xferlog_std_format=YES
    chroot_local_user=YES
    listen=YES
    listen_ipv6=NO
    #listen_port=21
    #listen_address=0.0.0.0
    
    pam_service_name=vsftpd
    userlist_enable=YES
    userlist_deny=NO
    tcp_wrappers=YES
    [root@tri work]# cat /etc/vsftpd/user_list
    # vsftpd userlist
    # If userlist_deny=NO, only allow users in this file
    # If userlist_deny=YES (default), never allow users in this file, and
    # do not even prompt for a password.
    # Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
    # for users that are denied.
    pub
    View Code

    2.VirtualUser

    • 虚拟用户访问ftp;
    1. vsftpd.conf,配置vsftpd;
      # Standalone mode
      listen=YES
      listen_address=0.0.0.0
      listen_port=10021
      max_clients=2000
      max_per_ip=50
      # Access rights
      anonymous_enable=NO
      local_enable=YES
      write_enable=NO
      anon_upload_enable=NO
      anon_mkdir_write_enable=NO
      anon_other_write_enable=NO
      # Security
      chroot_local_user=YES
      guest_enable=YES
      guest_username=virtual
      anon_world_readable_only=YES
      connect_from_port_20=YES
      hide_ids=YES
      pasv_min_port=30000
      pasv_max_port=39999
      pam_service_name=vsftpd
      # Features
      xferlog_enable=YES
      ls_recurse_enable=NO
      ascii_download_enable=NO
      async_abor_enable=YES
      # Performance
      idle_session_timeout=120
      data_connection_timeout=300
      accept_timeout=60
      connect_timeout=60
      anon_max_rate=1048576000
      View Code

      服务独立启动,监听10021端口;
      拒绝匿名用户,使用非匿名用户;
      启用虚拟用户,指定文件系统位置;
      关闭修改功能;

    2. login.db,创建虚拟用户信息库;
      db_load -T -t hash -f login.txt login.db
      View Code

      创建虚拟用户;

      useradd -d /opt/ftpsite -s /sbin/nologin virtual
      chmod 500 /opt/ftpsite
      View Code
    3. /etc/pam.d/vsftpd
      auth required /usr/lib64/security/pam_userdb.so db=/etc/vsftpd/login
      account required /usr/lib64/security/pam_userdb.so db=/etc/vsftpd/login
      View Code
    4. 此用户仅仅可以完成下载功能;
    • 多用户配置
    1. 在配置配件添加配置选项:
      user_config_dir=/etc/vsftpd/conf.d
      View Code
    2. 读取权限
      anon_world_readable_only=NO
      View Code
    3. 上传权限
      write_enable=YES
      anon_upload_enable=YES
      anon_world_readable_only=NO
      anon_mkdir_write_enable=YES
      View Code
    4. 删除权限
      write_enable=YES
      anon_upload_enable=YES
      anon_world_readable_only=NO
      anon_mkdir_write_enable=YES
      anon_other_write_enable=YES
      View Code

    3.ftps


    [root@tri work]# vi /etc/vsftpd/vsftpd.conf
    下边三,默认为NO
    ssl_enable=YES
    ssl_tlsv=YES
    ssl_sslv3=YES
    下边俩,默认就是YES
    force_local_data_ssl=YES
    force_local_logins_ssl=YES
    下边壹,为默认值
    rsa_cert_file=/usr/share/ssl/certs/vsftpd.pem
    默认为none,默认时认为私钥在上边文件中
    rsa_private_key_file=/etc/vsftpd/ssl/vsftpdKey.pem
    View Code

    FAQ

    1.530

      没有指定验证模块“pam_service_name=vsftpd”,

    [root@payqa1 work]# ftp localhost
    Trying 127.0.0.1...
    Connected to localhost (127.0.0.1).
    220 (vsFTPd 3.0.2)
    Name (localhost:root): pub
    331 Please specify the password.
    Password:
    530 Login incorrect.
    Login failed.
    ftp>

    2.500 oops

      ftp的登用用了系统用户,但是该用户又放在了其他用户目录下。就一直这么报错

    [root@localhost ~]# ftp localhost
    Trying ::1...
    ftp: connect to address ::1拒绝连接
    Trying 127.0.0.1...
    Connected to localhost (127.0.0.1).
    220 (vsFTPd 2.2.2)
    Name (localhost:root): pub
    331 Please specify the password.
    Password:
    500 OOPS: cannot change directory:/home/work/manager_file
    Login failed.
    ftp>
    一切代码都是为了生活,一切生活都是调剂
  • 相关阅读:
    JID 2.0 RC4 发布,高性能的 Java 序列化库
    FBReaderJ 1.6.3 发布,Android 电子书阅读器
    Arquillian 1.0.3.Final 发布,单元测试框架
    JavaScript 的宏扩展 Sweet.js
    Hypertable 0.9.6.5 发布,分布式数据库
    JRuby 1.7.0 发布,默认使用 Ruby 1.9 模式
    httppp 1.4.0 发布,HTTP响应时间监控
    Redis 2.6.0 正式版发布,高性能K/V服务器
    OfficeFloor 2.5.0 发布,IoC 框架
    XWiki 4.3 首个里程碑发布
  • 原文地址:https://www.cnblogs.com/argor/p/7910869.html
Copyright © 2020-2023  润新知