vsftpd基於mysql實現用戶認證

一、演示環境:

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;

      1.jpg

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;

      2.jpg

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

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

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

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

3.jpg

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

      4.jpg

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

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

五、用戶認證測試:

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

   使用虛擬用戶marion登錄FTP

   5.jpg

   使用虛擬用戶keyso登錄FTP

   6.jpg


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章