之前用系统账户作为ftp的登录账户,比较不安全,改用虚拟账户。步骤如下:

 

1.安装vsftpd、db_load,省略

2.在一个目录创建一个用户名密码文件,比如

[plain] view plain copy

  1. vi login.txt #输入用户名密码奇数行是用户名、偶数行是密码  

  2. test1  

  3. testpwd  

  4. test2  

  5. testpwd  

3.生成db文件

[plain] view plain copy

  1. db_load –T –t hash –f login.txt /etc/vsftpd/vsftpd_login.db  

4.修改权限

[plain] view plain copy

  1. chmod 600 /etc/vsftpd/vsftpd_login.db  

5.配置pam文件

[plain] view plain copy

  1. vi /etc/pam.d/vsftpd.v #输入以下配置  

  2. auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login  

  3. account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login  

  4. #后来登录ftp出现530错误,需要把上面两行改为:可能是跟64位系统有关  

  5. auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login  

  6. account required pam_userdb.so db=/etc/vsftpd/vsftpd_login  

6.创建虚拟用户

[plain] view plain copy

  1. useradd vsftpd -d /usr/local/vsftpd -s /sbin/nologin  

-d 指定home目录,-s设置成不可登录系统的用户

修改目录权限chown -R vsftpd /usr/local/vsftpd

7.修改vsftpd配置文件

[plain] view plain copy

  1. vi /etc/vsftpd/vsftpd.conf  

  2. anonymous_enable=NO  

  3. dirmessage_enable=YES  

  4. chroot_local_user=YES  

  5. guest_enable=YES  

  6. guest_username=vsftpd  

  7. pam_service_name=vsftpd.v  

  8. user_config_dir=/etc/vsftpd/v_user_conf  

  9. local_root=/usr/local/vsftpd  

8.创建用户配置文件

[plain] view plain copy

  1. cd /etc/vsftpd  

  2. mkdir v_user_conf  

  3. vi v_user_conf/test1 #给全部权限,限定根目录  

  4. local_root=/usr/local/vsftpd/test1  

  5. anon_world_readable_only=NO  

  6. write_enable=YES  

  7. anon_mkdir_write_enable=YES  

  8. anon_upload_enable=YES  

  9. anon_other_write_enable=YES  

  10.   

  11. vi v_user_conf/test2 #给全部权限,限定根目录  

  12. local_root=/usr/local/vsftpd/test2  

  13. anon_world_readable_only=NO  

  14. write_enable=YES  

  15. anon_mkdir_write_enable=YES  

  16. anon_upload_enable=YES  

  17. anon_other_write_enable=YES  

9.重启vsftpd

[plain] view plain copy

  1. service vsftpd restart  

用设置的test1、test2登录可以了。



vsftpd配置文件详解:http://zlyang.blog.51cto.com/1196234/1831080