实验环境
根据公司的开发部门和市场部门的业务发展要求,需要面向Internet搭建一台FTP文件服务器,以提供公测版本、市场资料的下载与上传、文件管理等应用,同时要对用户访问和下载/上传流量进行控制。考虑到服务器的运行效率及稳定、安全性,选择在RHEL5操作系统中构建VSFTPD服务器实现。
需求描述
采用FTP虚拟用户的方式,添加三个FTP虚拟用户devadm、sales、saleadm
设置用户访问及文件权限控制:
开放匿名访问,任何用户可以从/var/ftp/soft/目录下载资料
用户devadm可以对/var/ftp/soft/目录进行管理
用户sales可以从/var/market/目录下载资料
用户saleadm可以对/var/market/目录进行管理
所有上传的文件,均去除非属主位的写(w)权限
对服务器中没有明确授权的其他目录,均禁止以上用户访问
下载、上传流量及带宽控制:
最多允许150个并发用户连接,每IP并发连接数不超过5个
匿名用户及sales用户的下载带宽限制为100KB/秒
devadm、saleadm用户的下载、上传带宽限制为500KB/秒
具体配置
[root@localhost ~]# alias vi=vim
[root@localhost ~]# mount /dev/cdrom /media/ 挂载光盘
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@localhost ~]# rpm -ivh /media/Server/vsftpd-2.0.5-16.el5.i386.rpm 安装vsftpd服务
warning: /media/Server/vsftpd-2.0.5-16.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:vsftpd ########################################### [100%]
[root@localhost ~]# rpm -ivh /media/Server/db4-utils-4.3.29-10.el5.i386.rpm 安装db工具
warning: /media/Server/db4-utils-4.3.29-10.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
1:db4-utils ########################################### [100%]
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# vi vuser.txt 添加虚拟账户访问的用户名和密码
devadm 奇数行为用户名
123 偶数行为密码
sales
123
saleadm
123
:wq 保存退出
[root@localhost vsftpd]# db_load -T -t hash -f vuser.txt vuser.db 将账号文件转化成数据库文件
[root@localhost vsftpd]# chown 600 /etc/vsftpd/vuser.* 更改用户账号密码的文件权限
[root@localhost vsftpd]# useradd -d /var/market -s /sbin/nologin virtual 添加虚拟用户
[root@localhost vsftpd]# cp /usr/share/doc/vsftpd-2.0.5/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/vsftpd.vu 将PAM认证样本文件复制到/etc/pam.d/vsftpd.vu
[root@localhost vsftpd]# vi /etc/pam.d/vsftpd.vu 编辑pam认证文件
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
:wq
[root@localhost vuser_dir]# vi devadm 编辑devadm用户权限
local_root=/var/ftp/soft 指定FTP根目录
write_enable=YES 允许写入
anon_mkdir_write_enable=YES 允许创建文件夹
anon_upload_enable=YES 允许上传
anon_other_write_enable=YES 允许其它写入权限
anon_max_rate=102400 设定最大下载带宽
:wq
[root@localhost vuser_dir]# vi sales 编辑sales用户权限
anon_max_rate=500000
local_root=/var/market
:wq
[root@localhost vuser_dir]# vi saleadm 编辑saleadm用户权限
anon_max_rate=500000
write_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_upload_enable=YES
local_root=/var/market
:wq
[root@localhost vuser_dir]# vi /etc/vsftpd/vsftpd.conf 编辑主配置文件
anonymous_enable=YES 允许匿名用户访问
local_enable=YES 允许本地用户访问
local_umask=022 本地用户创建文件掩码
dirmessage_enable=YES 用户切换目录提示信息
xferlog_enable=YES 启用xferlog日志
connect_from_port_20=YES 允许服务器主动模式
listen=YES 是否独立用行方式监听服务
pam_service_name=vsftpd.vu PAM认证文件位置
userlist_enable=YES 是否启用user_list文件列表
tcp_wrappers=YES 是否启用tcp_wrappers主机访问
anon_max_rate=102400 匿名用户最大下载带宽
guest_enable=YES 启用用户映射功能
guest_username=virtual 将映射用户指定为virtual
user_config_dir=/etc/vsftpd/vuser_dir 指定用户配置目录位置
anon_umask=022 虚拟用户上传文件的默认权限掩码
anon_root=/var/ftp/soft 匿名用户的FTP根目录
max_per_ip=5 相同IP最多允许5个并发连接
max_clients=50 同时允许50个客户端同时连接
:wq
[root@localhost vuser_dir]# mkdir /var/ftp/soft 创建/var/ftp/soft目录
[root@localhost vuser_dir]# chown virtual /var/ftp/soft 更改/var/ftp/soft目录属主
[root@localhost vuser_dir]# service vsftpd start 启动vsftpd服务
为 vsftpd 启动 vsftpd: [确定]
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。