• vsftpd服务详解


    一、vsftpd基本使用 

    VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP,从此名称可以看出来,编制者的初衷是代码的安全。安全性是编写VSFTP的初衷,除了这与生俱来的安全特性以外,高速与高稳定性也是VSFTP的两个重要特点。
    在速度方面:使用ASCII代码的模式下载数据时,VSFTP的速度是Wu-FTP的两倍,如果Linux主机使用2.4.*的内核,在千兆以太网上的下载速度可达86MB/S。
    在稳定方面:VSFTP就更加的出色,VSFTP在单机(非集群)上支持4000个以上的并发用户同时连接,根据RedHat的Ftp服务器(ftp.redhat.com)的数据,VSFTP服务器可以支持15000个并发用户

     
     1、查看是否安装vsftp
     rpm -qa | grep vsftpd

    如果出现vsftpd-2.2.2-14.el6.x86_64,说明已经安装 vsftp

     安装vsftp
     yum -y install vsftpd
     2、测试是否安装成功
     [root@localhost ~]#service vsftpd start
     为 vsftpd 启动 vsftpd:[确定]
     
     3、配置vsftpd
     # whereis vsftpd
     vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz
     yum安装的主要目录为上述的3个目录,其中配置文件vsftpd.conf在/etc/vsftpd中,下面看下怎么配置vsftpd.conf
     
     # 默认配置文件: /etc/vsftpd.conf
     #     下面是配置的选项及说明
     ######### 核心设置 ###########
      
     # 允许本地用户登录
     local_enable=YES
      
     # 本地用户的写权限
     write_enable=YES
      
     # 使用FTP的本地文件权限,默认为077
     # 一般设置为022
     local_umask=022
      
     # 切换目录时
     # 是否显示目录下.message的内容
     dirmessage_enable=YES
     dirlist_enable = NO
     #验证方式
     #pam_service_name=vsftpd
      
     # 启用FTP数据端口的数据连接
     connect_from_port_20=YES
      
     # 以独立的FTP服务运行
     listen=yes
      
     # 修改连接端口
     #listen_port=2121
      
     ######### 匿名登录设置 ###########
      
     # 允许匿名登录
     anonymous_enable=NO
      
     # 如果允许匿名登录
     # 是否开启匿名上传权限
     #anon_upload_enable=YES
      
     # 如果允许匿名登录
     # 是否允许匿名建立文件夹并在文件夹内上传文件
     #anon_mkdir_write_enable=YES
      
     # 如果允许匿名登录
     # 匿名帐号可以有删除的权限
     #anon_other_write_enable=yes
      
     # 如果允许匿名登录
     # 匿名的下载权限
     # 匿名为Other,可设置目录/文件属性控制
     #anon_world_readable_only=no
      
     # 如果允许匿名登录
     # 限制匿名用户传输速率,单位bite
     #anon_max_rate=30000
      
     ######### 用户限制设置 ###########
      
     #### 限制登录
      
     # 用userlist来限制用户访问
     #userlist_enable=yes
      
     # 名单中的人不允许访问
     #userlist_deny=no
      
     # 限制名单文件放置的路径
     #userlist_file=/etc/vsftpd/userlist
      
     #### 限制目录
      
     # 限制所有用户都在家目录
     #chroot_local_user=yes
      
     # 调用限制在家目录的用户名单
     chroot_list_enable=YES
      
     # 限制在家目录的用户名单所在路径
     chroot_list_file=/etc/vsftpd/chroot_list
      
     ######### 日志设置 ###########
      
     # 日志文件路径设置
     xferlog_file=/var/log/vsftpd.log
      
     # 激活上传/下载的日志
     xferlog_enable=YES
      
     # 使用标准的日志格式
     #xferlog_std_format=YES
      
     ######### 安全设置 ###########
      
     # 用户空闲超时,单位秒
     #idle_session_timeout=600
      
     # 数据连接空闲超时,单位秒
     #data_connection_timeout=120
      
     # 将客户端空闲1分钟后断开
     #accept_timeout=60
      
     # 中断1分钟后重新连接
     #connect_timeout=60
      
     # 本地用户传输速率,单位bite
     #local_max_rate=50000
      
     # FTP的最大连接数
     #max_clients=200
      
     # 每IP的最大连接数
     #max_per_ip=5
      
     ######### 被动模式设置 ###########
      
     # 是否开户被动模式
     pasv_enable=yes
      
     # 被动模式最小端口
     pasv_min_port=5000
      
     # 被动模式最大端口
     pasv_max_port=6000
      
     ######### 其他设置 ###########
     # 欢迎信息
     ftpd_banner=Welcome to My Ftp Server!
     
    #设定支撑Vsftpd服务的宿主用户为手动建立的Vsftpd用户。注意,一旦做出更改宿主用户后,必须注意一起与该服务相关的读写文件的读写赋权问题。比如日志文件就必须给与该用户写入权限等。
    nopriv_user=vsftpd
     
    #设定支持异步传输功能。
    async_abor_enable=YES
     
    #设定支持ASCII模式的上传和下载功能。
    ascii_upload_enable=YES
    ascii_download_enable=YES
     
    #设定支援 TCP Wrappers 的防火墙机制
    tcp_wrappers=YES
     
     
     4 、添加用户(注意,该处添加nologin类型用户ftpuser):
     useradd -d /home/ftp -s /sbin/nologin ftpuser
     如果已启动vsftpd,重新启动
    /etc/init.d/vsftpd restart
     
     5 、到此,整个小巧的ftp服务器搭建成功。可以使用FileZilla FTP或FlashFXP等客户端软件登陆ftp server了。

     二、配置vsftpd支持虚拟用户

    1、安装vsftpd支持虚拟用户需要的包

    yum -y install db4-utils db4 #安装是U.C Berkeley的小型数据库服务器及其工具
    yum -y install pam pam-* #安装pam认证模块

    2、建立虚拟用户

    #vim /home/loginuser.txt
    user1  
    password1  
    user2  
    password2  
    user3  
    password4 

    格式为第一行为用户名名,第二行为密码,然后类推。

    建立db数据库,同时只有root用户才能读写
    # db_load -T -t hash -f /home/loginuser.txt /etc/vsftpd/vsftpd_login.db    #把文本转成Berkeley数据库格式
    # chmod 600 /etc/vsftpd/vsftpd_login.db #设定权限
    配置pam文件
    # vim /etc/pam.d/vsftpd.vu (64位系统)
    auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login  
    account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login 
     
    # vim /etc/pam.d/vsftpd.vu (32位系统)
    auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login  
    account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login 
    建立虚拟用户对应的系统真实用户
    useradd ftpvirtual -s /sbin/nologin

    3、修改vsftpd配置文件

    # cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
    # vim /etc/vsftpd/vsftpd.conf
    anonymous_enable=NO 
    local_enable=YES 
    #write_enable=NO 
    dirmessage_enable=YES 
    xferlog_enable=YES 
    xferlog_file=/var/log/vsftpd.log  
    connect_from_port_20=YES 
    xferlog_std_format=YES 
    listen=YES 
    listen_port=5522 
    userlist_enable=YES 
    chroot_local_user=YES 
    tcp_wrappers=YES 
    pasv_min_port=50000 
    pasv_max_port=50010 
    pasv_enable=yes 
    max_clients=200 
    max_per_ip=4 
    idle_session_timeout=600

    # 启用虚拟用户增加配置选项说明 guest_enable=YES #设定启用虚拟用户功能 guest_username=ftpvirtual #指定虚拟用户的宿主用户(即是linux上的本地用户)
    pam_service_name=vsftpd.vu #设定PAM服务下Vsftpd的验证配置文件名。因此,PAM验证将参考/etc/pam.d/下的vsftpd.vu文件配置。
    user_config_dir=/etc/vsftpd/vsftpd_user_conf #设定虚拟用户个人Vsftp的配置文件存放路径。也就是说,这个被指定的目录里,将存放每个Vsftp虚拟用户个性的配置文件。(一个需要注意的地方就是这些配置文件名必须和虚拟用户名相同)

     
    4、创建日志文件
    如果修改了vsftp服务的宿主用户,则需要手动创建日志文件并给予权限
    # touch /var/log/vsftpd.log
    # chown www.www /var/log/vsftpd.log

    5、建立虚拟用户对应家目录

    #mkdir /home/ftpvirtual/user1
    #mkdir /home/ftpvirtual/user2
    #mkdir /home/ftpvirtual/user3 

    6、建立虚拟用户配置文件

    # mkdir /etc/vsftpd/vsftpd_user_conf 创建虚拟用户配置文件存放目录

    配置不同权限的虚拟用户设置

    所有权限

    # vim /etc/vsftpd/vsftpd_user_conf/user1
    
    #虚拟用户配置,CentOS下yes或者no必须为小写字母 
    
    write_enable=yes
    anonymous_enable=no 
    anon_world_readable_only=no 
    anon_upload_enable=yes
    anon_mkdir_write_enable=yes
    anon_other_write_enable=yes
    local_umask=022 
    download_enable=yes
    local_root=/home/ftpvirtual/user1

    上传权限

    # vim /etc/vsftpd/vsftpd_user_conf/user2
    write_enable=YES 
    anon_world_readable_only=NO 
    anon_upload_enable=YES 
    anon_mkdir_write_enable=YES 
    anon_other_write_enable=YES 
    local_umask=022 
    download_enable=NO 
    local_root=/home/ftpvirtual/user2

    下载权限

    # vim /etc/vsftpd/vsftpd_user_conf/user3
     
    write_enable=NO 
    anon_world_readable_only=NO 
    anon_upload_enable=NO 
    anon_mkdir_write_enable=NO 
    anon_other_write_enable=NO 
    local_umask=022 
    download_enable=yes 
    local_root=/data/user3 

    7、重启服务即可生效

    # service vsftpd restart

    注:如果你喜欢对配置文件有详细的了解,欢迎查看另一文章http://www.cnblogs.com/cto6608/p/4816267.html

  • 相关阅读:
    数据模型Model(I)
    泛型
    iOS开发之widget实现
    ios断点续传:NSURLSession和NSURLSessionDataTask实现
    iOS 直播类APP开发流程解析
    iOS实现电话状态监听 CoreTelephony
    iOS9全新的联系人相关框架——Contacts Framework
    iOS开发集成微信支付
    如何在 Git 里撤销(几乎)任何操作
    iOS开发网络缓存原理
  • 原文地址:https://www.cnblogs.com/cto6608/p/4816073.html
Copyright © 2020-2023  润新知