一、下载当前vsftp最新版本

  1. wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.3.4.tar.gz    

  2. 貌似最近官方都下不了,在补一个本站的下载地址:   

  3. wget http://www.92csz.com/downloads/vsftpd-2.3.4.tar.gz  

二、安装前准备

1、创建虚拟用户映射的本地用户wwwftp

  1. useradd wwwftp -d /data/www -s /sbin/nologin

2、创建自定义配置目录

  1. mkdir -p /data/soft/vsftpd/conf

  2. mkdir -p /data/soft/vsftpd/bin

  3. mkdir -p /data/soft/vsftpd/lib

  4. mkdir -p /data/soft/vsftpd/user_conf

  5. mkdir -p /data/soft/vsftpd/empty

  6. mkdir -p /data/soft/vsftpd/logs

  7. mkdir -p /data/www

  8. mkdir -p /data/www/user1

  9. mkdir -p /data/www/user2

3、对自定义目录设置权限

  1. chown -R wwwftp:www /data/www

  2. chmod -R 700 /data/soft/vsftpd/empty/

  3. chown -R wwwftp:wwwftp /data/soft/vsftpd/empty/

4、复制用于验证用户登录的库文件到自定义目录方便管理

  1. cp /lib/security/pam_userdb.so /data/soft/vsftpd/lib/

5、安装所需软件

  1. yum -y install gcc db4* pam*

三、解压安装vsftpd

  1. tar zxvf vsftpd-2.3.4.tar.gz

  2. cd vsftpd-2.3.4

源码安装默认不支持tcp_wrappers和ssl

需要修改builddefs.h

  1. /*默认值如下:*/

  2. #undef VSF_BUILD_TCPWRAPPERS  /*是否支持TCP WRAPPERS*/

  3. #define VSF_BUILD_PAM  /*是否支持自定义虚拟用户登录*/

  4. #undef VSF_BUILD_SSL  /*是否支持SSL传输*/

  5. /*支持则将对应项设为define,否则设为undef*/

编译vsftpd

  1. make

查看编译的vsftpd二进制文件是否加载了pam

  1. ldd vsftpd

如下:

  1. [root@CentOS5 vsftpd-2.3.4]# ldd vsftpd

  2. linux-gate.so.1 =>  (0x00628000)

  3. libwrap.so.0 => /lib/libwrap.so.0 (0x00cee000)

  4. libnsl.so.1 => /lib/libnsl.so.1 (0x0015f000)

  5. libpam.so.0 => /lib/libpam.so.0 (0x00fc4000)

  6. libdl.so.2 => /lib/libdl.so.2 (0x007dc000)

  7. libresolv.so.2 => /lib/libresolv.so.2 (0x008d8000)

  8. libutil.so.1 => /lib/libutil.so.1 (0x00110000)

  9. libcap.so.1 => /lib/libcap.so.1 (0x00d99000)

  10. libc.so.6 => /lib/libc.so.6 (0x0029a000)

  11. libaudit.so.0 => /lib/libaudit.so.0 (0x00114000)

  12. /lib/ld-linux.so.2 (0x004a2000)

看到libpam.so.0 => /lib/libpam.so.0 (0x00fc4000)表示已成功加载pam认证模块

  1. cp vsftpd /data/soft/vsftpd/bin

四、配置vsftpd

1、创建主配置文件

  1. vi /data/soft/vsftpd/conf/vsftpd.conf

如下:

  1. local_enable=YES

  2. anonymous_enable=NO

  3. anon_upload_enable=NO

  4. anon_other_write_enable=NO

  5. anon_mkdir_write_enable=NO

  6. ftpd_banner=Welcome to FTP service.

  7. listen=YES

  8. listen_port=21

  9. connect_from_port_20=YES

  10. nopriv_user=nobody

  11. tcp_wrappers=YES

  12. chroot_local_user=NO

  13. chroot_list_enable=YES

  14. chroot_list_file=/data/soft/vsftpd/chroot_list

  15. userlist_enable=yes

  16. userlist_deny=no

  17. userlist_file=/data/soft/vsftpd/allow

  18. dual_log_enable=YES

  19. vsftpd_log_file=/data/soft/vsftpd/logs/vsftpd.log

  20. xferlog_enable=YES

  21. xferlog_file=/data/soft/vsftpd/logs/xferlog

  22. pasv_enable=YES

  23. pasv_min_port=50000

  24. pasv_max_port=60000

  25. guest_enable=YES

  26. guest_username=wwwftp

  27. pam_service_name=vsftpd

  28. virtual_use_local_privs=YES

  29. use_localtime=YES

  30. user_config_dir=/data/soft/vsftpd/user_conf

  31. secure_chroot_dir=/data/soft/vsftpd/empty

2、创建允许登录ftp的用户文件

  1. vi /data/soft/vsftpd/allow

如下:

  1. user1

  2. user2

3、创建用于锁定用户目录的用户列表文件

  1. vi /data/soft/vsftpd/chroot_list

如下

  1. user1

  2. user2

4、配置vsftpd的pam认证模块(用于虚拟用户认证)

  1. vi /etc/pam.d/vsftpd

如下

  1. auth required /data/soft/vsftpd/lib/pam_userdb.so db=/data/soft/vsftpd/login

  2. account required /data/soft/vsftpd/lib/pam_userdb.so db=/data/soft/vsftpd/login

保存退出

5、创建用户名密码文本文件

  1. vi /data/soft/vsftpd/login.txt

如下:一行用户名一行密码

  1. user1

  2. 123456

  3. user2

  4. 654321

保存退出

6、用db_load生成用户数据库

  1. db_load -T -t hash -f /data/soft/vsftpd/login.txt /data/soft/vsftpd/login.db

  2. chmod 600 /data/soft/vsftpd/login.db

  3. rm -rf /data/soft/vsftpd/login.txt

7、配置虚拟用户自定义配置文件

  1. vi /data/soft/vsftpd/user_conf/user1

user1所有权限

  1. local_root=/data/www/user1

  2. write_enable=YES

  3. local_umask=022

保存退出

  1. vi /data/soft/vsftpd/user_conf/user2

user2只允许下载

  1. local_root=/data/www/user2

  2. write_enable=NO

  3. download_enable=YES

  4. local_umask=022

保存退出

8、启动vsftpd服务

  1. /data/soft/vsftpd/bin/vsftpd /data/soft/vsftpd/conf/vsftpd.conf &

五、测试
user1登录可读、写、删除、创建、修改一切权限
user2登录仅有下载权限
CentOS 下安装ftp工具_centos下安装vsftpd

欢迎转载。转载请注明转载自:moon's blog