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		#存放虚拟用户的认证文件

2、生成数据库文件

    cd /etc/vsftpd/vuser_db/    
    vim login_vuser
    username		#依次单行用户名,密码
    password
    username
    password
db_load -T -t -f /etc/vsftpd/vuser_db/login_vuser /etc/vsftpd/vuser_db/vuser.db	 #生成虚拟用户的数据库文件

3、更改pam认证模块

    cd /etc/pam.d/    
    vim vsftpd.vuser
    auth	required	/lib64/security/pam_userdb.so	db=/etc/vsftpd/vuser_db/vuser		#此处注意不要加.db后缀
    account    required        /lib64/security/pam_userdb.so   db=/etc/vsftpd/vuser_db/vuser

4、更改vsftpd的配置文件

    vim /etc/vsftpd/vsftpd.conf    
    anonymous_enable=YES		#开启匿名用户访问
    local_enable=YES		#本地用户访问
    write_enable=YES		#用户的写权限
    local_umask=022
    ######################################################
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    ######################################################
    listen=YES
    user_config_dir=/etc/vsftpd/vuser_dir
    pam_service_name=/etc/pam.d/vsftpd.vuser
    userlist_enable=NO
    tcp_wrappers=YES
    chroot_list_enable=YES		#不允许用户切换家目录
    ###################################################### 
    guest_enable=YES		#开启匿名用户
    guest_username=vuser
    ######################################################
    chown_uploads=YES		#是否允许上传的文件改变属主
    chown_username=root		#改变为哪个属主

5、为虚拟用户创建对应的配置文件

    cd /etc/vsftpd/vuser_dir/   #创建两个虚拟用户的配置文件
    vim test
    anon_upload_enable=YES
    download_enable=YES
    anon_other_write_enable=NO
    anon_mkdir_write_enable=NO
    local_root=/some/to/path/
    ######################################################
    vim admin
    anon_upload_enable=YES
    download_enable=YES
    anon_other_write_enable=YES
    anon_mkdir_write_enable=YES
    anon_world_readable_only=NO
    local_root=/some/to/path/

6、重启vsftpd测试登陆

    service vsftpd restart    
    
    lftp -u username,password host    #测试

b)使用pam_mysql来认证用户

1、创建目录存储虚拟用户配置文件

mkdir /etc/vsftpd/vuser_dir

2、安装mysql-server mysql-devel openssl-devel pam_mysql软件

    yum -y install mysql-server mysql-devel openssl-devel pam_mysql #epel源里有pam_mysql模块

3、登陆mysql创建vsftpd库文件等

    mysql -uroot -p password    
    create database vsftpd
    grant all on vsftpd.* to ‘vsftpd‘@‘localhost‘ identified by ‘vsftpd‘;
    grant all on vsftpd.* to ‘vsftpd‘@‘127.0.0.1‘ identified by ‘vsftpd‘;
    
    use vsftpd;
    CREATE TABLE `users` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,`name` varchar(50) NOT NULL,`password` char(48) NOT NULL,PRIMARY KEY (`id`));
    INSERT INTO users (name,password) VALUES (‘username‘,‘password‘),(‘username‘,‘password‘);
    flush privileges;
    
    mysql -uUSERNAME -pPASSWORD 			#测试上述创建的用户是否有效

4、创建mysql的pam认证文件

    vim vsftpd.mysql    
    auth required /lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password cypt=0
    account required /lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password cypt=0

5、修改vsftpd配置文件

    vim /etc/vsftpd/vsftpd.conf    
    anonymous_enable=YES		#开启匿名用户访问
    local_enable=YES		#本地用户访问
    write_enable=YES		#用户的写权限
    local_umask=022
    ######################################################
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    ######################################################
    listen=YES
    user_config_dir=/etc/vsftpd/vuser_dir
    pam_service_name=/etc/pam.d/vsftpd.mysql      #这里与上面的hash认证是有区别的
    userlist_enable=NO
    tcp_wrappers=YES
    chroot_list_enable=YES		#不允许用户切换家目录
    ###################################################### 
    guest_enable=YES		#开启匿名用户
    guest_username=vuser
    ######################################################
    chown_uploads=YES		#是否允许上传的文件改变属主
    chown_username=root		#改变为哪个属主	

