Wednesday, December 29, 2004

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是一致的。

No comments: