VSFTPD使用pam_MySQL作用户验证

1. 安装Vsftp

yum install -y vsftpd

2. 安装MariaDB

yum install -y mariadb mariadb-devel mariadb-server

systemctl restart mariadb

systemctl enable mariadb

netstat -npl|grep 3306

3. 为root账户设置密码

mysql_secure_installation          //该命令会执行以下几个设置:

a)为root用户设置密码y

b)删除匿名账号y

c)取消root用户远程登录y

d)删除test库和对test库的访问权限y

e)刷新授权表使修改生效y

4. 建立一个数据库并设置相应权限。

[[email protected] ~]# mysql -u root -p

MariaDB [(none)]> create database ftpdb;

MariaDB [(none)]> use ftpdb;

MariaDB [ftpdb]> create table user(name varchar(20),passwd varchar(48));

MariaDB [ftpdb]> insert into user(name,passwd) values ("user123",password("123")),("user456",password("456"));

MariaDB [ftpdb]> select * from user;

+---------+-------------------------------------------+

| name    | password                                  |

+---------+-------------------------------------------+

| user123 | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |

| user456 | *531E182E2F72080AB0740FE2F2D689DBE0146E04 |

+---------+-------------------------------------------+

MariaDB [ftpdb]> grant select on ftpdb.user to [email protected] identified by "123456";

MariaDB [ftpdb]> flush privileges;

5. 配置PAM认证。

yum install -y automake pam pam-devel openssl-devel

yum groupinstall -y ‘development tools‘

6. 编译安装pam_mysql包

wget http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-0.7RC1.tar.gz

tar -xzvf pam_mysql-0.7RC1.tar.gz

cd pam_mysql-0.7RC1/

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

make && make install

ls /lib64/security/ | grep mysql

pam_mysql.la

pam_mysql.so

7. 建立PAM认证信息

vim /etc/pam.d/vsftpd,注释其他内容,写入如下两行:

auth required /lib64/security/pam_mysql.so user=ftpuser passwd=123456 host=localhost db=ftpdb table=user usercolumn=name passwdcolumn=passwd crypt=2

account required /lib64/security/pam_mysql.so user=ftpuser passwd=123456 host=localhost db=ftpdb table=user usercolumn=name passwdcolumn=passwd crypt=2

crypt=0: 明文密码

crypt=1: 使用crpyt()函数加密

crypt=2: 使用MYSQL中的password()函数加密

crypt=3:使用md5的散列方式

8. 建立本地虚拟用户

useradd -s /sbin/nologin ftpuser

9. 修改vsftpd.conf文件

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO #不允许匿名用户登录

local_enable=YES #允许本地用户登录

write_enable=YES #写入权限

local_umask=077 #本地用户创建文件的umask值

anon_upload_enable=NO #不允许匿名用户上传

anon_mkdir_write_enable=NO #不允许匿名用户创建目录

dirmessage_enable=YES #当用户进入某个目录时,会显示该目录需要注意的内容,显示的档案默认是”.message”

xferlog_enable=YES # 表明将记录的上传下载情况写在xferlog_file所指定的文件中

connect_from_port_20=YES #主动模式数据传输接口

chown_uploads=YES #如果启用,所有匿名上传文件的所有权将更改为chown_username中指定的用户

chown_username=ftpuser

xferlog_file=/var/log/xferlog

xferlog_std_format=YES #传输日志文件将以标准 xferlog 的格式书写

idle_session_timeout=600 #空闲会话中断时间

data_connection_timeout=120 #表明数据连接超时时间为120秒

ftpd_banner=welcome #首次登录提示信息

chroot_local_user=YES #把所有用户限制在主目录

chroot_list_enable=NO #吧所有用户限制在主目录,不允许chroot_list中的例外

#chroot_list_file=/etc/vsftpd/chroot_list

listen=YES #启用监听模式

listen_ipv6=NO #启用IPv6监听模式,与listen互斥

pam_service_name=vsftpd #PAM模块提供的认证服务所使用的配置文件名

userlist_enable=YES #禁止userlist_file指定的文件中的用户名登录

tcp_wrappers=YES #主机访问控制

allow_writeable_chroot=YES

anon_other_write_enable=NO #不允许匿名用户修改

anon_world_readable_only=NO #不允许匿名用户下载

delete_failed_uploads=TRUE #将上传失败的文件删除

dirlist_enable=YES #允许显示目录列表

download_enable=YES #允许下载

local_root=/home/ftpuser #FTP根目录

anon_max_rate=1048576 #匿名用户最大传输速率(字节/秒),0为无限制

local_max_rate=1048576 #本地用户最大传输速率(字节/秒),0为无限制

anon_umask=022 #匿名用户创建文件的umask值

max_login_fails=3 #3次登录失败终止会话

max_per_ip=10 #限制客户端的并发连接数

pasv_enable=YES #开启被动模式

pasv_min_port=24500 #被动模式最小端口

pasv_max_port=24600 #被动模式最大端口

listen_address=192.168.200.101 #监听地址

