您的位置:首页 > 编程语言 > PHP开发

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

2015-03-26 14:59 169 查看
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.建立虚拟账户文件

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

之后可以删除账户文件account.txt,我们只需要account.db
三.编辑vsftpd的PAM文件
[root@localhost vsftpd]# 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 的配置文件,在文件中指明用户的读写权限和根目录
[root@localhost user_config]# vi alex
write_enable=yes 写权限
local_root=/home/ftpsite/alex alex用户的根目录
在/home/ftpsite/下新建alex目录和tom目录,并更改属组
[root@localhost user_config]# mkdir /home/ftpsite/alex
chown vftpuser:vftpuser /home/ftpsite/alex
这样alex和tom只对自己的目录有读写权限
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: