1、安装最新版的vsftp
从官方下载,严格按照安装说明执行。
2、采用xinetd代替inetd
启动vsftpd可以采用三种方式:inetd、xinetd和standalone(独立)工作模式。由于目前使用的xinetd扩展了inetd,它比inetd更加高效和实用,包括诸如请求记录、访问控制、将业务与网络接口绑定等改进,所以通常使用xinetd,本文将介绍xinetd以及standalone两种启动方式。
1.xinetd方式启动
使用该启动方式,在上述的配置文件当中,应该将listen=YES设为listen=NO,并且使用如下命令将vsftpd的文档目录拷贝到/etc/xinetd.d目录下:
# cp /usr/share/doc/vsftpd-1.1.3/vsftpd.xinetd /etc/xinetd.d/vsftpd
此外还要注意把配置文件复制到/etc下,因为xinetd调用/etc下的配置文件:
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd.conf
# 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
此后,当disable=no时,为开启vsftpd,反之亦然。用这种模式只在有人登陆ftp是方开启vsftpd,平时是关闭的。
(为了保险,把/etc/init.d/vsftpd这个文件删除。其实最好的备份到别处,因为可能还会转到standalone模式启动。
[root@linuxsir001 root]#mkdir /root/backup
[root@linuxsir001 root]# mv /etc/init.d/vsftpd /root/backup
运行ntsysv,把vsftpd的服务取消
[root@linuxsir001 root]#ntsysv
[ ] vsftpd
)
2.独立工作模式启动
vsftpd也可以工作在独立工作模式下。这样,我们需要再次打开“/etc/vsftpd.conf”做如下修改:
# Shall the vsftp daemon run in standalone operation? YES/NO
listen=YES
3.采用tcp_wrappers限制IP访问
如果要配合vsftpd使用,需要在编译时加入对tcp_wrappers的支持。编辑“builddefs.h”文件,将“#undef VSF_BUILD_TCPWRAPPERS”修改为“#define VSF_BUILD_TCPWRAPPERS”,然后重新构建编译,生成可执行代码。其次,要开启在配置文件vsftpd.conf中的选项 “tcp_wrappers=YES”。该功能依赖于对文件“/etc/hosts.allow”的配置。以下是一个样例:
vsftpd: 192.168.1.3: setenv VSFTPD_LOAD_CONF /etc/vsftpd_tcp_wrap.conf
vsftpd: 192.168.1.4: DENY
其中,第一行表示如果一个客户端从192.168.1.3连接,那么vsftpd将应用“/etc/vsftpd_tcp_wrap.conf”的 vsftpd配置文件给该连接。这些设置被应用在默认的vsftpd.conf之前。这一点十分有用,可用它为一些IP应用不同的访问限制(例如上传的能力);还可以指定某些IP有能力来超越连接限制(max_clients=0);或者为某些IP增减带宽限制。第二行表示拒绝192.168.1.4连接的能力。这一点对别有用心的连接者很有用。