Chinaunix首页 | 论坛 | 博客
  • 博客访问: 89357
  • 博文数量: 12
  • 博客积分: 155
  • 博客等级: 入伍新兵
  • 技术积分: 113
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-19 10:40
文章分类

全部博文(12)

文章存档

2017年(7)

2013年(1)

2012年(4)

分类: LINUX

2012-02-23 12:50:15

为什么要创建虚拟用户匿名帐户:

可以很好的保证FTP服务器的安全性,但是,对匿名用户的权限管理不够灵活,如果想对访问FTP的帐户给予更多的权限,就可以用本地帐户来实现,但是,本地帐户默认情况下是可以登录linux系统的,这样对linux系统来说是一个安全隐患。如果使用虚拟用户那么既能灵活的赋予FTP用户权限又能保证FTP己整个linux的安全。


原理:

虚拟用户不是一个合法的linux系统帐户,但可以登录系统上运行的FTP服务器,当用户在连接上FTP服务器后,会被要求输入用户名和密码。FTP服务器拿到这个用户名和密码后,会调用相应的PAM模块,将此用户名和密码与FTP认证文件进行比较,如果相符就通过认证并被映射成一个linux下的本地帐户,然后根据使用本地帐户对FTP资源进行访问,否则断开连接请求。
  

1.  下载软件db4_utils-4.3.29-10.el5

2.   建一个本地帐户 useradd -d /etc/vsftpd/ftproot -s /sbin/nologin virtual

3.   将目录/etc/vsftpd/ftproot的权限改为755,让虚拟用户有权限可以访问。

4.   在建一个文件/etc/vsftpd/user.txt 并写入虚拟用户的用户名和密码,奇数行为用户名,偶数行为密码。

5.    用命令db-load 将文件user.txt 转化为数据库文件
      Db_load -T -t hash -f /etc/vsftpd/user.txt /etc/vsftpd/user.db

6.    在/etc/pam.d/下创建文件vsftpd.vu并编辑文件
      Auth required  /lib/security/pam_userdb.so /etc/vsftpd/user.db

      Account required /lib/security/pam_userdb.so /etc/vsftpd/user.db

7.   编辑/etc/vsftpd/vsftpd.conf
         anonymous_enable=yes
         local_enable=yes
         guest_enable=yes  ----→注: 此项开启后本地所有用户便不能登录了,即使local_enable=yes        (可以自行验证)
         guest_username=virtual   -------> 指明映射的本地用户
         pam_service_name=vsftpd.vu  ------> pam认证的文件名(/etc/pam.d/vsftpd.vu)
         Tcp_wrappers=yes
    

8.  重启服务 service vsftpd restart

进行到这里创建虚拟用户的基本过程就做完了。
   

如果要对不同的虚拟用户进行不同的权限控制可在/etc/vsftpd/vsftpd.conf中加入user_config_dir=/etc/vsftpd/user_config/。/etc/vsftpd/user_config/是虚拟用户自己额外的配置文件的所在目录

阅读(3207) | 评论(1) | 转发(2) |
0

上一篇:Linux 计划任务

下一篇:集群的DR模式

给主人留下些什么吧!~~

he5643108832013-03-19 07:52:34

guest_enable=yes  ----→注: 此项开启后本地所有用户便不能登录了,即使local_enable=yes        (可以自行验证)

经过本人测试,开启此项后,本地用户均能登录,登录后的家目录为/var/ftp,且不能切换目录,即按照匿名用户来对待。

不知道LZ的结论是怎么来的,希望LZ能亲自测试一下。
共勉!