Vsftpd的高级配置案例:
公司为了宣传最新的产品信息,计划搭建FTP 服务器,为客户提供相关文档的下载。对所有权互联网开放共享目录,允许下载产品信息,禁止上传。公司的合作单位能够使用FTP 服务器进行上传和下载,但不可以删除数据。并且保证服务器的稳定性。
需求分析
根据企业的需求,对于不同用户进行不同的权限限制,FTP 服务器需要实现用户的审核。需考虑到服务器的安全性,所以关闭实体用户登录,使用虚拟帐号验证机制,并对不同虚拟帐号设置不同的权限。为了保证服务器的性能,还需要根据用户的等级,限制客户端的连接数及下载速度。
1.创建用户数据库
(1)创建用户文本文件 (ftp,vip)
#touch /etc/vsftpd/vsftpd_virtualuser.txt
#vim vsftpd_virtualuser.txt
ftp
Redhat
Vip
Redhat
(2)生成数据库
#yum install db4-utils-4.3.29-9.fc6.i386.rpm 安装db_load命令
#db_load -T -t hash -f /etc/vsftpd/vsftpd_virtualuser.txt /etc/vsftpd/vsftpd_virtualuser.db
(3)修改数据库文件的访问权限(防止非法访问)
#chmod 600 /etc/vsftpd/vsftpd_virtualuser
2.配置PAM文件
为了服务器能够使用数据库文件对客户端进行身份验证
#vim /etc/pam.d/vsftpd
将默认配置使用#全部注释
添加:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_virtualuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_virtualuser
3.创建虚拟帐号对应的系统用户
将两个帐号的目录进行隔离,控制用户的文件访问. ftp对应系统帐号ftpuser 家目录:/var/ftp/share
Vip 对应系统帐号 ftpvip 家目录:/var/ftp/vip
#useradd -d /var/ftp/share/ ftpuser
#useradd -d /var/ftp/vip/ ftpvip
#chmod -R 500 /var/ftp/share
#chmod -R 700 /var/ftp/vip
4.建立配置文件(由于多个虚拟帐号的不同权限,为每个虚拟帐号建立独立的配置文件)
#vim vsftpd.conf
anonymous_enable=NO
local_enable=YES
添加
chroot_local_user=YES (将所有本地用户限制在家目录中)
pam_service_name=vsftpd 配置vsftpd使用的PAM模块为vsftpd
user_config_dir=/etc/vsftpd/vuserconfig 设置虚拟帐号的主目录为 /vuserconfig
max_clients=300 设置FTP最大接入的客户端数为300个
max_per_ip=10 设置每个IP地址最大连接数为10
5.建立虚拟帐号的配置文件
#mkdir /etc/vsftpd/vuserconfig
#touch /etc/vsftpd/vuserconfig/ftp
#touch /etc/vsftpd/vuserconfig/vip
#vim /etc/vsftpd/vuserconfig/ftp
guest_enable=yes 开启虚拟帐号登录
guest_username=ftpuser 设置ftp对应的系统帐号为ftpuser
anon_workd_readable_only=no 允许匿名用户浏览整个服务器的文件系统
anon_max_rate=50000 限定传输速率为50KB/s
#vim /etc/vsftpd/vuserconfig/vip
guest_enable=yes
guest_username=ftpvip
anon_world_readable_only=no
write_enable=yse 允许文件系统可写
anon_mkdir_write_enable=yes 允许创建文件夹
anon_upload_enable=yes 开启匿名帐号上传功能
anon_max_rate=100000 限定传输速度为100KB/s
开启禁用SElinux 的FTP 传输审核功能
setsebool -P ftpd_disable_trans on
允许用户删除:eg 在VIP中添加
anon_other_write_enable=yes:允许其他权限比如重命令、删除文件及文件夹