手机版
你好,游客 登录 注册
背景:
阅读新闻

Linux FTP虚拟用户实现之vsftpd

[日期:2013-11-01] 来源:Linux社区  作者:pingdan [字体: ]

vsftpd可以支持虚拟用户,这样这些用户跟系统用户不搭嘎,只能访问FTP服务提供的资源,系统势必就要安全的多了。我们实现FTP匿名用户可以有两种方式,可以把虚拟用户列表保存到本地一个数据文件中,也可以把数据保存至数据库文件中。下面分别介绍两种实现方式:

本地数据文件方式:

环境及需求:CentOS5.8

软件包:vsftpd, db4-utils(要用到其提供的db_load工具把文本格式的用户列表转换成二进制的数据格式供vsftpd使用)

1、安装所需软件包

yum –y install vsftpd db4-utils

2、创建用户口令文件

[root@ha1 vsftpd]# cd /etc/vsftpd/
[root@ha1 vsftpd]# vim vuser

tom /*奇数行为用户名
tompwd /*偶数行为上面用户的密码
jerry
jerrypwd

3、生成用户口令文件,并记得更改文件权限只有root有读写权限

[root@ha1 vsftpd]# db_load -T -t hash -f vuser vuser.db
[root@ha1 vsftpd]# ls
chroot_list ssl vsftpd.conf vuser
ftpusers user_list vsftpd_conf_migrate.sh vuser.db

[root@ha1 vsftpd]# chmod 700 vuser vuser.db
[root@ha1 vsftpd]# ll vuser vuser.db
-rwx------ 1 root root 26 Oct 29 13:40 vuser
-rwx------ 1 root root 12288 Oct 29 13:42 vuser.db

4、为其提供PAM的配置文件

[root@ha1 vsftpd]# cd /etc/pam.d/
[root@ha1 pam.d]# vim vsftpd.vuser

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser 注意这里db文件名后面的.db不用带上,这个相当于后缀吧,.db前面的才是文件名
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser

5、创建虚拟用户映射的系统用户,指定其家目录,不需要登陆权限及密码

[root@ha1 pam.d]# useradd -d /var/ftp/vuser -s /sbin/nologin vftpuser
[root@ha1 pam.d]# ll -d /var/ftp/vuser/
drwx------ 3 vftpuser vftpuser 4096 Oct 29 13:55 /var/ftp/vuser/

6、编辑vsftpd配置文件使其支持虚拟用户

[root@ha1 pam.d]# vim /etc/vsftpd/vsftpd.conf #添加以下几行

guest_enable=YES /*启用虚拟用户
guest_username=vftpuser /*指定FTP虚拟用户映射到的系统用户
pam_service_name=vsftpd.vuser /*定义PAM认证文件

保存退出,重启vsftpd服务

service vsftpd restart

7、用虚拟账号登陆验证,可以看到可以成功使用tom账号登陆ftp并且上传文件,文件位于vftpuser家目录/var/ftp/vuser下

[root@ha1 pam.d]# !ftpftp 192.168.188.128 Connected to 192.168.188.128.220 (vsFTPd 2.0.5) 530 Please login with USER and PASS.530 Please login with USER and PASS. KERBEROS_V4 rejected as an authentication type Name (192.168.188.128:root): tom 331 Please specify the password. Password:230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> pwd 257"/" ftp> lcd /etc/Local directory now /etc ftp> put issue local: issue remote: issue 227 Entering Passive Mode (192,168,188,128,231,93) 150 Ok to send data.226 File receive OK.47 bytes sent in 0.0045 seconds (10 Kbytes/s) ftp> bye 221 Goodbye. [root@ha1 pam.d]# ls /var/ftp/vuser/issue

更多详情见请继续阅读下一页的精彩内容 http://www.linuxidc.com/Linux/2013-11/92210p2.htm 

推荐阅读:

玩转vsftpd服务器的四大高级配置:http://www.linuxidc.com/Linux/2013-09/90565.htm

vsFTPd配置教程:http://www.linuxidc.com/Linux/2013-09/90562.htm

Ubuntu实用简单的FTP架设 http://www.linuxidc.com/Linux/2012-02/55346.htm

Ubuntu 上架设FTP服务器和Apache服务器 http://www.linuxidc.com/Linux/2011-04/35295.htm

Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

RHEL6平台下SeLinux和vsftpd的匿名上传的简单案例 http://www.linuxidc.com/Linux/2013-04/82300.htm

Linux系统vsftpd源码安装 http://www.linuxidc.com/Linux/2013-03/81475.htm

vsftpd的安全配置案例分析 http://www.linuxidc.com/Linux/2012-12/76501.htm

linux
相关资讯       vsftpd 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款