文件服务之三:vsftpd基本使用

目录

简介
简介

vsftpd全称为”Very Secure FTP Daemon“,意为非常安全的FTP守护进程,vsftpd最初发展理念就是建构一个以安全为重心的FTP服务器。vsftpd 是一个UNIX类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。 比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。

vsftpd安装
vsftpd安装
安装方法
  • 检查系统是否已经安装vsftpd

                     [root@localtest ~]# rpm -q vsftpd
                     package vsftpd is not installed
    
  • 安装并检查

                       yum安装
                       [root@localtest ~]# yum install vsftpd
                       已加载插件:fastestmirror, security
     
                       启动vsftpd
                       [root@localtest ~]# service vsftpd start
                       为 vsftpd 启动 vsftpd:                                    [确定]
     
                       查看安装版本
                       [root@localtest ~]# rpm -q vsftpd
                       vsftpd-2.2.2-24.el6.x86_64
     
                       查看相关目录
                       [root@localtest ~]# rpm -ql vsftpd
                       /etc/logrotate.d/vsftpd
                       /etc/pam.d/vsftpd
                       /etc/rc.d/init.d/vsftpd #运行脚本
                       /etc/vsftpd  #用户认证配置文件
                       /etc/vsftpd/ftpusers
                       /etc/vsftpd/user_list
                       /etc/vsftpd/vsftpd.conf  #主配置文件
                       /etc/vsftpd/vsftpd_conf_migrate.sh
                       /usr/sbin/vsftpd   #主程序文件
                       .....
                       /var/ftp  #匿名用户数据根目录
                       /var/ftp/pub
                       匿名用户(映射为系统用户ftp )登录的根目录位置:/var/ftp
                       系统用户共享文件位置:用户家目录
                       虚拟用户共享文件位置:为其映射的系统用户的家目录
     
                       centos7下脚本:
                       Systemd Unit File(系统单元文件):/usr/lib/systemd/system/vsftpd.service 
                       
                       查看进程
                       [root@localtest ~]# ps aux | grep vsftpd
                       root       2062  0.0  0.0  52124   816 ?        Ss   01:35   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
     
                       查看服务端口
                       [root@localtest ~]# ss -tnl
                       State       Recv-Q Send-Q       Local Address:Port     Peer Address:Port 
                       LISTEN      0        128           :::80                   :::*     
                                                                                        
                       LISTEN      0         32           *:21                     *:*  
     
                       [root@localtest ~]# netstat -a | grep LISTEN
                       tcp        0      0 *:ftp                       *:*                         LISTEN      
                       tcp        0      0 *:ssh                       *:*                         LISTEN      
                       tcp        0      0 localhost:smtp              *:*                         LISTEN      
                       tcp        0      0 *:http                      *:*                         LISTEN      
                       tcp        0      0 *:ssh                       *:*                         LISTEN      
                       tcp        0      0 localhost:smtp              *:*                         LISTEN  
    
设置开机自动启动
[root@localtest ~]# chkconfig vsftpd on    #加载/etc/rc.d/init.d/vsftpd脚本到开机启动 
 centos7:systemctl enable vsftpd.service
开启防火墙ftp端口
vi /etc/sysconfig/iptables     #编辑防火墙配置文件
     1   -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT(允许21端口通过防火墙)
     2   -A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT(允许20端口通过防火墙)
     3   -A INPUT -m state --state NEW -m tcp -p tcp --dport 9000:9045 -j ACCEPT(设置ftp被动模式的端口范围)
配置文件说明
/etc/vsftpd/vsftpd.conf  vsftpd的核心配置文件
/etc/vsftpd/ftpusers  用于指定哪些用户不能访问FTP服务器,黑名单
/etc/vsftpd/user_list 指定允许使用vsftpd的用户列表文件
/etc/vsftpd/vsftpd_conf_migrate.sh 是vsftpd操作的一些变量和设置脚本
/var/ftp/ 默认情况下匿名用户的根目录

注:
user_list是和vsftpd.conf中的userlist_enable和userlist_deny两个配置项紧密相关的,它可以有效,也可以无效,有效时它可以是一个黑名单,也可以是一个白名单!那么是什么的设置决定了它的作用呢?这就是问题二要解释的。所以简单总结就是:ftpusers和user_list没有任何关系,ftpusers文件总是生效,user_list则取决于userlist_enable和userlist_deny两项配置。

用户类别

匿名用户:anonymous –> ftp,/var/ftp

系统用户:禁止系统用户访问ftp服务,/etc/vsftpd/ftpusers,PAM(/etc/pam.d/vsftpd)

虚拟用户:非系统用户,与登录linux系统的用户账号不是一回事。(不是/etc/passwd中定义的)

配置/etc/vsftpd/vsftpd.conf
vsftpd.conf

配置前先备份

             cp  /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.confbak

错误恢复文件

              cp  /etc/vsftpd/vsftpd.confbak /etc/vsftpd/vsftpd.conf 

打开配置文件

              vi /etc/vsftpd/vsftpd.conf     #配置 

查看配置的帮助

              man vsftpd.conf

