vsftpd配置详解之配置vsftpd服务
创始人
2024-07-21 23:01:45
0

配置vsftpd服务:

  服务的启动与停止

  启动服务之前,我们先编辑配置文件/etc/vsftpd/vsftpd.conf. 打开配置文件后可以看到许多以“#”开始的行,这些行都是注释行,大多是帮助信息,可以仔细阅读。vsftpd.conf文件的所有项目都是以“参数=值”来设置的,对格式要求比较严格,必须严格区分大小写,等号两边不能有空格,每行的最后也不能有空格。每个参数都有一个默认值,没有在配置文件中明确指定的参数就会使用默认值。我们这里不理会配置文件本来的信息,把所有内容都删掉或注释掉,最后加上下面四行,每行右边的//及后的文字是含义说明,不要输入到文件中:

  1.   listen=yes //vsftpd工作在standalone 模式下  
  2.  
  3.   anonymous_enable=yes //允许匿名用户登陆服务器  
  4.  
  5.   local_enable=yes //允许本地用户登录到服务器  
  6.  
  7.   pam_service_name=vsftpd //使用PAM认证  
  8.  

  vsftpd有两种工作模式,standalone模式和xinetd守护进程模式,第1行就是让其工作在standalone模式下。此种模式中,每次修改配置文件必须重新启动vsftpd服务才能生效,关于两种模式在后面有详细介绍。我们安装时还把 Redhat 目录下的 vsftpd.pam 文件复制成了/etc/pam.d/vsftpd 文件。这个文件就是本地用户登陆的 pam 验证配置文件。关于这个文件我们会在后面具体介绍。这里我们要知道,必须得有这个配置文件,而且主配置文件里要加上 pam_service_name=vsftpd语句,我们才能让本地用户登陆。用以下命令启动服务:

  1.   # /usr/local/sbin/vsftpd /etc/vsftpd/vsftpd.conf &  
  2.  

  为保证服务确实启动,我们用如下命令检测:

  1.   # netstat -an |grep 21  
  2.  
  3.   tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN  
  4.  

  我们看到服务器已经打开了tcp21端口,表明ftp确实已经启动。再登录服务器:

  1.   # ftp 127.0.0.1  
  2.  
  3.   Connected to 127.0.0.1.  
  4.  
  5.   220 (vsFTPd 2.0.5)  
  6.  
  7.   530 Please login with USER and PASS.  
  8.  
  9.   530 Please login with USER and PASS.  
  10.  
  11.   KERBEROS_V4 rejected as an authentication type  
  12.  
  13.   Name (127.0.0.1:root): ftp  
  14.  
  15.   331 Please specify the password.  
  16.  
  17.   Password:  
  18.  
  19.   230 Login successful.  
  20.  

  这时我们已经用匿名用户(用户名ftp或anonymous,密码任意)登录到服务器了,还可以用本地用户登录。我们做测试时建议使用如上所示的ftp命令(windows、Linux及Unix都带这个命令,用法都是一样的)来登录服务器,这样可以看到更详细的信息,对于我们调试服务器是非常有帮助的。最简单的ftp服务器就已经达建起来了。使用如下命令关闭ftp服务:

  1.   # killall vsftpd  
  2.  

  服务启动脚本的制作

  在standalone 模式中,经常用上面的命令启动服务比较麻烦,我们做一个脚本来启动和停止服务。

  建立一个新文件/etc/rc.d/init.d/vsftpd,把以下内容复制到文件中:

  1.   #!/bin/bash  
  2.  
  3.   #  
  4.  
  5.   # vsftpd This shell script takes care of starting and stopping  
  6.  
  7.   # standalone vsftpd.  
  8.  
  9.   #  
  10.  
  11.   # chkconfig: - 60 50  
  12.  
  13.   # description: Vsftpd is a ftp daemon, which is the program \  
  14.  
  15.   # that answers incoming ftp service requests.  
  16.  
  17.   # processname: vsftpd  
  18.  
  19.   # config: /etc/vsftpd/vsftpd.conf  
  20.  
  21.   # Source function library.  
  22.  
  23.   . /etc/rc.d/init.d/functions  
  24.  
  25.   # Source networking configuration.  
  26.  
  27.   . /etc/sysconfig/network  
  28.  
  29.   # Check that networking is up.  
  30.  
  31.   [ ${NETWORKING} = "no" ] && exit 0  
  32.  
  33.   [ -x /usr/local/sbin/vsftpd ] || exit 0  
  34.  
  35.   RETVAL=0 
  36.  
  37.   prog="vsftpd" 
  38.  
  39.   start() {  
  40.  
  41.   # Start daemons.  
  42.  
  43.   if [ -d /etc/vsftpd ] ; then  
  44.  
  45.   for i in `ls /etc/vsftpd/*.conf`; do  
  46.  
  47.   site=`basename $i .conf`  
  48.  
  49.   echo -n $"Starting $prog for $site: "  
  50.  
  51.   /usr/local/sbin/vsftpd $i &  
  52.  
  53.   RETVAL=$?  
  54.  
  55.   [ $RETVAL -eq 0 ] && {  
  56.  
  57.   touch /var/lock/subsys/$prog  
  58.  
  59.   success $"$prog $site"  
  60.  
  61.   }  
  62.  
  63.   echo  
  64.  
  65.   done  
  66.  
  67.   else  
  68.  
  69.   RETVAL=1 
  70.  
  71.   fi  
  72.  
  73.   return $RETVAL  
  74.  
  75.   }  
  76.  
  77.   stop() {  
  78.  
  79.   # Stop daemons.  
  80.  
  81.   echo -n $"Shutting down $prog: "  
  82.  
  83.   killproc $prog  
  84.  
  85.   RETVAL=$?  
  86.  
  87.   echo  
  88.  
  89.   [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog  
  90.  
  91.   return $RETVAL  
  92.  
  93.   }  
  94.  
  95.   # See how we were called.  
  96.  
  97.   case "$1" in  
  98.  
  99.   start)  
  100.  
  101.   start  
  102.  
  103.   ;;  
  104.  
  105.   stop)  
  106.  
  107.   stop  
  108.  
  109.   ;;  
  110.  
  111.   restart|reload)  
  112.  
  113.   stop  
  114.  
  115.   start  
  116.  
  117.   RETVAL=$?  
  118.  
  119.   ;;  
  120.  
  121.   condrestart  
  122.  
  123.   if [ -f /var/lock/subsys/$prog ]; then  
  124.  
  125.   stop  
  126.  
  127.   start  
  128.  
  129.   RETVAL=$?  
  130.  
  131.   fi  
  132.  
  133.   ;;  
  134.  
  135.   status)  
  136.  
  137.   status $prog  
  138.  
  139.   RETVAL=$?  
  140.  
  141.   ;;  
  142.  
  143.   *)  
  144.  
  145.   echo $"Usage: $0 {start|stop|restart|condrestart|status}"  
  146.  
  147.   exit 1  
  148.  
  149.   esac  
  150.  
  151.   exit $RETVAL  
  152.  

  保存文件,再给该文件加上执行权限:

  1.   # chmod 755 /etc/rc.d/init.d/vsftpd  
  2.  

  这样我们就可以通过下面的方法来管理服务了:

  1.   # service vsftpd {start|stop|restart|condrestart|status}  
  2.  

  例如重新启动服务:

  1.   # service vsftpd restart  
  2.  
  3.   Shutting down vsftpd: [OK ]  
  4.  
  5.   Starting vsftpd for vsftpd: [OK ]  

【编辑推荐】

  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...