步聚:
1,下载源代码 http://download.chinaunix.net/down.php?id=34&ResourceID=19&site=1
2,编译源代码,可参考帮助文件INSTALL。
# tar zvxf vsftd-xxx.tar.gz
# cd vsftd-xxx
# more INSTALL 里面详细介绍安装过程
# make 生成二进制文件
# make install 安装 注意和上面的INSTALL的大小写区别
3,安装配置文件
# cp vsftpd.conf /etc
# cp RedHat/vsftpd.pam /etc/pam.d/ftp cp成ftp文件,不做这步,服务器无法识别用户
4,编辑配置文件
# vi /etc/vsftpd.conf
在最未尾加入 listen = YES
5,启动服务器
# /usr/local/sbin/vsftpd &
6,创建HOME目录,也就是ftp服务器的默认目录 /var/ftp
# mkdir /var/ftp
# chown root.root /var/ftp
# chmod og-w /var/ftp
注:查询FTP用户可以用 # finger ftp
7,为了让服务开机运行,需要在/etc/rc.local编辑加入
/usr/local/sbin/vsftpd & 就是第5步的命令
8,还需要编辑/etc/xinetd.d/vsftpd文件,把其中的 disable = no 改为 YES 才行
要不重启后连接会出现:500 00PS: could not bind listening IPv4 socket!的错误,这是系统默认启动用xinetd模式。经过上面设置把FTP改成独立模式就行了。
---------------------------------------------------------------------------------------------------------------------------------
还有关于/etc/vsftpd.conf配置文件的设置项:
anonymouse_enable=yes #允许匿名登入
local_enable=yes #允许本地用户登入(一般500以下的用户无法登入)
write_enable=yes #允许客户端写命令
local_umask=022(644) #本地用户登入后创建文件的umask值(666-022)
anon_upload_enable=yes #允许匿名用户上传文件
anon_mkdir_write_enable=yes #允许匿名用户创建目录
dirmessage_enable=yes #允许使用目录消息
ftpd_banner=Welcome to my Ftp! #登入欢迎词
ls_recurse_enable=yes #允许客户端使用ls -R命令
listen=yes #监听模式,独立运行FTP模式要使用这个
附:用匿名用户登入服务器默认的是不能切换上层目录,登入后用PWD看到的也是/根目录,但是如用本地用户登入,默认登入的是自己的HOME目录,使用PWD可以看到目录登入的目录,然后用cd目录切换可以切换,为了不让本地用户有这种功能,我们可以修改/etc/vsftpd.conf配置文件,把其中的:
chroot_list_enable=yes
chroot_list_files=/etc/vsftpd.chroot_list 这两项注释去除,
然后再新建/etc/vsftpd.chroot_list文件。。把要限制的用户加入这个文件里,格式为一个用户一行,例:
redhat
test
-----------------------------------------------------------------------------------------------------------------------------------
9,用户控制(/etc/ftpusers)
编辑/etc/ftpusers文件,增加要限制的用户,格式为一个用户一行。
注:默认设置这个文件是代表拒绝用户登入的,但是我们可以通过修改/etc/pam.d/ftp中的sense值为allow,(默认为deny),那这个文件里的用户就表示只允许登入的用户了,所以这两个是相关的。
-----------------------------------------------------------------------------------------------------------------------------------
10,为了让别人不能套出我们的帐号,我们可以建立虚拟帐号来提供连入FTP服务器(和samba的映射差不多)。
(1) 建立虚拟帐号文件user.txt,内容为要登入的用户名和密码,格式为,一行用户名,一行密码,例:
test (登入的用户名,此用户为虚拟用户,在系统中不能有此用户)
123 (登入的密码)
(2) 用db_load命令把user.txt生成一个数据库
# db_load -T -t hash -f user.txt /etc/vsftp_login.db (文件名可以自己取)
#chmod 600 /etc/vsftp_login.db (为了安全把此文件设成600,不让别人看到)
(3) 再修改/etc/pam.d/ftp文件,把其它的都注释掉,然后增加:
auth required pam_userdb.so db=/etc/vsftp_login
account required pam_userdb.so db=/etc/vsftp_login 这个一定要和上面创建的一样。
(4)建立虚拟帐号目录(就是虚拟用户登入进来的目录)
# useradd vuser
(5) 再行编辑 /etc/vsftpd.conf 文件,禁止匿名用户
anonymouse_enable=no
local_enable=yes
write_enable=no
anon_upload_enable=no
anon_mkdir_write_enable=no
anon_other_write_enable=no
guest_enable=YES
guest_username=vuser (就是上面创建的用户,这两项都是增加的)
这样之后,都建好了。只有test这个虚拟用户能登入这个ftp服务器。
把vsftpd模式做为主动模式pasv
connect_from_port_20=YES
listen_port=21
pasv_enable=no
#pasv_min_port=9880
#pasv_max_port=9990
保存退出
http://hi.baidu.com/pingfanren_lcs/blog/item/651bdba2e1159daecaefd0f6.html 链接别人的