现在的位置: 首页linux>正文
rss
centos 5.5编译安装vsftpd-2.3.4配置虚拟用户 [原创]
2011年05月13日 linux 评论数 6 ⁄ 被围观 24,726 次+

centos 5.5编译安装vsftpd-2.3.4配置虚拟用户

环境:centos 5.5+vsftpd-2.3.4

一、下载当前vsftp最新版本

  1. wgetftp://vsftpd.beasts.org/users/cevans/vsftpd-2.3.4.tar.gz
  2. 貌似最近官方都下不了,在补一个本站的下载地址:
  3. wgethttp://www.xinqingchina.com/downloads/vsftpd-2.3.4.tar.gz

二、安装前准备

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

  1. useraddwwwftp-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-rwwwftp:www /data/www
  2. chmod-r 700 /data/soft/vsftpd/empty/
  3. chown-rwwwftp:wwwftp/data/soft/vsftpd/empty/

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

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

5、安装所需软件

  1. yum-yinstallgccdb4*pam*

三、解压安装vsftpd

  1. tarzxvfvsftpd-2.3.4.tar.gz
  2. cdvsftpd-2.3.4

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

需要修改builddefs.h

  1. /*默认值如下:*/
  2. #undefvsf_build_tcpwrappers/*是否支持tcpwrappers*/
  3. #definevsf_build_pam/*是否支持自定义虚拟用户登录*/
  4. #undefvsf_build_ssl/*是否支持ssl传输*/
  5. /*支持则将对应项设为define,否则设为undef*/

编译vsftpd

  1. make

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

  1. lddvsftpd

如下:

  1. [root@centos5 vsftpd-2.3.4]#lddvsftpd
  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. cpvsftpd/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 toftpservice.
  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. authrequired /data/soft/vsftpd/lib/pam_userdb.so db=/data/soft/vsftpd/login
  2. accountrequired /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-thash-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登录仅有下载权限
vsftpd

本文地址:/21/633.html
如非注明则为本站原创文章,欢迎转载。转载请注明转载自:moon's blog
 

目前有 6 条留言 其中:访客:3 条, 博主:3 条

  1. okpan : 2011年06月28日20:53:19  1楼

    ftp登陆时总提示密码错误,是什么原因?

    • clairelume : 2011年06月28日21:00:43

      setup然后authentication configuretion –> 选择local authorization is sufficient

      • okpan : 2011年06月29日17:02:33

        已经选择了,还是这样,信息:530 login incorrect.

        • clairelume : 2011年06月29日17:51:41

          具体是什么系统centos还是rhel?rhel的/etc/pam.d/vsftpd 内容不一样 :?:

  2. 少年药王 : 2012年05月04日10:44:42  2楼

    每次登陆ftb的时候是不是都要清除一下。才能上去。

    • clairelume : 2012年05月04日11:27:03

      清除一下? :?: