19日,vftpd基于PAM_MYSQL进行虚拟用户的认证且每个用户有自己的独立目录及不同的访问权限

  

1, vsftp相关介绍
FTP是文件传输协议(文件传输协议)的英文简称

  

两个连接:命令连接,数据连接(相对服务器来讲)
FTP连接支持两种模式:主动模式(端口模式),被动模式(被动模式)
主动模式:服务器端通过20端口主动连接客户端,客户端监听在与服务器端建立命令连接的端口+ 1上,服务器工作在TCP/20
被动模式:客户端使用自己与服务器端建立命令连接的端口+ 1上连接服务器端的随机端口,该随机端口在建立命令连接的时候已发给客户端

  

vsftp的用户有三种类型,分别是匿名用户,系统用户,虚拟用户

  

/etc/vsftpd/vsftpd。参看主配置文件常用选项
anonymous_enable=NO(是否允许匿名登录)
local_enable=YES(是否允许本地用户登录,设置虚拟账户必须设会是的)
write_enable=NO(决定是否允许一些FTP命令去更改文件系统。包括上传文件,删除文件,新增目录,删除目录)
anon_upload_enable=NO(是否允许匿名用户上传文件,须将write_enable=是的,默认为是)
anon_mkdir_write_enable=NO(是否允许虚拟用户创建文件夹)
xferlog_enable=YES(如果启用此选项,系统将会维护记录服务器上传和下载情况的日志文件)
xferlog_file=/var/log/xferlog(设置日志存放位置)
ftpd_banner=欢迎FTP服务。(实现用户的欢迎信息登录横幅)
chroot_local_user=YES(设置为没有时,用户登录FTP服务器后具有访问自己目录以外的其他文件的权限,设置为是的时,用户被锁定在自己的宿主目录中)
pam_service_name=vsftpd。mysql(设置PAM外挂模块提供的认证服务所使用的配置文件名)
guest_enable=YES(如果启用,所有的非匿名用户登录时将被视为游客,其名字将被映射为guest_username里所指定的名字。采用虚拟用户必须设置该选项)
guest_username=vuser(设置当游客进入后,其将会被映射的名字。这里设置为“vuser”,即虚拟用户登陆ftp后被映射的本地用户名)
user_config_dir=/etc/vsftpd user_config(定义用户配置文件的目录,在文件夹中创建虚拟用户同名的的文件,在文件中定义虚拟用户的权限)
virtual_use_local_privs=YES(虚拟用户和本地用户权限相同。很重要,保证虚拟用户有和映射的本地用户相同的权限)

  

注意:启用写入功能时,ftp用户对相应的本地文件系统也有相应的写入权限;生效的权限取决于文件系统权限和服务权限的交集

  

连接数和速率限制
max_clients:最大并发连接数
max_per_ip:每IP可同时发起并发请求
anon_max_rete:匿名用户的传输速率,单位为“字节/秒”
local_max_rate:本地用户传输速率,单位为“字节/秒”

  

2, vftpd基于PAM_MYSQL进行虚拟用户的认证且每个用户有自己的独立目录及不同的访问权限(test1用户只拥有上,传下载,新建权限,不允许删除操作,test2用户拥有上,传下载,新建,删除权限)
2.1安装mysql和PAM_MYSQL
rpm -ivh https://mirrors.aliyun.com/epel/6server/x86_64/epel -释放- 6 - 8. - noarch.rpm
yum - y安装vsftpd mysql服务器mysql-devel PAM_MYSQL
服务mysqld开始
chkconfig mysqld

  

2.2创建虚拟账号
mysql
mysql>创建数据库vsftpd;
mysql>格兰特vsftpd。 vsftpd@ ' localhost '被vsftpd的;
mysql>格兰特vsftpd。
vsftpd@ 192.168. %。%’被vsftpd的;
mysql>格兰特vsftpd。 vsftpd@127.0.0.1被vsftpd的;
mysql>冲洗特权;
mysql>mysql -uvsftpd \ q
- p
mysql>使用vsftpd;
mysql>创建表用户(INT id UNSIGNED AUTO_INCREMENT不是零主键,名字VARCHAR (50) NOT NULL,密码字符(48)NOT NULL),
mysql>desc用户;
mysql>插入用户名、密码)值(test1,密码(test1));
mysql>插入用户名、密码)值(“test2”,密码(test2));
mysql>从用户选择
,
mysql>

\问   

2.3创建PAM认证文件
vim/etc/pam.d/vsftpd.mysql
认证要求/lib64/安全/pam_mysql。所以用户=vsftpd passwd=vsftpd主机=192.168.130.61 db usercolumn=名字passwdcolumn==vsftpd表=用户密码地穴=2
账户需要/lib64/安全/pam_mysql。所以用户=vsftpd passwd=vsftpd主机=192.168.130.61 db usercolumn=名字passwdcolumn==vsftpd表=用户密码地穴=2

  

2.4建立虚拟用户映射的系统用户及对应的目录,子目录

useradd - s/sbin/nologin - d/var/ftproot vuser mkdir/var/ftproot/test {1,2}
:乔恩vuser vuser/var/ftproot/test *
chmod - r去+ rx/var/ftproot

  

2.5修改vsftpd的配置如下
anonymous_enable=没有
local_enable=是的
write_enable=
anon_upload_enable=没有
anon_mkdir_write_enable=
anon_umask=022
xferlog_enable=YES
xferlog_file=/var/log/xferlog

19日,vftpd基于PAM_MYSQL进行虚拟用户的认证且每个用户有自己的独立目录及不同的访问权限