FTP服务器-vsftp pam mysql

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介:

一、安装所需要程序

1.事先安装好开发环境和mysql数据库

1
2
#yum -y install mysql-server mysql-devel
#yum -y install groupinstall "Development Tools" "Development Libraries"

2.安装pam_mysql-0.7RC1

1
2
3
4
5
#tar zxvf pam_mysql-0.7RC1.tar.gz
#cd pam_mysql-0.7RC1
#./configure --with-mysql=/usr --with-openssl
#make
#make install

3.安装vsftp

1
#yum -y install vsftpd

二、创建虚拟用户账号

1.准备数据库及相关表

首先,确保mysql服务已经正常启动。而后,按需要建存储虚拟用户的数据库即可,这里将其创建为vsftpd数据库

1
2
3
4
5
6
7
8
9
mysql>create databases vsftpd;
mysql>grant  select  on vsftpd.* to vsftpd@localhost identified by  '密码' ;
mysql>grant  select  on vsftpd.* to vsftpd@127.0.0.1 identified by  '密码' ;
mysql>flush privileges;
mysql>use vsftpd;
mysql>create table  users ( id  int AUTO_INCREMENT NOT NULL,
                ->name char(20) binary NOT NULL,
                ->password char(48) binary NOT NULL,
                ->primary key( id ));

2.添加测试的虚拟用户

根据需要添加所需要的用户,需要说明的是,这里将密码采用明文格式存储,原因是pam_mysql的password()函数与Mysql的password()函数可能会有所不同。

1
2
   mysql>insert into  users (name,password) values( 'tom' , 'passwd1' );
   mysql>insert into  users (name,password) values( 'jerry' , 'passwd2' );

三、配置vsftpd

1.建立pam认证所需文件

1
#vi /etc/pam.d/vsftpd.mysql

添加如下两行

1
2
auth required  /lib/security/pam_mysql .so user=vsftpd  passwd =密码 host=localhost db=vsftpd table= users  usercolumn=name passwdcolumn=password crypt=0
account required  /lib/security/pam_mysql .so user=vsftpd  passwd =密码 host=localhost db=vsftpd table= users  usercolumn=name passwdcolumn=password crypt=0

2.修改vsftpd的配置文件,使其适应mysql认证

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

1
2
#useradd -s /sbin/nologin -d /var/ftproot vuser
#chmod go+rx /var/ftproot

请确保/etc/vsftpd.conf中已经启用了以下选项

1
2
3
4
5
6
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES

而后添加以下选项

1
2
guest_enable=YES
guest_username=vuser

并确保pam_service_name选项的值如下所示

1
pam_service_name=vsftpd.mysql

四、启动vsftpd服务

1
2
# service vsftpd start
# chkconfig vsftpd on

查看端口开启情况

1
2
# netstat -tnlp |grep :21
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      23286 /vsftpd

使用虚拟用户登录,验正配置结果,以下为本机的命令方式测试,你也可以在其它Win Box上用IE或者FTP客户端工具登录验正

1
# ftp localhost

五、配置虚拟用户具有不同的访问权限

vsftpd可以在配置文件目录中为每个用户提供单独的配置文件以定义其ftp服务访问权限,每个虚拟用户的配置文件名同虚拟用户的用户名。配置文件目录可以是任意未使用目录,只需要在vsftpd.conf指定其路径及名称即可。

1、配置vsftpd为虚拟用户使用配置文件目录

1
# vim vsftpd.conf

添加如下选项

1
user_config_dir= /etc/vsftpd/vusers_dir

2、创建所需要目录,并为虚拟用户提供配置文件

1
2
3
# mkdir /etc/vsftpd/vusers_dir/
# cd /etc/vsftpd/vusers_dir/
# touch tom jerry

3、配置虚拟用户的访问权限

虚拟用户对vsftpd服务的访问权限是通过匿名用户的相关指令进行的。比如,如果需要让tom用户具有上传文件的权限,可以修改/etc/vsftpd/vusers/tom文件,在里面添加如下选项即可。