guest_enable=YES#开启虚拟用户

virtual_use_local_privs=YES

#当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限

guest_username=ftpuser  #虚拟用户对应系统用户

10. 启动vsftpd服务。

systemctl start vsftpd

systemctl enable vsftpd

原文地址:https://www.cnblogs.com/liang-yao/p/8449820.html

时间: 2024-10-17 16:31:27

VSFTPD使用pam_MySQL作用户验证的相关文章

vsftpd基于pam_mysql做虚拟用户认证

(1)下载epel源 [[email protected] ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo  #下载阿里云的epel源 [[email protected] ~]# yum repolist (2)安装所需要的包 [[email protected] ~]# yum -y groupinstall "Development Tools" "Ser

vsftpd基于pam_mysql的虚拟用户认证

1.ftp用户 匿名用户:映射到某一个固定的系统用户,例如(ftp,vsftp,/var/ftp) 本地用户:系统用户,root及系统用户(0-999) 虚拟用户:nsswitch: name services switch  名称服务转换 PAM: Plugabl Plugable Authentication Modules  插入式认证模块本文主要讲解vsftpd基于pam_mysql的虚拟用户认证步骤. 2.准备环境 操作系统 主机名 IP地址 环境描述 CentOS 7.1 ch7 1

用户不能用质询握手身份验证协议(CHAP)作身份验证

错误提示: 用户不能用质询握手身份验证协议(CHAP)作身份验证.没有此用户的可逆加密的密码.为了确保启用了可逆加密的密码,可以检查网域密码策略或用户帐户上的密码设置. 解决办法:I had that policy set and it was not fixing my issue.  The reason why it wasn't fixing my issue, once you have this policy set you have to reset the password. 

vsftpd基于pam_mysql的虚拟用户机制

一.虚拟用户概述 vsftpd使用虚拟用户时,需要为所有的虚拟用户创建一个系统用户,因为无论vsftpd使用的是哪一种用户类型(匿名用户.系统用户.虚拟用户),最终都是要映射为操作系统上的一个用户,而每一个文件资源都有各自的权限,只有操作系统上的用户才能根据权限模型判断是否能够访问该文件资源.这里仅介绍vsftpd基于pam_mysql的虚拟用户机制的使用. 二.vsftpd基于pam_mysql的虚拟用户机制 1.编译安装pam_mysql (1) 编译pam_mysql前要提供开发环境,并安

vsftpd+pam_mysql 虚拟用户配置

公司项目需求: 我们公司是化妆品电子商务公司 1.搭建一台ftp服务器用于上传包裹快递面单图片,实现基本的上传下载功能 2.vsftpd通过虚拟用户登录,可以外网访问 3.限制虚拟用户登录ip 4.虚拟用户相关配置文件可以界面操作添加.修改等,而且要及时更新 下面主要是1.2两步实现步骤及注意事项 3.4两步在另一篇博客里有详细的说明及代码(vsftpd+pam_mysql+shell) 安装pam_mysql  (请一定要安装,下面安装vsftpd错误3给出了解释)这里没有给出mysql的安装

vsftpd基于pam_mysql的认证和hash编码的方式配置虚拟用户

基础介绍什么的就自行搜索了.下面直接从安装配置开始. 环境:centos6 一.安装 yum -y install vsftpd 安装完成后可以直接启动.service vsftpd start 二.配置 使用pam_mysql或者db_load的认证方式: a)使用db_load来设置虚拟用户 1.在/etc/vsftpd/下创建两个目录     mkdir /etc/vsftpd/vuser_dir #后续存放虚拟用户的配置文件     mkdir /etc/vsftpd/vuser_db

vsftpd安装配置虚拟用户

原文发表于cu:2016-03-11 参考文档: FTP原理:http://vbird.dic.ksu.edu.tw/linux_server/0410vsftpd_1.php FTP配置:http://vbird.dic.ksu.edu.tw/linux_server/0410vsftpd_2.php 虚拟用户配置:http://yuanbin.blog.51cto.com/363003/129071 一.环境 OS CentOS6.7 x86_64 网络 Sever:192.168.1.25

MVC WebApi 用户验证 (2)

构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(66)-MVC WebApi 用户验证 (2) 前言: 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(65)-MVC WebApi 用户验证 (1) 回顾上一节,我们利用webapi简单的登录并进行了同域访问与跨域访问来获得Token,您可以跳转到上一节下载代码来一起动手. 继续上一篇的文章,我们接下来演示利用拿到的Token来访问接口,管理接

构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(66)-MVC WebApi 用户验证 (2)

前言: 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(65)-MVC WebApi 用户验证 (1) 回顾上一节,我们利用webapi简单的登录并进行了同域访问与跨域访问来获得Token,您可以跳转到上一节下载代码来一起动手. 继续上一篇的文章,我们接下来演示利用拿到的Token来访问接口,管理接口,利用系统权限管理接口,对每个接口进行授权(管理接口为选读部分,因为你需要阅读最开始权限管理部分(18-27节),才能阅读这部分) 开发环境: V