一、vsftpd简介
vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。
二、安装vsftpd
安装vsftpdf服务,可通过yum命令安装,我的CentOS 7已安装,版本如下
三、数据库安装和配置
基于mysql服务:
# yum -y groupinstall "Development Tools" "Server Platform Development"
# yum -y install pam-devel mariadb-devel openssl-devel
下载pam-mysql驱动,并编译安装。
(安装后模块路径:
/usr/lib64/security/pam_mysql
.so
)
# wget pam-mysql.sourceforge.net/pam-mysql-0.7RC1.tar.gz
# tar xf pam-mysql-0.7RC1.tar.gz
# ./configure --with-mysql=/usr --with-openssl=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security
# make && make install
mariadb配置:
# systemctl start mariadb.service
# mysql
MariaDB [(none)]> CREATE DATABASE ftpdf;
MariaDB [(none)]> use ftpdf
修改pam配置文件,在/etc/pam下配置
# vim /etc/pam.d/vsftpd.mysql
内容为:
auth required
/usr/lib64/security/pam_mysql
.so user=ftpdf
passwd
=mageedu host=localhost db=ftpdf table=
users
usercolumn=name passwdcolumn=password crypt=2
account required
/usr/lib64/security/pam_mysql
.so user=ftpdf
passwd
=mageedu host=localhost db=ftpdf table=
users
usercolumn=name passwdcolumn=password crypt=2
为虚拟用户创建映射用户
# cd /etc/pam.d
# useradd -s /sbin/nologin -d /ftproot vuser
# ls -ld #查看权限,确保用户的家目录可以让其他用户能读能执行
# chmod go-rx /ftproot
配置mysql
修改配置文件: /etc/vsftpd/vsftpd.conf
1、修改pam认证模块名字为vsftpd.mysql
2、确保下面三项为YES
3、添加配置
guest_enable=YES #是否允许来宾访问
guest_username=vuser
注:anon_upload_enable=YES
# 用户可上传文件
接下来就可以启动服务,进行测试:
附加:单独用户的权限控制方案(以tom和jerry为例)
1、修改主配置文件
# vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES #注释掉这一行,不允许用户上传。
2、创建配置目录,让用户使用不同的配置文件,实现每个虚拟用户的单配置文件使用
# cd /etc/vsftpd/
# mkdir vusers.conf.d
# cd vusers.conf.d
# vim tom
anon_upload_enable=YES #内容为tom用户允许上传
# cp tom jerry
# vim jerry
anon_upload_enable=NO #内容为jerry用户不允许上传
3、编辑主配置文件,告诉其用创建的配置目录做加载配置
# vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vuser.conf.d # 主配置文件下面添加一行
4、重启服务进行验证,tom可以上传文件,jerry不能。
# systemctl restart vsftpd.service
原文地址:http://1832924799.blog.51cto.com/11226449/1767821