1、安装
yum -y install vsftpd db4-utils (db_load工具,用户加密用户名密码文件,生成.db文件)
2、生成验证用户名密码数据库
vim /etc/vsftpd/login.txt
aaa (用户名)
123456 (密码)
bbb (用户名)
asdf(密码)
ccc (用户名)
7654(密码)
保存退出
保存虚拟帐号和密码的文本文件无法被系统帐号直接调用哈~我们需要使用db_load命令生成db口令数据库文件
数据库文件中保存着虚拟帐号的密码信息,为了防止非法用户盗取哈,我们可以修改该文件的访问权限。生成的认证文件的权限应设置为只对root用户可读可写,即600
[root@red-hat-5 /]# chmod 600 /etc/vsftpd/vsftpd_login.db
为了使服务器能够使用数据库文件,对客户端进行身份验证,需要调用系统的PAM模块.PAM(Plugable Authentication Module)为可插拔认证模块,不必重新安装应用系统,通过修改指定的配置文件,调整对该程序的认证方式。PAM模块配置文件路径为/etc/pam.d/目录,此目录下保存着大量与认证有关的配置文件,并以服务名称命名。
笔者在生产环境下用的配置:
[root@demo-PG vsftpd]# cat vsftpd.conf| grep -v "^#"
anonymous_enable=NO 禁用匿名用户登录
local_enable=YES 启用本地用户登录设置
write_enable=YES 允许使用任何可以修改文件系统的FTP的指令
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ftpd_banner=Please must be use english name for file or directory!
listen=YES
pasv_enable=YES 允许PASV模式进行数据传输
pasv_min_port=65520 PASV模式下数据传输所使用port范围下界
pasv_max_port=65530 PASV模式下数据传输所使用port范围上界
user_config_dir=/etc/vsftpd/login 设置虚拟帐号的主目录为/etc/vsftpd/login
pam_service_name=vsftpd 配置vsftpd使用的PAM模块为vsftpd
userlist_enable=YES
tcp_wrappers=YES
总计 16
-rw-r--r-- 1 root root 117 09-17 15:53 aaa
-rw-r--r-- 1 root root 115 09-17 16:27 bbb
-rw-r--r-- 1 root root 115 09-17 16:27 ccc
guest_username=vsftp 映射此虚拟用户对应的本地系统用户
anon_world_readable_only=NO
guest_enable=YES
guest_username=vsftp
anon_upload_enable=YES
guest_username=vsftp
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
service vsftpd restart
配置完成!
user_config_dir=/etc/vsftpd ,这段配置文件就是告诉vsftpd,当虚拟用户登录成功后(也许是在登陆时)就会读取这个目录下的与虚拟用户名一直的配置文件,注意 user_config_dir 的值是目录的名称,而且此目录下一定要有和虚拟用户名称一样的配置文件