配置项

              1   use_localtime=YES          #ftp时间和系统同步,如果启动有错误,请注销
              2   reverse_lookup_enable=NO   #添加此行,解决客户端登陆缓慢问题!默认vsftpd开启了DNS反响解析!这里需要关闭,如果启动有错误,请注销!重要!
              3    
              4   listen_port=21    #默认无此行,ftp端口为21,添加listen_port=2222把默认端口修改为2222,注意:防火墙同时要开启2222端口
              5   anonymous_enable=NO    #禁止匿名用户
              6   local_enable=YES
                  设定本地用户可以访问。注意:主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问
                  local_max_rate=0:本地账户的传输的速率
                  local_root=/ftp/ 本地账户访问的家目录
              7   write_enable=YES         #全局设置,是否容许写入(无论是匿名用户还是本地用户,若要启用上传权限的话,就要开启他)
              8   download_enable=YES:是否允许下载
              9   local_umask=022 设定上传后文件的权限掩码。
              10  anon_upload_enable=NO 禁止匿名用户上传。
              11  anon_mkdir_write_enable=NO  禁止匿名用户建立目录。
                  anon_other_write_enable=YES 是否运行匿名用户修改其他用户的文件。
                  anon_umask=077      匿名上传后,文件权限600
                  anon_root=/var/ftp  设置匿名访问的根路径
                  anon_world_readable_only=YES (是否全局只读) 
              12  dirmessage_enable=YES 设定开启目录标语功能。与目录下的.message文件结合使用
              13  xferlog_enable=YES  设定开启上传下载日志记录功能。
              14  connect_from_port_20=YES 设定端口20进行数据连接。
              15  chown_uploads=NO 设定禁止上传文件更改宿主。
                  chown_username=whoever 改变上传文件的属主,上一项为YES
                  xferlog_enable=YES 
              16  xferlog_file=/var/log/vsftpd.log  日志保存路径(先创建好文件)
              17  xferlog_std_format=YES   #使用标准格式
              18  async_abor_enable=YES 设定支持异步传输功能。
              19  ascii_upload_enable=YES
              20  ascii_download_enable=YES 
                  设定支持ASCII模式的上传和下载功能。用HTML和文本编写的文件要用ASCII模式上传,用二进制模式上传会破坏文件,导致文件执行出错。BINARY模式用来传送可执行文件,压缩文件和图片文件。重要!
              21  ftpd_banner=Welcome to Awei FTP servers 设定Vsftpd的登陆标语。
              22  chroot_local_user=YES  禁止本地用户登出自己的FTP主目录。
                  chroot_list_enable=YES
                  chroot_list_file=/etc/vsftpd/chroot_list
                  禁止文件中指定的ftp本地用户于其家目录中
              23  pam_service_name=vsftpd 设定PAM服务下Vsftpd的验证配置文件名。因此,PAM验证将参考/etc/pam.d/下的vsftpd文件配置。
              24  userlist_enable=YES  
                  启用/etc/vsftpd/user_list文件来控制可登录用户,仅指示用不用,黑名单还是白名单由下面一个参数决定  
              25  userlist_deny=YES      是否禁用userlist文件中的用户访问 yes意味着黑名单 no意味着白名单
                  userlist_file=/etc/vsftpd/users_list 此为默认值
                  max_client=2000   最大允许的客户端连接数
                  max_per_ip=0    每个客户端的最大连接限制,0代表无限制
                  anno_max_rate   匿名用户的最大传输速率
                  local_max_rate 本地用户最大传输速率
              26  tcp_wrappers=YES  是否支持tcp_wrappers
              27  idle_session_timeout=300    #空闲会话超时设置(上传下载等长时间无操作)
              28  data_connection_timeout=1    #空闲1秒后服务器断开
                  listen=YES :是否监听端口,独立运行守护进程
              29  #########################################################
              30  以下这些是关于Vsftpd虚拟用户支持的重要配置项目。
              31  默认Vsftpd.conf中不包含这些设定项目,需要自己手动添加配置
              32  #########################################################
              33  guest_enable=YES 是否允许来宾账户登录,设定启用虚拟用户功能。
              34  guest_username=vsftpd 指定虚拟用户的宿主用户(这个是我们后面要新建的用户)

              35  user_config_dir=/etc/vsftpd/vconf 设定虚拟用户个人Vsftp的配置文件存放路径。 重要!
              36  也就是说,这个被指定的目录里,将存放每个Vsftp虚拟用户个性的配置文件,一个需要注意的
              37  地方就是这些配置文件名必须和虚拟用户名相同。
              38  比如说vsftpd.conf的配置文件,你复制到这个目录下,你要mv一下,配置成虚拟用户的名称

              39   
              40  virtual_use_local_privs=YES     #当该参数激活(YES)时,虚拟用户使用与本地用户相同的权限。
              41  #当此参数关闭(NO)时,虚拟用户使用与匿名用户相同的权限。默认情况下此参数是关闭的(NO)。
                  pasv_enable=YES : 是否启用被动模式
              42  pasv_min_port=9000 (设置被动模式的端口范围,重要)
              43  pasv_max_port=9045 (设置被动模式的端口范围,重要)
              44  accept_timeout=5   #保持5秒
              45  connect_timeout=1  #1秒后重新连接 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值