由于业务的问题,有位客户的帐户老是出现各类问题,本人对于acl的使用又不是很会,因此和同事一块儿研究了一下这个虚拟ftp用户。linux
Centos6.5数据库
1 需求vim
为了保证系统的安全性,现对系统中vsftpd服务进行调整,主要为禁止OS本地帐户直接登陆,采用虚拟帐户;设置两个虚拟帐户,一个用于上传更新(可读可写),一个用于下载(仅读);ftp根目录/var/ftp/pub保持不变(可扩展)安全
一:基本知识服务器
1:虚拟用户:与系统无关联,不能登入系统,只能访问FTP服务器测试
2:vsftp的服务进程是vsftpdui
3:vsftpd的配置文件是/etc/vsftpd/vsftpd.conf .rest
4:vsftpd的用户文件是/etc/vsftpd/ftpusers进程
5:vsftpd的用户文件是/etc/vsftpd/user_listip
6:推荐使用虚拟用户登入vs-FTP服务器
2、安装vsftp
1,查看是否安装vsftpd服务
rpm –qa| grep vsftpd
2,安装vsftpd服务
yum -y install vsftpd
3,检查服务器selinux是否开启,若是开启,关闭selinux
/usr/sbin/sestatus –v
3、配置虚拟用户
1, 建立虚拟用户文本文件,添加虚拟用户和密码
cd /etc/vsftpd/
touch vuser.txt
vim vuser.txt(奇数行是用户名,偶数是密码)
2, 生成虚拟数据库文件(*若是db_load没有安装,yum install db4-utils db4-devel db4-4.3安装才能使用。)
db_load –T –t hash –f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
3, 配置PAM文件,目的是对客户端进行验证, 编辑/etc/pam.d/vsftpd文件,批注全部内容,后添加:
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
*不能写成db=/etc/vsftpd/vuser.db
4, 修改虚拟数据库文件vuser.db的权限为 700
chmod 700 vuser.db
5, 增长一个系统用户vuser ,使用它来对应全部虚拟用户,虚拟用户使用系统用户来访问ftp服务器
mkdir /ftpdir
useradd -d /ftpdir -s /sbin/nologin vuser
chown vuser.vuser /ftpdir
6, 修改vsftpd.conf配置文件,使虚拟用户能够访问vsftpd服务器,增长如下参数, 注意:“=”两边不能有空格
guest_enable=YES ####激活虚拟帐户
guest_username=vuser ####把虚拟帐户绑定为系统帐户vuser
pam_service_name=vsftpd ####使用PAM验证
user_config_dir=/etc/vsftpd/vsftpd_user_conf ##设置虚拟用户的主配置文件
7, 创建vsftpd_user_conf
mkdir /etc/vsftpd/vsftpd_user_conf
8, 设置虚拟用户配置文件,与虚拟帐户同名
touch /etc/vsftpd/vsftpd_user_conf/admins_user
9, 编辑虚拟帐户lowkeyman的配置文件lowkeyman,是虚拟帐户lowkeyman得到相应的权限
anon_world_readable_only=NO ###浏览FTP目录和下载
anon_upload_enable=YES ###容许上传
anon_mkdir_write_enable=YES ###创建和删除目录
anon_other_write_enable=YES ####更名和删除文件
local_root=/ftpdir/ #### 指定虚拟用户在系统用户下面的路径,限制虚拟用户的家目录,虚拟用户登陆后的主目录
10,service vsftpd restart (测试各个虚拟用户的权限是否生效)
很差用的状况下,请注意本机的selinux,iptables,端口占用,以及云平台的安全组等方面是否都设置好了。