32ew12 发表于 2015-3-27 09:36:31

建立vsftpd虚拟用户,保障服务器安全

FTP有三种方式:
匿名登录:如ftp或anonymous。
本地用户登录:使用系统用户登录,在/etc/passwd中。
虚拟用户登录:这是FTP专有用户
      FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。虚拟用户将被映射成一个本地账户来进行访问。
一.检查是否安装了PAM认证所需软件
    rpm -qa|grep db4
    db4-devel-4.7.25-17.el6.x86_64
    db4-cxx-4.7.25-17.el6.x86_64
    db4-4.7.25-17.el6.x86_64
    db4-utils-4.7.25-17.el6.x86_64
    如上结果表示已经成功安装
二.建立本地账户和ftp根目录,并更改权限
   useradd -d /home/ftpsite vftpuser
    chmod 770 /home/ftpsite/
三.建立虚拟账户
1.建立虚拟账户文件

# vi account.txt ,该文件名称随意
alex
123
tom
456
单数行为用户名,偶数行为对应的密码
2.生成虚拟账户口令认证文件
# db_load –T –t hash –f /etc/vsftpd/account.txt      /etc/vsftpd/account.db         

之后可以删除账户文件account.txt,我们只需要account.db
三.编辑vsftpd的PAM文件
# vi /etc/pam.d/vsftpd
将其中所有内容注释掉并添加以下内容
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/account
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/account
注意以上文件的路径

四.编辑vsftpd配置文件vsftpd.conf
在配置文件最后添加如下内容:

guest_enable=yes      表示开启虚拟用户
guest_username=vftpuser表示虚拟用户对应的本地用户,即步骤一种建立的用户
virtual_use_local_privs=YES表示虚拟用户获得与本地用户相同权限
pam_service_name=vsftpd对应的PAM文件,即步骤三中配置的文件
五.重新启动vsftpd,验证虚拟用户登录。
六.在当前配置下所有的虚拟用户登录后都是在/home/ftpsite目录下,我们也可以对各个用户的权限和   默认目录分别进行设置。
1.在vsftpd.conf中添加如下行,指明虚拟用户的配置文件所在目录

   user_config_dir=/etc/vsftpd/user_config
2.在目录user_config下新建用户alex 和tom 的配置文件,在文件中指明用户的读写权限和根目录
    # vi alex
      write_enable=yes    写权限
      local_root=/home/ftpsite/alex   alex用户的根目录
在/home/ftpsite/下新建alex目录和tom目录,并更改属组
    # mkdir /home/ftpsite/alex
    chown vftpuser:vftpuser /home/ftpsite/alex
这样alex和tom只对自己的目录有读写权限

页: [1]
查看完整版本: 建立vsftpd虚拟用户,保障服务器安全