vsftpd虛擬使用者認證配置(vsftpd+pam+mysql)

來源:互聯網
上載者:User

標籤:vsftpd虛擬使用者

一、準備所需要的程式包

mysql

pam_mysql

vsftpd

二、開始安裝

[[email protected] ~]# yum -y install mysql-server mysql-devel vsftpd pam_mysql// 注意:pam_mysql由epel源提供,epel源需要自行設定

三、建立虛擬使用者帳號

1、建立資料庫及儲存使用者的表

[[email protected] ~]# service mysqld start// 啟動mysql服務[[email protected] ~]# mysqlmysql> create database vsftpd;    // 建立名為vsftpd的資料庫Query OK, 1 row affected (0.00 sec)mysql> use vsftpd   // 切換當前資料庫為vsftpdDatabase changedmysql> create table users(id int UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,name VARCHAR(50) NOT NULL,password CHAR(48) NOT NULL);Query OK, 0 rows affected (0.02 sec)  // 建立users表並建立對應欄位用以存放虛擬使用者名稱和密碼mysql>

2、建立一個資料庫使用者給vsftpd服務認證虛擬使用者時串連訪問資料使用

mysql> grant select on vsftpd.* to [email protected] identified by 'redhat';Query OK, 0 rows affected (0.00 sec)  // 建立一個名為vsftpd的使用者,並且賦予它以vsftpd資料所有表的查看許可權,上面的IP地址是指定可以從哪個地址訪問mysql資料庫mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)

3、向表中添加虛擬使用者帳號和密碼

mysql> insert into users(name,password) values('tom','redhat'),('jerry','redhat');Query OK, 2 rows affected (0.00 sec)  // 向users表中插入兩行資料,分別對應兩個使用者名稱和密碼Records: 2  Duplicates: 0  Warnings: 0

需要注意的是:這裡使用的是明文存放密碼,建議使用加密存放,例如password()函數,使用方法如下:

mysql> insert into users(name,password) values('tom',password('redhat')),('jerry',passowrd('redhat'));


三、配置vsftpd

1、建立pam認證所需檔案

[[email protected] ~]# vim /etc/pam.d/vsftpd.mysqlauth required /lib/security/pam_mysql.so user=vsftpd passwd=redat host=172.16.20.242 db=vsftpd table=uesrs usercolumn=name passwdcolumn=password crypto=0account required /lib/security/pam_mysql.so user=vsftpd passwd=redhat host=172.16.20.242 db=vsftpd table=users usercolumn=name passwdcolumn=password crypto=0// /lib/security/pam_mysql.so指定使用pam_mysql.so進行認證// user=vsftpd 指定資料庫使用者名稱// passwd=redhat 指定資料庫使用者密碼// host=172.16.20.242 指定同過哪個主機地址進行資料庫連接// db=vsftpd 指定資料庫名// table=users 指定儲存虛擬使用者名稱和密碼的表// usercolumn=name 指定儲存使用者名稱的欄位// passwdcolumn=password 指定儲存虛擬使用者密碼的欄位// crypto=0 指定虛擬使用者密碼存放的加密方式,0代表不加密,1代表使用crypt函數加密,2代表使用password()函數加密,3代表使用md5方式加密,4代表使用sha1方式加密

2、修改vsftpd的配置,使其適應mysql認證

[[email protected] ~]# useradd -s /sbin/nologin -d /var/ftproot vuser[[email protected] ~]# chmod go+rx /var/ftproot// 建立一個虛擬使用者映射的系統使用者,用以訪問ftp服務,由於其家目錄就是fpt服務的訪問目錄,所以要給予其家目錄其他使用者可以訪問的許可權[[email protected] ~]# vim /etc/vsftpd/vsftpd.confanonymous_enable=YES   // 允許匿名使用者存取,因為虛擬使用者的實質就是匿名使用者local_enable=YES   // 允許本機使用者訪問,因為虛擬使用者需要映射到本機使用者write_enable=YES   // 開啟對訪問目錄的寫入權限,根據需求開啟anon_upload_enable=NO   // 禁止匿名使用者上傳,根據需求配置anon_mkdir_write_enable=NO   // 禁止虛擬使用者建立和刪除目錄,根據需求配置chroot_local_user=YES   // 禁止使用者切換目錄guest_enable=YES   // 開啟虛擬使用者功能guest_username=vuser    // 設定虛擬使用者的映射的本機使用者為vuserpam_service_name=vsftpd.mysql    // pam的設定檔預設為vsftpd,由於上面做了修改,這裡需要修改成我們配置的檔案


四、啟動vsftpd服務,並測試組態效果

[[email protected] ~]# service vsftpd start

使用windows的CMD訪問


五、配置虛擬使用者的存取權限

vsftpd可以在設定檔目錄中為每個使用者提供單獨的設定檔以定義其ftp服務存取權限,每個虛擬使用者的設定檔名同虛擬使用者的使用者名稱,設定檔目錄可以是任意未使用目錄,只需要在vsftpd.conf指定其路徑及名稱即可。

1、配置vsftpd為虛擬使用者使用設定檔目錄

[[email protected] ~]# vim /etc/vsftpd/vsftpd.confuser_config_dir=/etc/vsftpd/vusers_config   // 設定虛擬使用者設定檔的存放目錄

2、建立相應目錄並建立設定檔

[[email protected] ~]# mkdir /etc/vsftpd/vusers_config[[email protected] ~]# touch tom jerry

3、配置虛擬使用者的存取權限

虛擬使用者對vsftpd服務的存取權限是通過匿名使用者的相關指令進行的。例如,如果需要讓tom使用者具有上傳檔案的許可權等,可以修改/etc/vsftpd/vusers_config/tom檔案,在裡面添加如下選項即可。

需要注意的是,之前在/etc/vsftpd/vsftpd.conf中的相關於匿名使用者的許可權則需要關閉掉,避免衝突,如果vsftpd.conf中配置了許可權,而虛擬使用者的設定檔中沒有配置,那麼會繼承vsftpd.conf中的許可權

如果vsftpd.conf中配置了許可權,而虛擬使用者的設定檔中也有配置嗎,那麼會繼承虛擬使用者的設定檔中的配置

[[email protected] ~]# vim /etc/vsftpd/vusers_config/tomanon_upload_enable=YESanon_mkdir_write_enable={YES|NO}anon_other_write_enable={YES|NO}


寫的比較潦草,如有遺漏錯誤和爭議之處,歡迎大家的批評指正和討論,謝謝。

vsftpd虛擬使用者認證配置(vsftpd+pam+mysql)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.