zoukankan      html  css  js  c++  java
  • VSFTP 配置详解,附带例子

    VSFTP服务

    一、FTP简介与原理

    FTP简介

    1. FTP 为文件传输协议 ,用于Internet 上的控制文件的双向传输

    模式

    1. 主动模式 : 服务端 从20端口 主动向客户端发起连接

    在这里插入图片描述

    1. 被动模式 :服务端在指定范围内某个端口被动等待客户端连接

    在这里插入图片描述

    端口

    1. 控制连接 : TCP 21 ,用户发送FTP命令信息
    2. 数据连接 :TCP 20 , 用户上传 ,下载数据

    二、FTP相关文件

    常见的FTP服务器程序

    • IIS 、Serv-U
    • wu-ftpd 、 Proftpd
    • vsftpd

    安装

    vsftpd

    相关文件

    1. 主配置文件
      1. /etc/vsftpd/vsftpd.conf
    2. 用户控制列表文件
      1. /etc/vsftpd/ftpusers
      2. /etc/vsftpd/user_list

    FTP相关用户

    1. 匿名
      1. anonymous 或ftp
    2. 本地用户
      1. 使用Linux系统用户和密码
    3. 虚拟用户
      1. 管理员自定义的模拟用户

    注意事项

    1. 关闭防火墙(或者放行关于这个服务)
    2. 关闭SELinux

    三、配置文件详解

    默认配置文件

    1. anonymous_enable = YES
      1. 容许匿名用户登陆
    2. local_enable = YES
      1. 容许本地用户登录
    3. write_enable=YES
      1. 容许本地用户上传
    4. local_umask =022
      1. 本地用户上传umask值
    5. dirmessage_enable =YES
      1. 用户进入目录,显示.message文件中的信息
    6. message_file=.message
      1. 指定信息文件
    7. xferlog_enabel = YES
      1. 激活记录日志
    8. connect_from_port_20 = YES
      1. 主动模式数据传输接口
    9. xferlog_std_format=YES
      1. 使用标准的ftp日志格式
    10. ftpd_banner
      1. 登录欢迎信息
    11. listen=YES
      1. 容许被监听
    12. pam_service_name= vsftpd
      1. 设置PAM 外挂模块提供的认证服务所使用的配置文件名,即/etc/pam.d/vsftpd 文件
    13. userlist_enable = YES
      1. 用户登录限制
    14. tcp_wrappers=YES
      1. 使用使用tcp_wrappers作为主机访问控制方式

    常用全局配置

    1. listen_address=192.168.1.1
      1. 设置监听的IP地址
    2. list_port=21
      1. 设置监听FTP服务的端口号
    3. download_enable = YES
      1. 是否容许下载文件
    4. max_clients=0
      1. 限制并发客户端连接数
    5. max_per_ip = 0
      1. 限制同一IP 地址的并发连接数

    被动模式

    1. pasv_enable =YES
      1. 开启被动模式
    2. pasv_min_port=24500
      1. 被动模式最小端口
    3. pasv_max_port=24600
      1. 被动模式最大端口

    常用安全配置

    1. accept_timeout = 60
      1. 被动模式,连接超时时间
    2. connect_timeout = 60
      1. 主动模式,连接超时时间
    3. idle_session_timeout=600
      1. 600秒没有任何操作就端口连接
    4. data_connection_timeout=500
      1. 资料传输时,超过500秒没有完成,就断开传输

    四、客户端使用

    1. 命令行连接

      1. ftp IP

        help 获取帮助
        get 下载
        mget 下载一批文件
        put 上传
        mput 上传一批文件
        exit 退出
    2. winSCP

    3. win直接从使用ftp://IP

    五、匿名用户访问

    基本配置

    1. anonmous_enable
      1. 容许匿名用户访问
    2. anon_upload_enable
      1. 容许匿名用户上传
    3. anon_mkdir_write_enable=YES
      1. 容许匿名用户建立目录
    4. anon_umask
      1. 设置上传的默认文件权限(默认600)

    注意事项

    1. 默认上传目录 : /var/ftp/pub
    2. 如果容许上传,需要服务权限和系统目录同时容许
    3. Vsftpd 服务的伪用户是ftp

    六、本地用户访问

    1.本地用户基本设置

    1. 本地用户基本配置

      local_enable = YES 容许本地用户登录
      write_enable=YES 容许本地用户上传
      local_umask=022 本地用户上传umask值
      local_root = /var/ftp 设置本地用户的FTP根目录
      local_max_rate = 0 限制最大传输速率
    2. 把用户限制在目录

      1. chroot_local_user = YES
        1. 开启用户目录限制
      2. chroot_local_user=YES
      3. chroot_list_enable=YES
      4. chroot_list_file=/etc/vsftpd/chroot_list
        1. 写入这个文件中的用户可以访问任何目录,其他用户限制在用户主目录

    2. 用户访问控制

    1. FTP相关文件

    1. 用户控制列表文件
      1. /etc/vsftpd/ftpusers
      2. /etc/vsftpd/user_list

    2. 访问控制

    1. userlist_enable=YES
      1. 开启用户访问控制
    2. userlist_deny=YES
    3. Userlist_file=/etc/vsftpd/user_list
      1. 写入这个文件中的用户不能访问ftp服务器,
    4. userlist_enable =YES
    5. userlist_deny=NO
      1. 当userlist_enable为YES,userlist_deny为NO时,FTP服务器仅允许user_list中的用户访问
    6. userlist_file=/etc/vsftpd/user_list
      1. 写入这个文件中的用户可以访问ftp,没有写入的用户不能访问
    7. 不要把限制用户主目录和用户访问限制搞混
      1. chroot_local_user=YES 用户把用户禁锢在主目录中
      2. userlist_enable =YES 用户访问控制

    七、虚拟用户访问

    1. 配置虚拟用户访问

    步骤!!!

    * 添加虚拟用户口令文件
    vi /etc/vsftpd/vuser.txt
    	cangle#用户名
    	123 #密码
    	bols #用户名
    	123#密码
    
    * 生成虚拟用户口令认证文件
    1. yum install db4-utils
    2. db_load-T-t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db(把文本文档转变为认证的数据库)
    * 编辑vsftpd的PAM认证文件
    1. vi /etc/pam.d/vsftpd

      auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
      account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
      

      注释其他,加入这两行

      注释掉其他,可以禁止本地用户登陆,因为本地用户依赖这个文件

    * 建立本地映射用户并设置宿主目录权限
    1. useradd -d /home/vftproot -s /sbin/nologin vuser
      1. 不需要登陆,,映射用户
      2. 用户名保持一致
    2. chmod 755 /home/vftproot
    * 修改配置文件
    vi /etc/vsftpd/vsftpd.conf
    	guest_enable =YES
    	# 开启虚拟用户
    	guest_username = vuser
    	#FTP 虚拟用户对应的系统用户
    	pam_service_name=vsftpd
    	#PAM认证文件(默认存在)
    
    * 重启服务

    systemctl vsftpd restart

    此时,虚拟用户可以登陆,查看,下载,不能上传

    权限使用的是匿名用户权限进行管理

    * 调整虚拟用户权限
    vi /etc/vsftpd/vsftpd.conf
    	anonymous_enable = NO
    	# 关闭匿名用户登录,
    	anon_upload_enable=YES
    	anon_mkdir_write_enable=YES
    	anon_other_writer_enable=YES
    	# 给虚拟用户设定权限,容许所有虚拟用户上传
    

    2. 为每个虚拟用户建立自己的配置文件,单独定义权限

    可以给每个虚拟用户单独建立目录,并建立自己的配置文件。这样方便单独配置权限,并可以单独制定上传目录

    1. 修改配置文件

    vi /etc/vsftpd/vsftpd.conf
    	user_config_dir=/etc/vsftpd/vusers_dir
    	#指定保存虚拟用户配置文件的目录
    

    2. 手工建立目录

    1. mkdir /etc/vsftpd/vusers_dir

    3. 为每个虚拟用户建立配置文件

    vi /etc/vsftpd/vusers_dir/cangls
    	annon_upload_enable=YES
    	anon_mkdir_wirte_enable=YES
    	anon_other_write_anable = YES
    	# 容许此用户上传
    	local_root=/tmp/vcangls
    	#给cangls指定堵路的上传目录
    

    4. 建立上传目录

    1. mkdir /tmp/vcangls
    2. chown vuser:vuser /tmp/vcangls
    3. 如果不给bos指定单独的配置文件,则遵守主配置文件(/etc/vsftpd/vsftpd.con)的权限

    5. 配置完效果如下:

    1. 禁止匿名用户登录(配置文件修改)
    2. 禁止本地系统用户登录(pam文件修改)
    3. 容许虚拟用户登录(配置文件修改)
    4. cangls的上传目录是/tmp/vcangls ,并且容许查看,下载,上传
    5. bols 的上传目录是虚拟用户的默认目录 /home/vftproot ,不能上传,能下载,查看
  • 相关阅读:
    Alook搭配JS脚本完美食用
    分享小米刷机教程/线刷(工具支持小米华为一加)
    iPhone 无需越狱修改wx+zfb+qq步数
    如果SELECT语句中没有结果,则使用CASE返回字符串
    MSSQLServer 正在显示"正在还原...."
    C# 小技巧
    C#使用Select方法快速获取List集合集合中某个属性的所有值集合
    C#中使用Sum方法对List集合进行求和操作
    sql日期函数
    sql只根据某一字段去重,并保留其他字段
  • 原文地址:https://www.cnblogs.com/YJBlog/p/10815086.html
Copyright © 2011-2022 走看看