6、为虚拟用户创建对应的文件

    cd /etc/vsftpd/vuser_dir/   #创建两个虚拟用户的配置文件
    vim test
    anon_upload_enable=YES
    download_enable=YES
    anon_other_write_enable=NO
    anon_mkdir_write_enable=NO
    local_root=/some/to/path/
    ######################################################
    vim admin
    anon_upload_enable=YES
    download_enable=YES
    anon_other_write_enable=YES
    anon_mkdir_write_enable=YES
    anon_world_readable_only=NO
    local_root=/some/to/path/

7、重启vsftpd测试登陆

    service vsftpd restart    
    lftp -u username,password host        #测试

三、所有的针对于用户权限的配置都可以在包含的虚拟用户配置文件的路径下进行单独的配置选项。

如果其中配置好登陆不上,可以查看安全认证日志。

时间: 2024-12-12 05:49:17

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

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

vsftpd基于pam_mysql的虚拟用户机制

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

CentOS 6.4下安装vsftpd、配置虚拟用户登录

概述: vsftpd是Linux下比较著名的FTP服务器,搭建FTP服务器当然首选这个. 本文介绍了在CentOS 6.4下安装vsftpd.配置虚拟用户登录FTP的过程. 正文: 一:安装vsftpd 查看是否已经安装vsftpd rpm -qa | grep vsftpd 如果没有,就安装,并设置开机启动 yum -y install vsftpd chkconfig vsftpd on 二:基于虚拟用户的配置 所谓虚拟用户就是没有使用真实的帐户,只是通过映射到真实帐户和设置权限的目的.虚拟

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的虚拟用户访问

ftp:File Transfer Protocol,工作在应用层的文件传输协议,监听在tcp的21号端口:而ftp协议的实现有vsftpd.lftp.Filezilla.proftpd等等. ftp的用户一般由三类: 匿名用户:不需要账号和密码就能直接登录 本地用户:当前系统上非系统用户登录,即本地的普通用户 虚拟用户:借助于其他的存储方式系统来远程登录,而非本地用户 由于ftp的文件传输是明文的,不具有安全性:于是就有了一种安全的ftp协议的实现,那就是vsftpd vsftpd是ftp协议

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

vsftpd配置虚拟用户

在VSFTP中,虚拟用户认证使用的是单独的口令库文件(pam_userdb),由可插入认证模块(PAM)认证.使用这种方式只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源,由此来提高系统的安全性.并且配置更加灵活. 下面介绍配置过程.注意防火墙和selinx 1.生成虚拟用户口令文件. # vim /etc/vsftpd/login.txt ftpu1#用户名 1234#密码 ftpu2 qwer ftpu3 5678 2.生成口令库文件,并修改其权限: # db_load -T -

VSFTPD配置虚拟用户 -V2

1.安装vsftpd #yum install  vsftpd 2.建立虚拟用户,格式为第一行为用户名名,第二行为密码,然后类推 #vim /home/loginuser.txt 3.为虚拟用户生成建立db数据库,同时只有root用户才能读写 # db_load -T -t hash -f /home/loginuser.txt /etc/vsftpd/vsftpd_login.db # chmod 600 /etc/vsftpd/vsftpd_login.db 4.配置pam文件 # u (6

vsftpd基于mysql的认证方式

epel的yum源中有php-xcache 安装epel源: cd /etc/yum.repos.d wget http://mirrors.neusoft.edu.cn/epel/epel-release-latest-6.noarch.rpm rpm -ivh epel-release-latest-6.noarch.rpm 然后安装pam_mysql这个包: yum -y install pam_mysql [[email protected] yum.repos.d]# ll /lib6