- 论坛徽章:
- 0
|
本帖最后由 w80286 于 2010-04-05 10:24 编辑
FTP区置顶贴里有一篇文章:vsftp配置大全---超完整版,首发CU之FTP区
我是一个新手,我看这篇文章的内容很旧了,跟现在的系统有一定的区别,各位高手能不能帮忙更新一下关于vsftp的配置文档。
比如说我正在看的虚拟用户配置文档:
3、虚拟用户形式实现(db及mysql形式)
# cd /home/xuchen/vsftpd-2.0.3 //进入vsftpd-2.0.3的源代码目录
# make clean //清除编译环境
# vi builddefs.h \\继续编辑builddefs.h 文件,文件内容如下:
#ifndef VSF_BUILDDEFS_H
#define VSF_BUILDDEFS_H
#define VSF_BUILD_TCPWRAPPERS
#undef VSF_BUILD_PAM
#define VSF_BUILD_SSL
#endif /* VSF_BUILDDEFS_H */
将以上define VSF_BUILD_PAM行的undef改为define,支持tcp_wrappers,支持PAM认证方式,支持SSL,和匿名用户形式是一样的。
# make //直接在vsftpd-2.0.3里用make编译
# ls -l vsftpd
-rwxr-xr-x 1 root root 86088 Jun 6 22:26 vsftpd //可执行程序已被编译成功
创建必要的帐号,目录:
# useradd nobody //可能你的系统已经存在此帐号,那就不用建立
# mkdir /usr/share/empty //可能你的系统已经存在此目录,那就不用建立
# mkdir /var/ftp //可能你的系统已经存在此目录,那就不用建立
# useradd -d /var/ftp ftp //可能你的系统已经存在此帐号,那就不用建立
# chown root:root /var/ftp
# chmod og-w /var/ftp
请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,比如以上的nobody和ftp我就设置成/sbin/nologin
安装vsftp配置文件,可执行程序,man等:
# install -m 755 vsftpd /usr/local/sbin/vsftpd-pam
# install -m 644 vsftpd.8 /usr/share/man/man8
# install -m 644 vsftpd.conf.5 /usr/share/man/man5
# install -m 644 vsftpd.conf /etc/vsftpd-pam.conf
这样就安装完成了,那么我们开始进行简单的配置
对于用DB库存储用户名及密码的方式来说:
(1)查看系统是否有相应软件包
# rpm –qa | grep db4
db4-devel-4.2.52-7.1
db4-4.2.52-7.1
db4-utils-4.2.52-7.1
(2)建立一个logins.txt的文件,单行为用户名,双行为密码,例如
# vi /home/logins.txt
xuchen
12345
(3)建立数据库文件并设置文件属性
# db_load -T -t hash -f /home/logins.txt /etc/vsftpd_login.db
# chmod 600 /etc/vsftpd_login.db
(4)建立认证文件
# vi /etc/pam.d/ftp 插入如下两行
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
(5)建立一个虚拟用户
useradd -d /home/vsftpd -s /sbin/nologin vsftpd
ls -ld /home/vsftpd
drwx------ 3 vsftpd vsftpd 1024 Jun 6 22:55 /home/vsftpd/
(6)编写配置文件(注意事项请参看匿名用户的配置,这里不再赘述)
# vi /etc/vsftpd-pam.conf
listen=YES
listen_port=21
tcp_wrappers=YES //支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny)
listen=YES的意思是使用standalone启动vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推荐使用standalone方式)
anonymous_enable=NO
local_enable=YES //PAM方式此处必须为YES,如果不是将出现如下错误:
500 OOPS: vsftpd: both local and anonymous access disabled!
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=vsftpd //这两行的意思是采用虚拟用户形式
virtual_use_local_privs=YES //虚拟用户和本地用户权限相同
pasv_enable=YES //建立资料联机采用被动方式
pasv_min_port=30000 //建立资料联机所可以使用port 范围的上界,0表示任意。默认值为0。
pasv_max_port=30999 //建立资料联机所可以使用port 范围的下界,0表示任意。默认值为0。
(7)启动程序
# /usr/local/sbin/vsftpd-pam /etc/vsftpd-pam.conf &这句,现在就不是这样启动的了,不知道怎么弄。
(8)测试连通及功能
# vi /home/vsftpd/test //建立一个文件,内容如下
1234567890
# chown vsftpd.vsftpd /home/vsftpd/test
# ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 2.0.3)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (127.0.0.1:root): xuchen
331 Please specify the password.
Password: |
|