Vsftpd配置详解之Vsftpd配置下高级操作
创始人
2024-07-21 23:00:38
0

  vsftpd 配置下高级操作

  这一次我们介绍一下 vsftpd的其它一些知识,其中包括:双模式切换、基于ip的虚拟ftp 站点、基于数据库虚拟用户建立及管理、基于 OpenSSL 的加密数据传输。

  1. vsftpd 双模式切换

  前面我们提过, vsftpd 服务是支持在linux下的两种服务模式:独立(standalone)模式和守护进程(xinetd)模式。在 standalone 模式下,vsftpd进程启动后会一直占用系统资源,当有连接请求时,它会迅速反应;在xinetd模式下,ftp服务是由守护进程统一管理,当出现 ftp连接请求时,守护进程才将ftp服务启动,这种方式***的优点是没有连接的时候ftp服务不会占用系统资源,处于睡眠状态,但因为要花费时间去唤醒该服务,所以响应时间较长 。

  之前做的试验一直是把 vsftpd 做在独立模式下,下面我们把它移到守护进程下。注意在工作在守护进程下时,有的参数并不起作用,详细请查阅vsftpd 帮助信息 (man vsftpd.conf)。

  我们需要在守护进程配置目录 /etc/xinetd.d/里建立vsftpd 的守护进程文件。我们在安装时已经将该文件考到/etc/xinetd.d/目录下了。我们稍稍修改其内容:

  1.   #vi /etc/xinetd.d/vsftpd  
  2.  
  3.   service ftp  
  4.  
  5.   {  
  6.  
  7.   disable = no 
  8.  
  9.   socket_type = stream 
  10.  
  11.   wait = no 
  12.  
  13.   user = root 
  14.  
  15.   server = /usr/local/sbin/vsftpd  
  16.  
  17.   server_args = /etc/vsftpd/vsftpd.conf  
  18.  
  19.   nice = 10 
  20.  
  21.   }  
  22.  

  接下来把配置文件中的 listen=yes或listen_ipv6=yes去掉,停掉vsftpd服务,重启xinetd服务:

  # sesrvice vsftpd stop

  # service xinetd restart

  重新启动守护进程后, vsftpd 服务就会让守护进程来管理了。在守护进程管理过程中,我们再修改主配置文件的话,就不需要重新启动服务了。

  2. 基于 IP 的虚拟 ftp 站点

  这一小节我们来讨论在同一服务器上建立多个 ftp站点,每个站点相互独立,拥有独立的配置文件。当然服务器必须有两个以上的IP地址。在standalone模式下,我们可以考虑启动多个ftp服务进程;在xinetd模式下,可以让守护进程来管理。下面我们分别讨论这两种情况。为简单起见,我们在服务器上建立两个匿名虚拟站点。下面是这两个站点的信息:

  站点 1

  站点 2

  ip 地址

  192.168.0.105

  192.168.0.106

  主配置文件

  /etc/vsftpd/vsftpd.conf

  /etc/vsftpd/vsftpd2.conf

  匿名用户映射的本地用户名

  默认为 ftp

  新建立 ftp2

  匿名用户主目录

  /var/ftp/

  /var/ftp2/

  standalone 模式下虚拟站点的建立

  首先我们修改站点 1的配置文件/etc/vsftpd/vsftpd.conf为下面所示:

  1.   listen=yes 
  2.  
  3.   listen_address=192.168.0.105  
  4.  
  5.   anonymous_enable=yes 
  6.  
  7.   local_enable=yes 
  8.  
  9.   pam_service_name=vsftpd 
  10.  
  11.   write_enable=yes 
  12.  
  13.   ftpd_banner=This is ftp1 site  
  14.  

  站点 1就这样配置完毕了。接下来为站点2建立ftp2的用户:

  1.   # mkdir /var/ftp2/  
  2.  
  3.   # useradd -d /var/ftp2/ ftp2  
  4.  

  为了让站点 2知道匿名用户的主目录为/var/ftp2,我们需要在配置文件中手动指定站点2使用ftp2用户登录,于是我们要用到下面这条语句:

  1.   ftp_username=local_username 
  2.  

  建立站点 2的配置文件/etc/vsftpd/vsftpd2.conf,内容如下:

  1.   listen=yes 
  2.  
  3.   listen_address=192.168.0.106  
  4.  
  5.   anonymous_enable=yes 
  6.  
  7.   local_enable=yes 
  8.  
  9.   pam_service_name=vsftpd 
  10.  
  11.   write_enable=yes 
  12.  
  13.   ftp_username=ftp2 
  14.  
  15.   ftpd_banner=This is ftp2 site  
  16.  

  接下来我们启动 vsftpd服务,就可以看到效果了。需要注意的是这里就不能用service vsftpd start命令来启动服务了,必须用第三节前面介绍的方式启动。

  1.   # /usr/local/sbin/vsftpd /etc/vsftpd/vsftpd.conf &  
  2.  
  3.   [1] 2287  
  4.  
  5.   # /usr/local/sbin/vsftpd /etc/vsftpd/vsftpd2.conf &  
  6.  
  7.   [1] 2288  
  8.  
  9.   # ftp 192.168.0.105  
  10.  
  11.   Connected to 192.168.0.105.  
  12.  
  13.   220 This is ftp1 site  
  14.  
  15.   530 Please login with USER and PASS.  
  16.  
  17.   ……  
  18.  
  19.   # ftp 192.168.0.106  
  20.  
  21.   Connected to 192.168.0.106.  
  22.  
  23.   220 This is ftp2 site  
  24.  
  25.   ……  
  26.  

  我们在各自的配置文件设置了不同的 banner,上面已经看到效果了。

  守护进程模式下虚拟站点的建立

  在 standalone模式下,IP的绑定在配置文件里配置了,配置文件名及其位置在启动服务的命令参数里指定;在xinetd模式下,这两步需要在守护进程配置文件里配置。这样在守护进程里面我们就得用到这两个设置:

  bind= 绑定的ip

  server_args= 每个站点的配置文件

  那么我们来做守护进程文件,首先来写站点 1的守护进程文件:

  1.   # vi /etc/xinetd.d/vsftpd  
  2.  
  3.   service ftp  
  4.  
  5.   {  
  6.  
  7.   disable = no 
  8.  
  9.   socket_type = stream 
  10.  
  11.   wait = no 
  12.  
  13.   user = root 
  14.  
  15.   server = /usr/local/sbin/vsftpd  
  16.  
  17.   server_args = /etc/vsftpd/vsftpd.conf  
  18.  
  19.   nice = 10 
  20.  
  21.   bind = 192.168.0.105  
  22.  
  23.   }  
  24.  

  再建立站点 2的守护进程文件,并输入下面的内容

  1.   # vi /etc/xinetd.d/vsftpd2  
  2.  
  3.   service ftp  
  4.  
  5.   {  
  6.  
  7.   disable = no 
  8.  
  9.   socket_type = stream 
  10.  
  11.   wait = no 
  12.  
  13.   user = root 
  14.  
  15.   server = /usr/local/sbin/vsftpd  
  16.  
  17.   server_args = /etc/vsftpd/vsftpd2.conf  
  18.  
  19.   nice = 10 
  20.  
  21.   bind = 192.168.0.106  
  22.  
  23.   }  
  24.  

  这样两个守护进程文件就写完了,用户也在上个试验已经建立完了。接下来继续修改两个站点的配置文件,均是把 listen、listen_address两行删去即可。现在我们可以重新启动xinetd服务,测试结果就不贴出来了。

【编辑推荐】

  1. vsftpd配置详解之简介篇
  2. vsftpd配置详解之软件安装和卸载
  3. vsftpd配置详解之配置vsftpd服务
  4. Vsftpd配置详解之配置文件详解
  5. Vsftpd配置详解之Vsftpd配置下高级操作
  6. Vsftpd配置详解之与MySql的结合
  7. vsftpd配置详解之实现加密数据传输

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...