实验环境:
根据公司开发部门和市场部门的业务发展要求,需要面向 internet 搭建一台 FTP 文件服务器。以提供公测版软件,市场资料的下载和上传,文件管理等应用。同时要对用户访问和下载/上传流量进行控制。考虑到服务器的运行效率及稳定性、安全性、选择通过在 CentOS 7 操作系统下搭建 vsftpd 服务器来实现。
需求概述:
1,采用 FTP 虚拟用户的方式,添加三个用户:devadm, sales, salesadm。
2,用户访问及文件权限控制。
开放匿名访问,任何用户均可下载服务器 /var/ftp/soft/ 目录下的软件资料。
用户 devadm 可以对服务器的 /var/ftp/soft/ 目录进行上传、删除等操作。
用户 sales 可以下载服务器 /var/market/ 目录中的市场活动,销售方案等资料。
用户 salesadm 可以对服务器 /var/market/ 目录进行上传、删除等操作。
所有通过 FTP 上传的文件,均去除非属主位的写权限(即将权限掩码设为 022 )。
对服务器中没有明确授权的其他目录,禁止任何用户访问。
3,传输速率和并发连接控制
最多允许 150 个并发用户连接,每个 IP 并发连接数不超过 5 个。
匿名用户及 sales 用户的下载带宽限制为 100KB/s 。
devadm,salesadm 用户的下载、上传带宽限制为 200KB/s 。
一、安装ftp服务器
二、安装客户端
三、创建虚拟用户
3.1创建虚拟用户目录
3.2修改为db文件
3.3修改权限
3.4创建用户目录和系统用户
3.5修改权限
3.6创建虚拟认证
3.7修改配置文件
3.8创建上传下载目录
3.9创建用户权限文件
3.10为用户添加权限
四、防火墙
4.1开启防火墙端口
4.2关闭selinux
五、测试
5.1启动服务
5.2用户登陆测试
5.3上传下载文件
5.3.1devadm用户
5.3.2sales
5.3.3sales adm
六、排错
6.1vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
解决办法:
在配置文件中添加
allow_writeable_chroot=YES
6.2 500 OOPS: cannot locate user entry:虚构用户名
解决办法:
guest_enable=YES
guest_username=vir (useradd添加的系统用户用户)
6.3 ftp新建文件夹显示错误550
解决办法:
创建的目录没有写入的权限
6.4 登陆失败
创建的目录属组和属主不是创建系统用户
还有就是权限不够
6.5 启动失败
语法错误:
在等号的两侧不能有空格
还有就是IPv4和IPv6地址监听问题
6.6 注意
在创建db文件时要在创建虚拟用户的文件下操作