1)基于虚拟用户的访问形式
2)匿名用户只允许下载,不允许上传
3)禁锢所有的用户于其家目录当中
4)限制最大并发连接数为200
5)匿名用户的最大传输速率512KB/s
6)虚拟用户的账号存储在mysql数据库当中
7)数据库通过NFS进行共享
先科(zhuang)普(bi)
我们登录FTP有三种方式,匿名登录、本地用户登录和虚拟用户登录。
匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous。
本地用户登录:使用系统用户登录,在/etc/passwd中。
虚拟用户登录:这是FTP专有用户,有两种方式实现虚拟用户,本地数据文件和数据库服务器。
FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。
测试环境
NFS&MySQL服务器 192.168.0.248
vsftp 服务器 192.168.0.235
一、通过NFS服务器共享数据库
1、在192.168.0.248服务器上启动nfs服务,设置共享目录为/nfs_data
[root@CentOS6 ~]# mkdir -pv /nfs_data
mkdir: created directory `/nfs_data’
2、安装组件
yum install rpcbind nfs-server nfs-lock nfs-idmap
3、启动nfs服务
1 | [root@CentOS7 ~]# systemctl start nfs-server.service |
4、编辑 vim /etc/exports
添加一下内容
1 | /nfs_data 192.168.0.0/24(rw,no_root_squash,sync) |
exportfs -r 一下使其生效
注:配置文件说明:
1 | /nfs_data为共享目录 |
二、vsftp mysql 服务器挂载nfs
1 | [root@CentOS6 ~]# showmount -e 192.168.0.235 |
客户端在挂载的时候遇到的一个问题如下,可能是网络不太稳定,NFS默认是用UDP协议,换成TCP协议即可
mount -t nfs 192.168.0.235:/nfs_data /nfs_data -o proto=tcp -o nolock
在客户端写入一个有内容的文件测试,嘿嘿,服务端马上看到了,欧耶
1 |
|
安装vsftpd
1 | [root@CentOS6 mysql]# yum install vsftpd |
配置vsftpd的pam文件
[root@CentOS6 ~]# vim /etc/pam.d/vsftpd.mysql
输入以下内容:
1 | auth required pam_mysql.so user=vsftpd passwd=mageedu host=192.168.0.235 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 |
创建系统用户
因为虚拟用户最终要映射为系统用户,所以得创建用于vsftpd映射使用滴用户啦。。。。。
1 | [root@CentOS6 ~]# mkdir -pv /ftproot |
确保vuser的家目录其他用户能读能执行
1 | [root@CentOS6 /]# ll |grep ftproot/ |
配置/etc/vsftpd/vsftpd.conf
vim /etc/vsftpd/vsftpd.conf
修改 pam_service_name=vsftpd.mysql
匿名用户只允许下载,不允许上传
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES #允许匿名账户登录
anon_upload_enable=NO #不允许匿名用户上传文件
禁锢所有的用户于其家目录当中
chroot_local_user=YES #禁锢本地账户的家目录
限制最大并发连接数为200
max_clients=200 #最大允许的客户端连接数
匿名用户的最大传输速率512KB/s
local_max_rate=512000
写入配置文件后,重启vsftp服务即可。