1. 程式人生 > >vsftpd基於mysql實現用戶認證

vsftpd基於mysql實現用戶認證

pri fig rom 用戶 nbsp bre localtime margin align

一、演示環境:

IP地址

操作系統

服務器角色

192.168.1.144

CentOS 6.9

vsftpd服務器

192.168.1.145

CentOS 6.9

mysql服務器

二、安裝前準備:

1、 服務器時間校對

2、 配置epel

三、mysql服務器所需執行的操作:

1、 安裝軟件包:# yum -y install mysql-server mysql-devel ftp

2、 啟動mysql,檢查3306號端口是否被監聽:# service mysqld start # ss -tnlp | grep :3306

3、 初始化mysql# mysql_secure_installation //

設置root用戶密碼為123456

4、 創建數據庫、表,並授權遠程用戶登錄:

# mysql -uroot -p

mysql> create database ftp;

mysql> grant select on ftp.* to ftpuser@'192.168.1.144' identified by '123456';

mysql> flush privileges;

mysql> use ftp;

mysql> create table user(id int unsigned auto_increment not null primary key,name varchar(20) binary not null,password char(48) binary not null);

mysql> desc user;

技術分享圖片

5、 添加FTP虛擬用戶marionkeyso

mysql> insert into user(name,password) values('marion',password('mftpasswd')),('keyso',password('kftpasswd'));

備註:虛擬用戶marion使用密碼mftpasswd登錄FTP,虛擬用戶keyso則使用密碼kftpasswd登錄FTP

mysql> select * from user;

技術分享圖片

備註:賬號密碼使用password()函數加密後存儲

四、vsftpd服務器所需執行的操作:

1、 安裝軟件包:# yum -y install vsftpd pam_mysql mysql

2、 使用賬號ftpuser遠程登錄mysql服務器:

技術分享圖片

3、 創建認證所需文件vsftpd.mysql

# rpm -ql pam_mysql | grep pam_mysql.so --> /lib64/security/pam_mysql.so

# vim /etc/pam.d/vsftpd.mysql,添加如下兩行代碼:

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

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

備註:

數字

代表的含義

0

不加密,明文

1

使用crypt函數加密

2

使用mysql password()函數加密

3

使用md5加密

4

使用sha1加密

4、 創建虛擬用戶映射的系統用戶:

# useradd -s /sbin/nologin -d /ftpdocs vuser //新的家目錄ftpdocs必須事先不存在,該命令會自動創建

# chmod go+rx /ftpdocs

5、 修改主配置文件/etc/vsftpd/vsftpd.conf,確認啟用如下選項:

chroot_local_user=YES

pam_service_name=vsftpd.mysql

guest_enable=YES

guest_username=vuser

user_config_dir=/etc/vsftpd/vusers

use_localtime=YES

6、 創建對應的虛擬用戶配置文件目錄:# mkdir -pv /etc/vsftpd/vusers

7、 配置不同的虛擬用戶具有不同的訪問權限:

# cd /etc/vsftpd/vusers

# vim marion

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

# cp marion keyso

# sed -i 's#YES#NO#g' keyso

技術分享圖片

備註:每個虛擬用戶的配置文件名同虛擬用戶的用戶名。虛擬用戶所能執行的權限都由匿名用戶的相關選項定義。所有的虛擬用戶都映射到系統用戶vuser上。

8、 啟動vsftpd,檢查21號端口是否被監聽:# service vsftpd start # ss -tnlp | grep :21

五、用戶認證測試:

mysql服務器上分別使用虛擬用戶marionkeyso遠程登錄FTP# ftp 192.168.1.144,測試上傳文件、刪除文件、創建目錄和刪除目錄等權限

使用虛擬用戶marion登錄FTP

技術分享圖片

使用虛擬用戶keyso登錄FTP

技術分享圖片


vsftpd基於mysql實現用戶認證