Centos7下基于SSL的FTPS服务器搭建及创建基于mysql验证的虚拟用户

1、在ftp服务器上安装vsftpd

yum -y install vsftpd

2、生成自签名证书

cd /etc/pki/tls/certs/
make vsftpd.pem
openssl x509 -in vsftpd.pem -noout -text

3、配置vsftpd使支持ssl
vi /etc/vsftpd/vsftpd.conf

ssl_enable=YES
allow_anon_ssl=YES
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem

4、在ftp服务器上安装pam_mysql模块
(1)下载源码包
https://github.com/NigelCunningham/pam-MySQL/archive/v0.8.1.tar.gz
(2)解压源码包

tar xf pam-MySQL-0.8.1.tar.gz

(3)进入解压后的目录

cd pam-MySQL-0.8.1

less INSTALL.pam-mysql 可查看安装方法
less README 可查看配置方法
(4)安装依赖包

yum -y install mysql-devel pam-devel

(5)生成configure文件

autoreconf -f -i

(6)生成make文件

./configure --with-pam-mods-dir=/usr/lib64/security/

(7)

make && make install

5、在mysql服务器上创建数据库、表、用户

CREATE DATABASE vsftpd;
USE vsftpd
CREATE TABLE users (
id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
name CHAR(50) BINARY NOT NULL,
password CHAR(48) BINARY NOT NULL
);
GRANT SELECT ON vsftpd.* TO ftpuser@localhost IDENTIFIED BY 'centos';

6、在mysql数据库中插入ftp虚拟用户及密码

INSERT INTO users(name,password) values(‘user1',password('centos'));

7、在ftp服务器上配置pam_mysql
vi /etc/pam.d/pam.mysql

auth       optional     pam_mysql.so user=ftpuser passwd=centos host=192.168.34.27 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account    required     pam_mysql.so user=ftpuser passwd=centos host=192.168.34.27 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

8、在ftp服务器上创建系统用户用于映射虚拟用户

useradd -r -s/sbin/nologin -d/data/ftp ftpuser
mkdir /data/ftp -p

9、修改vsftpd的配置文件
vi /etc/vsftpd/vsftpd.conf

pam_service_name=/etc/pam.d/pam.mysql #####使vsftpd使用pam_mysql模块
guest_enable=YES #######开启虚拟用户登录
guest_username=ftpuser #######设置虚拟用户映射的系统用户名
user_config_dir=/etc/vsftpd/ftpuser ######设置虚拟用户配置文件的所在目录

10、创建虚拟用户的根目录

mkdir /data/ftp/user1
chown ftpuser.ftpuser /data/ftp/user1

11、为虚拟用户配置ftp权限
vi /etc/vsftpd/ftpuser/user1

local_root=/data/ftp/user1 ####设置此虚拟用户的根目录
allow_writeable_chroot=YES ####设置在根目录有写权限的情况下可以登录
anon_upload_enable=YES ####设置此虚拟用户有上传权限
anon_mkdir_write_enable=YES ####设置此虚拟用户有创建目录权限
anon_other_write_enable=YES ####设置此虚拟用户有删除、修改权限
anon_umask=073 ####修改此用户所创建的文件的权限,使之有查看目录的权限

12、重启vsftpd服务

systemctl restart vsftpd
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容