Linuxvsftpd匿名用户,本地用户,虚拟用户授权
同时访问不同的目录
(本次实验环境,系统centos5.5_x64)
需求描述
添加三个FTP虚拟用户vip、cyc、ftp,yunwei和一个本地用户edwin
设置用户访问及文件权限控制:
用户vip可以对/var/ftp/目录进行管理
用户cyc可以对/var/ftp/目录进行管理
用户ftp可以对/var/ftp/upload目录进行管理
用户yunwei可以从/var/ftp/download目录下载资料
添加本地用户edwin,可以对/var/目录进行管理
所有上传的文件,均去除非属主位的写(w)权限
对服务器中没有明确授权的其他目录,均禁止以上用户访问
work=yunweimanagement=cyc
vip=vipedwin=edwinoperations=ftp
安装软件vsftpd
[root@localhost~]#yum-yinstallvsftpd
安装软件db4-utils
[root@localhost~]#yum-yinstalldb4-utils
建立2个文件夹,并建立测试文件。
[root@localhost~]#mkdir/var/ftp/upload
[root@localhost~]#mkdir/var/ftp/download
编辑新文件vusers.list
添加4个用户,密码都为a。奇数行表示用户,偶数行表示密码
使用工具db_load将列表文件转化为DB数据库文件
-f选项用于指定用户名/密码列表文件,-T选项允许非BerkeleyDB的应用程序从文本格式转化的DB数据文件,-thash选项指定读取数据文件的基本方法。
使用命令file查看文件类型,类型为BerkeleyDB格式的数据库文件
降低文件权限以提高安全性
查看权限,只有管理员可以写入,其他用户没有任何权限。
建立虚拟用户对应的系统账号,这个账户不能登录系统。-s/sbin/nologin表示指定shell环境,不让登录系统。请注意,这个用户必须有一个宿主目录,否则虚拟用户无法登陆
建立本地用户jerry
配置密码
建立PAM认证文件,注意/etc/pam.d/vsftpd为本地用户的验证文件,如果创建其他文件vsftpd.vu表示虚拟用户,如果说将虚拟用户的配置写入本地用户的验证文件,就可以实验本地用户和虚拟同时登录ftp。
参数如下。
auth是authentication(认证)的缩写,account(账户)required(必须)sufficient(足够的)PAM配置文件主要用为程序提供用户认证控制,需要.pam_userdb.so文件vusers表示建立的用户数据库文件,后缀名.db可以不用写。注意这2行必须写在第一行,因为系统读取是从上往下看的。Sufficient也表示为递归,最上2行表示虚拟用户配置文件,下面的都是本地用户配置文件。当上面查找不到时,查找下面的。表示可以同时登录虚拟用户和本地用户。如果为required,则只能登录虚拟用户。
authsufficientpam_userdb.sodb=/etc/vsftpd/vusers
accountsufficientpam_userdb.sodb=/etc/vsftpd/vusers
备份配置文件
过滤文件到/root/下的123.txt
将123.txt文件覆盖配置文件
编辑文件,指定虚拟用户配置目录
注意,这里千万不要添加guest_enable=yesguest_username=virtual这2行,否则本地用户无法写入文件,就算权限足够也不行,只能登陆访问。
创建目录vusers_dir
编辑虚拟用户vip的权限
参数如下
guest_enable=yes
guest_username=virtual
local_root=/var/ftp/
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
编辑虚拟用户cyc的权限
复制文件,因为vip和cyc的权限是一样的
编辑虚拟用户ftp的权限
复制文件,因为vip和ftp的权限是一样的,然后修改一下管理目录
编辑虚拟用户yunwei的权限,只有下载权限
guest_enable=yes
guest_username=virtual
local_root=/var/ftp/download/
所有上传的文件,均去除非属主位的写(w)权限,修改权限掩码为022
这个是匿名用户上传文件的权限,本地用户的默认上传权限是022
对服务器中没有明确授权的其他目录,均禁止以上用户访问
直接禁锢登录ftp的宿主目录就可以了
修改权限,是用户virtual拥有写权限
接下来的权限,自己来定义,在这里不多讲
重启服务
打开我的电脑,在地址栏输入ftp://192.168.100.254默认是匿名用户登录
ftp防火墙配置
###############################################################
设置了iptables的禁止所有的端口,只容许可能访问了策略后大部分情况下会出现ftp
不能正常访问的问题,因为ftp有主动和被动连接两种模式,少添加一些策略就会出问题。
在这里我就相信的说明下解决方法:www.2cto.com
首先加载:
#modprobeip_conntrack_ftp
#modprobeip_nat_ftp
然后加载策略
#iptables-AOUTPUT-mstate--stateRELATED,ESTABLISHED-jACCEPT
#iptables-AINPUT-mstate--stateRELATED,ESTABLISHED-jACCEPT
#iptables-IINPUT-ptcp--dport21-jACCEPT
#iptables-IOUTPUT-ptcp--dport21-jACCEPT
如果不想每次都加载模块的话请在/etc/sysconfig/iptables-config
添加
|
|