MYSQL验证vsftpd服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL验证vsftpd服务相关的知识,希望对你有一定的参考价值。

背景:前段时间,有客户需要配置vsftp,并使用mysql里的用户验证登录(老系统数据库已迁移到阿里云RDS)

资源:一台centos6.8 ECS,一台关系型数据库RDS

步骤:

1、安装配置vsftp

yum install vsftpd -y

      新建用户,用于登录vsftp

useradd -d /cloud/pub -s /sbin/nologin pub

     设置ftp根目录的所有者为pub

chown pub:pub -R /cloud/pub

      修改vsftpd.conf文件

listen=YES
listen_port=21
pam_service_name=vsftpd
ftpd_banner=Welcome to FTP server
guest_enable=YES
guest_username=pub
pasv_min_port=30000
pasv_max_port=30999
connect_from_port_20=YES
idle_session_timeout=600
data_connection_timeout=120
max_clients=0
max_per_ip=10
local_max_rate=512000
use_localtime=YES
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
virtual_use_local_privs=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
tcp_wrappers=YES

2、安装配置pam_mysql (由于本次直接使用RDS数据,因此无需安装mysql-server、mysql-devel等)

yum  install pam-devel  pam_mysql  -y

    查看pam_mysql模块文件是否存在

ls /lib/security/pam_mysql.so
ls /lib64/security/pam_mysql.so

    修改vsftpd的默认pam配置文件

mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
vim /etc/pam.d/vsftpd   注意:文件中的密码不能有特殊字符,不支持转义
auth required /lib/security/pam_mysql.so user=用户名 passwd=密码 host=数据库地址 db=数据库名 table=表名 usercolumn=用户字段 passwdcolumn=密码字段 crypt=0
account required /lib/security/pam_mysql.so user=用户名 passwd=密码 host=数据库地址 db=数据库名 table=表名 usercolumn=用户字段 passwdcolumn=密码字段 crypt=0

   crypt=0:表示口令使用明文方式保存在数据库中 
   crypt=1:表示口令使用UNIX的DES加密方式加密后保存在数据库中 
   crypt=2:表示口令使用MySQL的password()函数加密后保存在数据库中 
   crypt=3:表示口令使用MD5散列值的方式保存在数据库中

4、注入测试数据

      RDS控制台新建数据库、新建用户名和密码

      登录数据库,新建表,注入测试数据

CREATE TABLE  `c_config_ftp` (
  `id` int(6) NOT NULL ,
  `username` varchar(30) NOT NULL,
  `password` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) 

INSERT INTO `c_config_ftp` (`username`, `password`) VALUES ( test1, 123456);

5、启动vsftp服务

service vsftpd start

 




以上是关于MYSQL验证vsftpd服务的主要内容,如果未能解决你的问题,请参考以下文章

Vsftpd使用MySQL验证实验

实现基于mysql验证的vsftpd虚拟用户 (centos6)

实验-----基于MYSQL验证的vsftpd虚拟用户

实现基于MYSQL验证的vsftpd虚拟用户功能

实验——基于文件验证和MYSQL验证的vsftpd虚拟用户

VSFTPD使用pam_MySQL作用户验证