使用vsftpd构建安全的FTP服务

vsftpd的名字代表“very secure FTP daemon”,它的开发者Chris Evans考虑的首要问题就是数据传输的安全性。所以,在上述所有的特性当中,较高的安全性是处于最重要的地位。vsftpd比其他诸如Wu-ftpd和Proftpd之类的FTP服务器更加优越。另外,在速度方面,据统计,使用ASCⅡ模式下载数据的速度是Wu-ftpd的两倍。在Linux2.4系列版本的内核下,千兆以太网的下载速度可以达到86MB/S;在稳定性方面,根据 ftp.redhat.com的数据,它可以支持15000个并发用户,所以其总体性能也是非常高的。
  
  vsftpd的安装过程
  
  vsftpd 守护程序的安装相当简单,在每个主要发行版中都可以找到vsftpd的RPM包,很多情况下,它已经被装上了。如果没有的话,源代码可以在网站: http://vsftpd.beasts.org/上找到,下载后执行手工安装。目前最新的版本为:vsftpd2.0.3。
  
  得到源代码并解开tar包后,进入新建的目录,并运行make。下面是进行手工安装的示例:
  
  # tar xzvf vsftpd-2.0.3.tar.gz
  
  # cd vsftpd-2.0.3
  
  # make
  
  这之前我们应该看看用户“nobody”和目录“/usr/share/empty”是否存在,如果需要的话我们就新建这一对用户和目录。如果我们允许用户匿名访问,用户“ftp”和目录“var/ftp”也需要创建。使用如下两个命令完成:
  
  # mkdir /var/ftp
  
  # useradd -d /var/ftp ftp
  
  由于安全原因,目录 “/var/ftp” 不应该属于用户 “ftp”,也不应该有写权限。如果用户已经存在的话,用下面的两个命令,我们可以改变目录的所有者并去掉其他用户的写权限:
  
  # chown root.root /var/ftp
  
  # chmod og-w /var/ftp
  
  达到了所有的先决条件后,我们可以安装 vsftp-daemon 了。
  
  # make install
  
  这样,就完成了vsftpd的安装,当然,这个安装过程比较复杂,在我们现在使用的Linux系统当中,很多都是使用RPM包来安装的,这样简单快捷,下面介绍如何通过使用RPM包来安装vsftpd。
  
  在RedHat Linux9中自带了vsftpd,下面是安装的步骤:
  
  1. 首先查看是否安装了vsftpd,如果已经安装,则可以直接使用。
  
  # rpm - q|grep vsftpd
  
  2. 没有安装的话,将下载来的vsftpd-1.1.3-8.i386.rpm的RPM包进行安装。
  
  # rpm - vh vsftpd-1.1.3-8.i386.rpm
  
  通过以上两步,就能顺利地完成安装过程。
  
  配置文件介绍
  
  配置文件的路径为 /etc/vsftpd.conf。和Linux系统中的大多数配置文件一样,vsftpd的配置文件中以#开始注释,下面对配置文件的重要内容选项进行详细的介绍,合理的使用配置文件是保证FTP安全传输的前提。
  
  查看配置文件:
  
  #vi /etc/vsftpd.conf
  
  设置是否允许匿名访问:
  
  # Anonymus FTP-access permitted? YES/NO
  
  anonymous_enable=NO
  
  设置是否允许匿名上传文件:
  
  # Permit anonymus upload? YES/NO
  
  anon_upload_enable=NO
  
  设置是否运允许匿名建立目录:
  
  # Permission for anonymus users to make new directories? YES/NO
  
  anon_mkdir_write_enable=NO
  
  设置是否允许匿名用户进行删除或者改名等操作:
  
  # Permission for anonymus users to do other write operations - like renaming or deleting? YES/NO
  
  anon_other_write_enable=NO
  
  设置是否允许本地用户登录:
  
  # Log on by local users permitted? YES/NO
  
  local_enable=YES
  
  设置是否将本地用户锁定在主目录:
  
  # Shall local users be locked into their home directory? YES/NO
  
  chroot_local_user=YES
  
  设置最高传输速度:
  
  # Highest permitted data transfer rate in bytes per second for local logged on users. Default = 0 (unlimited)
  
  local_max_rate=7200
  
  设置是否允许通常的写操作:
  
  # General write permission? YES/NO
  
  write_enable=YES
  
  设置是否在改变目录后发送消息:
  
  # Enable messages when changing directories? YES/NO
  
  dirmessage_enable=YES
  
  设置服务器向登录客户端发送的欢迎信息:
  
  # Welcome banner at users logon.
  
  ftpd_banner="Welcome to neo5k's FTP service."
  
  设置是否激活日志功能:
  
  # Activate logging? YES/NO
  
  xferlog_enable=YES
  
  设置是否对所有的FTP操作作日志,如果设置是,则可能产生巨大的数据:
  
  # Logging of all FTP activities? YES/NO
  
  # Careful! This can generate large quantities of data.
  
  log_ftp_protocol=NO
  
  设置是否只允许在端口20建立连接:
  
  # Confirm connections are established on port 20 (ftp data) only. YES/NO
  
  connect_from_port_20=YES
  
  设置无任何操作的超时时间:
  
  # Timeout during idle sessions
  
  idle_session_timeout=600
  
  设置数据连接的超时时间:
  
  # Data connection timeout
  
  data_connection_timeout=120
  
  设置访问所使用的PAM:
  
  # Access through Pluggable Authentication Modules (PAM)
  
  pam_service_name=vsftpd
  
  设置工作模式是否为独立模式:
  
  # Standalone operation? YES/NO - depending on operation mode (inetd, xinetd, Standalone)
  
  # The author's FTP service is being startet with xinetd, therefore the value here is NO.
  
  listen=YES
  
  设置是否使用tcp_wrappers作为主机访问控制方式:
  
  tcp_wrappers =YES
  
  启动 FTP 服务
  
  启动vsftpd可以采用三种方式:inetd、xinetd和standalone(独立)工作模式。由于目前使用的xinetd扩展了inetd,它比inetd更加高效和实用,包括诸如请求记录、访问控制、将业务与网络接口绑定等改进,所以通常使用xinetd,本文将介绍xinetd以及 standalone两种启动方式。
  
  1. xinetd方式启动
  
  使用该启动方式,在上述的配置文件当中,应该将listen=YES设为list=NO,并且将tcp_wrappers=YES设为tcp_wrappers=NO,并且使用如下命令将vsftpd的文档目录拷贝到/etc/xinetd.d目录下:
  
  # cp /usr/share/doc/vsftpd-1.1.3/vsftpd.xinetd /etc/xinetd.d/vsftpd
  
  # vi /etc/xinetd.d/vsftpd
  
  将disable=yes设为disable=no即可。一个关于该启动方式的的配置文件如下所示:
  
  # cat /etc/xinetd.d/vsftpd
  
  # default: on
  
  # description: The vsftpd FTP server serves FTP connections. It uses
  # normal, unencrypted usernames and passwords for authentication.
  
  service ftp
  
  {
  
  socket_type = stream
  
  wait = no
  
  user = root
  
  server = /usr/sbin/vsftpd
  
  nice = 10
  
  disable = no
  
  flags = IPv4
  
  }
  
  现在,就可以使用如下命令来启动vsftpd了。
  
  停止独立运行的vsftpd:
  
  # service vsftpd stop
  
  重新启动xinetd守护进程:
  
  # service xinetd restart
  
  另外一点需要说明的是:如果想在系统启动时就自动运行该服务,那么需要使用setup命令,在网络服务配置的项目中,选中vsftpd守护进程即可。
  
  2. 独立工作模式启动
  
  vsftpd也可以工作在独立工作模式下。这样,我们需要再次打开“/etc/vsftpd.conf”做如下修改:
  
  # Shall the vsftp daemon run in standalone ope
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值