VSFTP+MySQL环境

1、CentOS7 安装VSFTP+MySQL环境

yum -y install vsftpd* pam* db4*

安装MySQL和pam_mysql

yum install -y gcc* pam-devel mariadb-devel mariadb-server
cd pam_mysql-0.7RC1

./configure --with-openssl --with-pam-mods-dir=/lib/security/
make && make install
安装完成后,会生成如下两个文件
/lib/security/pam_mysql.la
/lib/security/pam_mysql.so

创建vsftpd用户认证表及用户

create database vsftpd;
grant select on vsftpd.* to vsftpd@'127.0.0.1' identified by '123123';

create table vsftpusers (
id int AUTO_INCREMENT NOT NULL,
name VARCHAR(50) COMMENT'姓名',
username char(20) binary NOT NULL COMMENT '登录名',
password char(48) binary NOT NULL COMMENT '登录密码',
primary key(id))character set = utf8, COMMENT 'vsftpd用户认证表';

insert into vsftpusers(name,username,password) values('张三','a1',password('123123'));
insert into vsftpusers(name,username,password) values('李四','a2',password('123456'));
insert into vsftpusers(name,username,password) values('王五','a3',password('456456'));
insert into vsftpusers(name,username,password) values('赵六','a4',password('456456'));
select * from vsftpusers;

2、为虚拟用户创建映射用户并修改家目录权限为 704

useradd -d /var/ftproot -s /sbin/nologin virtual
chmod 704 /var/ftproot/

修改 ftp 的认证机制为虚拟用户认证(各个软件服务的认证机制配置文件 /etc/pam.d/)

cd /etc/pam.d/
vim vsftpd.mysql
auth required /lib/security/pam_mysql.so user=vsftpd passwd=123123 host=127.0.0.1 db=vsftpd table=vsftpusers usercolumn=username passwdcolumn=password crypt=2
account required /lib/security/pam_mysql.so user=vsftpd passwd=123123 host=127.0.0.1 db=vsftpd table=vsftpusers usercolumn=username passwdcolumn=password crypt=2
    user:数据库用户名
    passwd:数据库密码
    host:数据库主机IP
    db:库名
    table:表名
    usercolumn:哪个字段作为用户名
    passwdcolumn:哪个字段作为密码
    crypt:表示密码加密方式,0表示明文,1表示使用UNIX的DES加密,2表示使用MySQL的password()函数,3表示口令使用MD5加密

修改配置文件

vi /etc/vsftpd/vsftpd.conf

修改:
anonymous_enable=NO # 关闭匿名用户登录
pam_service_name=vsftpd.pam # 将认证配置文件指向自己创建的
添加:
guest_enable=YES # 开启虚拟用户
guest_username=virtual # 指定虚拟用户的映射用户为 virtual
user_config_dir=/etc/vsftpd/dir # 每一个虚拟用户的配置文件保存路径
anon_umask=022 # 添加 umask 值
allow_writeable_chroot=YES # 新版必须添加否则取消目录w权限。
pasv_enable=YES (默认没有,如果不写默认是被动模式状态)
pasv_min_port=4000 (默认没有,限定端口范围便于配置防火墙)
pasv_max_port=4020 (默认没有,限定端口范围便于配置防火墙)

为虚拟用户创建配置文件

mkdir /etc/vsftpd/dir/ && cd /etc/vsftpd/dir/
虚拟用户的配置文件文件名和用户名同名即可(如 a1用户的配置文件名为a1)
a、a1 用户的配置文件
anon_upload_enable=YES # 开启上传

b、a2 用户的配置文件
anon_mkdir_write_enable=YES # 允许创建目录

c、a3 用户的配置文件
anon_upload_enable=YES # 开启上传
anon_other_write_enable=YES # 开放其他人写入权限,操作其他文件

d、a4 用户的配置文件
local_root=/var/ftproot/a4 # 配置a4用户的根目录
anon_upload_enable=YES # 开启上传
anon_mkdir_write_enable=YES # 允许创建目录
anon_other_write_enable=YES # 开放其他人写入权限,操作其他文件

猜你喜欢

转载自www.cnblogs.com/outsrkem/p/12654694.html