您好,登錄后才能下訂單哦!
整合vsftp+pam+mysql—集中管理ftp的虛擬帳號
首先簡單介紹下基本原理:
vsftp的用戶有三種類型,分別是匿名用戶、系統用戶、虛擬用戶
某種意義上來說,匿名用戶也是系統用戶,只系統用戶的一個映射。而公開的ftp(比如虛擬主機),都不會使用系統用戶作為ftp的帳號,而更多的采用了虛擬用戶,這樣能保證系統的安全性
使用虛擬帳號,也就需要一個存放虛擬帳號的容器,可以是一個文本列表,也可以是活動目錄,而更多的是使用數據庫來存放
在vsftp中,無論系統用戶還是虛擬用戶,都是使用pam作為用戶驗證手段的,而在pam中默認是不支持mysql模塊的,所以要手動編譯安裝mysql模塊
整體思路是這樣的:
以pam為用戶認證的中間層調用和驗證mysql中的虛擬用戶數據。在vsftp中開啟虛擬用戶認證,認證方法調用pam中的mysql認證和授權模塊,將虛擬用戶存放于mysql中。
step1:
首先安裝vsftp和mysql
[root@localhost ~]#yum install vsftpd mysql-server mysql-devel pam-devel -y
在PAM中默認是沒有mysql認證模塊的,所以要下載源碼自己手動安裝
[root@localhost ~]# tar -xf pam_mysql-0.7RC1.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/pam_mysql-0.7RC1
[root@localhost pam_mysql-0.7RC1]# ./configure --with-mysql=/usr/bin/mysql_config
[root@localhost pam_mysql-0.7RC1]# make && make install
step2:
安裝好后啟動mysql
[root@localhost ~]# service mysqld start
[root@localhost ~]# mysql -uroot -p
首先先創建vsftp的數據庫
mysql> CREATE DATABASE vsftpd;
然后創建一個用戶表
mysql> use vsftpd
mysql> create table users (
-> id int AUTO_INCREMENT NOT NULL,
-> name char(20) NOT NULL UNIQUE KEY,
-> passwd char(48) NOT NULL,
-> primary key(id)
-> );
添加vsftpd的數據庫帳號
mysql> insert into users(name,passwd) values('lustlost',password('123456')); \
然后創建vsftpd的數據庫賬戶,為了安全,只授予查詢權限
mysql> GRANT select on vsftpd.* to vsftpd@localhost identified by '123456'
mysql> GRANT select on vsftpd.* to vsftpd@127.0.0.1 identified by '123456' ;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。