新闻中心

DeBian vsftpd的安装

vsftpd是一个很不错的ftp服务器软件,它的名字(very security ftpd)就告诉我们它的突出特点就是安全性。
debian下安装vsftpd十分简单,apt-get install vsfpd就可以了。它的默认的配置文件是/etc/vsftpd。网上有很多配置vsftpd的文章,而我认为只要仔细看一下/usr/share/doc/vsftpd/EXAMPLE下的例子就可以了。下面我就谈谈自己在配置中认为是重要的地方

1,如果想配置虚拟用户,只要将
guest_enable=YES
guest_username=ftp
打开就可以了。关键问题在于虚拟用户的pam 认证,我每次都是在这里出问题。首先请使用db3而不要使用db4.x的工具来生成相应数据文件,其次生成的文件名是vsftpd_login.db,而 pam认证中只需指明文件名是vsftpd_login就可以了。还有/etc/pam.d/vsftpd这个文件是用于local user登陆的,想要使用虚拟用户这个文件中应该只包含这两句话
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
关于pam配置文章可以参考书籍。

2,在默认情况下,虚拟用户有anonymous用户的权限。也就是说想让虚拟用户具有上载的权限,就必须打开anon_upload_enable=YES选项。其次默认情况下anonymous只能下载world readable权限的文件(也就是说所有人都能read),如果设置
anon_world_readable_only=NO
则能下载所有类型的文件

3,xinetd和inetd。如果想让inetd来启动vsftpd,首先在/etc/servers这个文件中加入
vsftpd 3216/tcp
即能设定vsftpd使用端口3216。然后在inetd.conf中加入下面一句话就行了
vsftpd stream tcp nowait root /usr/sbin/tcpd /usr/sbin/vsftpd

如果想使用xinetd,则在/etc/xinetd下建一个文件vsftpd,然后填入下列内容即可

service vsftpd
{
disable = no
socket_type = stream
protocal = tcp
type = UNLISTED
wait = no
user = root
server = /usr/sbin/vsftpd
port = 3216
per_source = 2
instances = 20
only_from = 166.111.0.0 219.224.0.0/16 127.0.0.1
no_access = 192.168.1.3
banner_fail = /etc/vsftpd.busy_banner
log_on_success += PID HOST DURATION
log_on_failure += HOST
}

其中如果是/etc/service中没有列出服务,则type,protocal port必须指定。
需要注意的是219.224.0.0/16是用cidr方式来表示子网掩码,它说明在32的ip地址中有16是用来表示网络的,有32-26=16位是用来表示主机的。也就是说166.111.168.0/255.255.255.0和166.111.168.0/24是一致的。