实验记录:vsftp整合mysql-pam管理虚拟账号

为了提高系统的安全性,我们采用虚拟用户而非系统(匿名)用户的形式访问FTP。整体思路是通过开启vsftp中的虚拟账户功能并调用新的pam认证模块,然后再修改pam模块使得可以通过mysql验证用户的合法性。以下为实验过程。

第一步装包:

yum install -y vsftpd mysql-server mysql-devel pam-devel

yum groupinstall -y Development tools

tar -xf pam_mysql-0.7RC1.tar.gz -C /usr/src/

cd /usr/src/pam_mysql-0.7RC1

./configure

make && make install

第二步配置mysql

service mysqld start

mysql -p

create database ftpusers;

use ftpusers;

create table users( id int AUTO_INCREMENT NOT NULL,name char(20) NOT NULL UNIQUE KEY, passwd char(48) NOT NULL, primary key(id) );

insert into users(name,passwd)values(‘nick‘,password(‘redhat‘));

grant select on ftpusers.* to [email protected] identified by ‘vftpadm‘;

flush privileges;

第三步编辑vsftpd.conf,以下是我的配置:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
user_config_dir=/etc/vsftpd/user_config
local_root=/var/ftp/pub
guest_enable=YES
guest_username=virftp
pam_service_name=vftp
userlist_enable=YES
tcp_wrappers=YES
userlist_deny=YES

第四步编辑pam文件:vim /etc/pam.d/vftp

session optional pam_keyinit.so force revoke
auth sufficient /lib64/security/pam_mysql.so user=virftp passwd=vftpadm host=localhost db=ftpusers table=users usercolumn=name passwdcolumn=passwd crypt=2
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include password-auth
account sufficient /lib64/security/pam_mysql.so user=virftp passwd=vftpadm host=localhost db=ftpusers table=users usercolumn=name passwdcolumn=passwd crypt=2
account include password-auth
session required pam_loginuid.so
session include password-auth

上面红色字体是验证虚拟账户用的,其余为默认vsftpd验证,local账户验证时用得到。

第五步:添加虚拟账户

useradd virftp -s /sbin/nologin -d /home/virftp virftp

chown virftp. -R /home/virftp/

第六步:创建虚拟账户配置文件

mkdir /etc/vsftpd/user_config

cd /etc/vsftpd/user_config

创建虚拟账户nick:

vim nick

local_root=/home/virftp/

这里只限制了其根目录,这里不定义的一律继承主配置文件的设定(/etc/vsftp/vsftpd.conf)

cp一个文件到此目录来验证试验

cp /etc/inittab /home/virftp

service vsftpd restart

最后登陆账户nick 密码redhat 查看结果

试验总结:开始我在pam文件中mysql验证没用sufficient而用了required,直接导致不能用local账户登录。

这里解释下两者的含义,sufficient代表一旦满足这条规则,则直接退出不往下匹配了,如果不满足,则往下继续匹配。

required说明如果不匹配则直接退出,如果匹配则继续往下匹配。

所以当我用required时,local账户不匹配直接退出。

实验记录:vsftp整合mysql-pam管理虚拟账号

时间: 2024-07-29 14:20:35

实验记录:vsftp整合mysql-pam管理虚拟账号的相关文章

FTP服务学习笔记之基于MySQL+PAM的vsftpd虚拟用户

基于mysql+PAM的vsftpd虚拟用户配置 一.实验说明 操作系统:Redhat5.8_X64bit 实验平台:VMware Workstation 所需要的软件包:pam_mysql-0.7RC1.tar.gz 二.安装所需要程序 1.事先安装好开发环境和mysql数据库 # yum -y groupinstall "Development Tools" "Development Libraries" #yum -y install mysql-server

VSFTP+MySQL虚拟用户配置

VSFTP+MySQL虚拟用户配置 1. 安装vsftp软件 下载vsftp(最新版本)软件: wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.1.0.tar.gz 如果要开始ssl功能的话,安装vsftp之前要先安装openssl-0.9.8g.tar.gz包 [[email protected] ftp]# tar xzvf openssl-0.9.8g.tar.gz [[email protected] ftp]# cd openssl

