RedHat Linux 5 FTP服务器配置详解(2)

配置基于本地用户的访问控制
要配置基于本地用户的访问控制,可以通过修改vsftpd 的主配置文件/etc/vsftpd.conf 来进行,有如下两种限制方法:
1. 限制指定的本地用户不能访问,而其他本地用户可访问
例如下面的设置:
userlist_enable=YES
userlist_deny=YES
userlist_file= /etc/vsftpd.user_list
使文件/etc/vsftpd.user_list 中指定的本地用户不能访问FTP 服务器,而其他本地用户可访问FTP服务器。

2. 限制指定的本地用户可以访问,而其他本地用户不可访问
例如下面的设置:
userlist_enable= YES
userlist_deny=NO
userlist_file= /etc/vsftpd.user_list
使文件/etc/vsftpd.user_list 中指定的本地用户可以访问FTP 服务器,而其他本地用户不可以访问FTP服务器。

在默认配置中,本地用户可以切换到自家目录以外的目录进行浏览,并在权限许可的范围内进行下载和上传。这样的设置对于一个FTP 服务器来说是不安全的。
如果希望用户登录后不能切换到自家目录以外的目录,则需要设置chroot 选项,涉及如:
chroot_local_user
chroot_list_enable
chroot_list_file
有两种设置chroot 的方法:
(1)设置所有的本地用户执行chroot
只要将chroot_local_user 的值设为YES 即可,即:
chroot_local_user=YES
(2)设置指定的用户执行chroot
需要如下的设置:
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file= /etc/vsftpd.chroot_list 
这样,/etc/vsftpd.chroot_list 文件中指定的用户不能执行chroot。
构建基于虚拟用户的vsftpd服务器
1.建立虚拟FTP用户的帐号数据库文件
建立虚拟用户的账户名、密码列表
 奇数行为帐号名
 偶数行为上一行中帐号的密码
转化为Berkeley DB格式的数据文件
 db_load 转换工具
 需安装 db4-utils-4.3.29-9.fc6.i386.rpm 软件包
[root@filesvr ~]# vi /etc/vsftpd/vusers.list
mike
123
john
456
[root@filesvr ~]# cd /etc/vsftpd/
[root@filesvr vsftpd]# db_load -T -t hash -f vusers.list   vusers.db
[root@filesvr vsftpd]# file vusers.db
vusers.db: Berkeley DB (Hash, version 8, native byte-order)
[root@filesvr vsftpd]# chown 600 /etc/vsftpd/vusers.*

2.创建FTP根目录及虚拟用户映射的系统用户
[root@filesvr ~]# mkdir /var/ftproot
[root@filesvr ~]# useradd -d / var/ftproot -s / sbin/nologin virtual
[root@filesvr ~]# chmod 755 /var/ftproot/

3.建立支持虚拟用户的PAM认证文件
[root@filesvr ~]# vi /etc/pam.d/vsftpd.vu
#%PAM-1.0
auth       required     pam_userdb.so db=/etc/vsftpd/vusers
account    required     pam_userdb.so db=/etc/vsftpd/vusers

4.在vsftpd.conf文件中添加支持配置
[root@filesvr ~]# vi  /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
anon_umask=022
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu

5.为个别虚拟用户建立独立的配置文件
在vsftpd.conf文件中添加用户配置目录支持
 user_config_dir=/etc/vsftpd/vusers_dir
为用户mike、john建立独立的配置目录及文件
 配置文件名与用户名同名
[root@filesvr ~]# mkdir /etc/vsftpd/vusers_dir/
[root@filesvr ~]# cd /etc/vsftpd/vusers_dir/
[root@filesvr vusers_dir]# touch mike
[root@filesvr vusers_dir]# vi john
anon_upload_enable=YES
anon_mkdir_write_enable=YES
6.重新加载vsftpd配置
service vsftpd reload

7.使用虚拟FTP账户访问测试
分别用mike、john用户登录FTP服务器进行下载、上传测试
 mike用户可以登录,并可以浏览、下载文件,但无法上传
 john用户可以登录,并可以浏览、下载文件,也可以上传
 匿名用户或其他系统用户将不能登录

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ppzgg.html