1
anon_upload_enable=YES

问题:

1.使用命令ftp ip登录ftp服务是,一直登录不了。查看/var/log/secure出现以下信息:

1
Apr 25 17:43:04 Centos vsftpd[18845]: pam_mysql - MySQL error (Can 't connect to local MySQL server through socket ' /var/lib/mysql/mysql .sock' (13))

解决:由于Linux没有关闭selinux导致,使用用命令setenforce 0临时关闭或编辑/etc/selinux/config将SELINUX=enforcing改为SELINUX=disabled重启机器即可。










本文转自 SoulMio 51CTO博客,原文链接:http://blog.51cto.com/bovin/1837003,如需转载请自行联系原作者
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
9月前
|
存储 缓存 监控
MySQL服务器配置优化:my.cnf参数调优指南
本文深入解析了MySQL核心配置参数及性能优化技巧,涵盖内存结构、调优原则、存储引擎优化、查询性能优化等内容,通过实战案例帮助读者构建高性能MySQL服务器配置,解决常见的性能瓶颈问题。
1241 0
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
572 28
|
Ubuntu 安全 网络安全
在Ubuntu系统下使用vsftpd配置FTP服务器的步骤
以上就是在Ubuntu系统下使用vsftpd配置FTP服务器的步骤。这些步骤都是基础的,但足够让你建立一个简单的FTP服务器。如果你需要更高级的功能,例如SSL加密、虚拟用户等,你可能需要进一步研究vsftpd的配置选项。
849 13
|
安全 关系型数据库 MySQL
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
|
存储 SQL 关系型数据库
服务器数据恢复—云服务器上mysql数据库数据恢复案例
某ECS网站服务器,linux操作系统+mysql数据库。mysql数据库采用innodb作为默认存储引擎。 在执行数据库版本更新测试时,操作人员误误将在本来应该在测试库执行的sql脚本在生产库上执行,导致生产库上部分表被truncate,还有部分表中少量数据被delete。
357 25
|
安全 关系型数据库 MySQL
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误
|
SQL 存储 关系型数据库
MySQL/SqlServer跨服务器增删改查(CRUD)的一种方法
通过上述方法,MySQL和SQL Server均能够实现跨服务器的增删改查操作。MySQL通过联邦存储引擎提供了直接的跨服务器表访问,而SQL Server通过链接服务器和分布式查询实现了灵活的跨服务器数据操作。这些技术为分布式数据库管理提供了强大的支持,能够满足复杂的数据操作需求。
677 12
|
监控 关系型数据库 MySQL
如何解决 MySQL 数据库服务器 CPU 飙升的情况
大家好,我是 V 哥。当 MySQL 数据库服务器 CPU 飙升时,如何快速定位和解决问题至关重要。本文整理了一套实用的排查和优化套路,包括使用系统监控工具、分析慢查询日志、优化 SQL 查询、调整 MySQL 配置参数、优化数据库架构及检查硬件资源等步骤。通过一个电商业务系统的案例,详细展示了从问题发现到解决的全过程,帮助你有效降低 CPU 使用率,提升系统性能。关注 V 哥,掌握更多技术干货。
2019 0
|
安全 编译器 Linux
深入解析与防范:基于缓冲区溢出的FTP服务器攻击及调用计算器示例
本文深入解析了利用缓冲区溢出漏洞对FTP服务器进行远程攻击的技术,通过分析FreeFlow FTP 1.75版本的漏洞,展示了如何通过构造过长的用户名触发缓冲区溢出并调用计算器(`calc.exe`)。文章详细介绍了攻击原理、关键代码组件及其实现步骤,并提出了有效的防范措施,如输入验证、编译器保护和安全编程语言的选择,以保障系统的安全性。环境搭建基于Windows XP SP3和Kali Linux,使用Metasploit Framework进行攻击演示。请注意,此内容仅用于教育和研究目的。
622 4
|
网络协议 文件存储 Windows
Windows Server 2019 FTP服务器搭建
Windows Server 2019 FTP服务器搭建
747 0

推荐镜像

更多