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

FTP服务器工作原理及如何通过PAM认证实现虚拟用户登录

[日期:2013-05-27] 来源:Linux社区  作者:guodayong [字体: ]

二、如何基于PAM认证实现虚拟账号登陆FTP服务器

  1. 虚拟用户和系统本地用户的区别是:本地用户在系统的/etc/passwd文件中有相应的记录,而虚拟用户时针对vsftpd本身产生的,所以与/etc/passwd没有关系。
  2. FTP服务器除了支持本地用户和匿名用户登录服务器,如果我们有许多用户来访问服务器的话,也支持虚拟用户的访问。那么我们为什么要使用虚拟账号呢,
  3. 因为匿名用户不能针对每个用户设置不同的权限,而且本地用户又存在安全问题,在这种情形下,虚拟用户就产生啦。

在配置之前我们需要安装db4和db4-utils组件,如果系统没有安装db4相关软件包的话,可以使用yum来安装 # yum install db4* -y
1、创建虚拟用户账号和密码(奇数行为用户名,偶数行为用户密码)

  1. # touch /etc/vsftpd/virtual.users
  2. # vim /etc/vsftpd/virtual.users
  3. user1 ##奇数为用户名
  4. RedHat ##偶数为用户的密码
  5. user2
  6. 123456

2、使用db_load命令生成用户账户的数据库文件并设置相应的数据库文件权限。

  1. # db_load -T -t hash -f /etc/vsftpd/virtual.users /etc/vsftpd/vsftpd.login.db
  2. # chmod 600 /etc/vsftpd/vsftpd.login.db

3、配置PAM信息,在/etc/pam.d/创建一个文件,命名为vsftpd.pam(可自定义)

  1. # vim /etc/pam.d/vsftpd.pam
  2. auth required pam_userdb.so db=/etc/vsftpd/vsftpd.login
  3. account required pam_userdb.so db=/etc/vsftpd/vsftpd.login

4、配置vsftpd.conf,我们也可以自己专为虚拟用户所使用的配置文件,这里我们使用系统默认的配置文档:
# vim /etc/vsftpd/vsftpd.conf 添加如下内容



5、创建相应的虚拟用户目录,用于虚拟用户访问FTP服务所用到的默认目录

  1. # mkdir -p /var/ftp/virtual/{user1,user2}
  2. # chown ftp.ftp /var/ftp/virtual/{user1,user2}
  3. # touch /var/ftp/virtual/user2/user2.txt (测试)

6、我们使用user2虚拟账号登陆FTP服务器,看是否可以正常登陆,并且访问相应资源

总结:我们通过使用PAM认证来实现虚拟账户的登陆,而且每个虚拟账户对应的是一个普通系统用户,而且不能正常登陆FTP服务器,所以即被中间人攻击截取用户和密码,也没有任何意义的,因为获取的是一个虚拟账户,这样我们的服务器就相对安全了许多。

linux
相关资讯       ftp服务器  PAM 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

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