FTP基于PAM和MySQL/MariaDB实现虚拟用户访问控制

前言 vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序,特点是小巧轻快,安全易用,目前在开源操作系统中常用的FTP套件主要有proftpd.pureftp.ServU和wu-ftpd等.本文将讲解vsftpd的基本功能和如何基于PAM和MySQL/MariaDB实现虚拟用户访问控制. 基础配置介绍 工作原理 状态响应码 1xx:信息码 2xx:成功状态码 3xx:进一步提示补全信息的状态码 4xx:客户端错误 5xx:服务器端错误 用户认证 虚拟用户:仅用于访问某特定服务中的资源

vsftp基于mysql的虚拟用户,iptables的用法

vsftp基于mysql创建虚拟用户 1.首先安装环境 yum groupinstall -y "Development Tools" "Server PlatformDevelopment" yum install -y pam-devel mariadb-devel mariadb-server vsftpd lftp ftp 下载最新的pam-mysql http://pam-mysql.sourceforge.net/ 编译安装pam-mysql tar x

安装vsftpd+pam+mysql实现对虚拟用户身份认证功能

安装vsftpd+pam+mysql来实现对虚拟用户身份认证功能 事项说明:在这里vsftpd直接使用yum  -y  install   vsftpd来直接安装的:mysql是使用通用二进制格式安装的,使用的版本为mysql-5.5.28.这里不再介绍安装步骤,前面已经详细介绍过.由于vsftpd需要借助pam模块到mysql数据库中检索用户名和密码,在这里还需要安装pam-mysql模块,才能实现pam到mysql中完成用户名和密码的认证功能. 一.安装所需要程序 1.事先安装好开发环境和m

PXE安装Centos65 postfix+exmail+mysql实现基于 虚拟用户的web邮件系统

PXE安装Centos postfix+exmail+mysql实现基于 虚拟用户的web邮件系统 在实现centos+postfix的web内网邮件之前,参考了许多网上.书本知识,经过两次大的改动,目前该系统已经为公司正常服务工作五年多. 第一部分 win7+tftpd32+PXE安装CentOS6.5 32bit 第一步 安装CentOS6.5 32bit操作系统 基于win7+tftpd32+PXE来安装,但我这里只用虚拟机VMware Workstation9.0.1 build-894

Spring Boot学习记录(三)--整合Mybatis

Spring Boot学习记录(三)–整合Mybatis 标签(空格分隔): spring-boot 控制器,视图解析器前面两篇都已弄好,这一篇学习持久层框架整合. 1.数据源配置 数据源使用druid,maven引入相关依赖,包括spring-jdbc依赖,mysql依赖 1.转换问题 配置的过程要学会为什么这样配置,而不是只学会了配置.这里我们可以和以前的配置方式对比: 以前版本 <!--配置数据库连接池Druid--> <bean id="dataSource"

Centos6下vsftpd基于mysql认证创建虚拟用户

一,安装环境以及安装的软件: 1,CentOS release 6.4 (Final) [IP:192.168.1.110] 2,vsftpd-2.2.2-13.el6_6.1.x86_64 3,pam_mysql-0.7-0.12.rc1.el6.x86_64 4,mysql-5.6.16(编译安装) 二,在数据库上创建登录ftp的账号和密码 1,创建对应的database,远程授权登录账号并创建表用来存储登录ftp账号密码. mysql> create database vsftpd; my

Linux上FTP部署:基于mariadb管理虚拟用户

FTP原理 FTP 采用 Internet 标准文件传输协议 FTP 的用户界面, 向用户提供了一组用来管理计算机之间文件传输的应用程序.图1 FTP 的基本模型 FTP 是基于客户---服务器(C/S)模型而设计的,在客户端与 FTP 服务器之间建立两个连接. 开发任何基于 FTP 的客户端软件都必须遵循 FTP 的工作原理,FTP 的独特的优势同时也是与其它客户服务器程序最大的不同点就在于它在两台通信的主机之间使用了两条 TCP 连接,一条是数据连接,用于数据传送:另一条是控制连接,用于传送