配置構想圖:
<a href="http://blog.51cto.com/attachment/201212/221707407.jpg" target="_blank"></a>
要求:
1、ftp-clients通路pure-ftp資料庫時,使用者資訊存放在ftpusers的資料庫中;
2、通過pureamin來管理pureftp在ftpusers資料庫中的使用者。
配置環境準備:
1、安裝組包:開發工具、開發庫、老的軟體開發 (Development Tools
Development Libraries、Legacy Software Development)
yum groupinstall “開發工具” -y
2、因實驗環境是基于apache,php,mysql的,需要安裝
yum install httpd php mysql mysql-server mysql-devel php-mysql -y
ZendOptimizer-3.3.3-linux-hicode.tar.gz(提高php應用程式執行速度)
一、pure-ftp配置
1、pure-ftpd的服務項的設定
#tar -zxvf pure-ftpd-1.0.36.tar.gz -C /usr/local/src/ (解壓并指定目錄)
# cd pure-ftpd-1.0.36 (切換到解壓目錄)
#./configure \
--prefix=/usr/local/pureftpd \ #路徑,預設在/usr/local/
--with-mysql \ #用MySQL管理使用者資料
--with-shadow \ #忽略shadow密碼,除非你使用PAM, LDAP 或者 SQL
--with-pam \ #認證子產品
--with-welcomemsg \ #像其它一樣FTP servers讀取’welcome.msg’檔案。但是Pure-ftpd預設是使用’.banner’檔案。
--with-uploadscript \ #成功上傳後可自動自動調用擴充程式。這需要安裝’pure-uploadscript’。
--with-cookie \ #當使用者登入時顯示自定義的标題資訊
--with-virtualchroot \ #通常使用者不能離開家目錄,啟用這項,再配合symbolic links,就變成可能了
--with-virtualhosts \ #支援虛拟主機。就是可為每個IP位址設不同的匿名登入區域。如果隻有一個IP就用不着這項。
--with-diraliases \ #支援目錄别名
--with-quotas \ #啟用虛拟配額
--with-puredb \ #本地使用者資料存儲,支援虛拟使用者
--with-sysquotas \ #支援系統配額
--with-ratios \ #支援上傳/下載下傳比率限制
--with-ftpwho \ #支援’pure-ftpwho’指令,建議在standalone模式使用,inet較慢
--with-throttling \ #支援帶寬限制
--with-language=simplified-chines \ #輸出資訊為簡體中文
--with-altlog #支援将日志輸出成特定格式,以便用于分析
#make
#make install
#cp contrib/redhat.init /etc/init.d/pureftpd
#vim /etc/init.d/pureftpd (改變以下三行)
17 prog=pure-config.pl
18 fullpath=/usr/local/pureftpd/sbin/$prog (正确關聯pureftpd服務的控制腳本)
19 pureftpwho=/usr/local/pureftpd/sbin/pure-ftpwho
24 $fullpath /usr/local/pureftpd/etc/pure-ftpd.conf --daemonize (pureftpd的主配置檔案)
#chmod 755 /etc/init.d/pureftpd (修改權限,使pureftpd為可執行的服務腳本)
#chkconfig --add pureftpd (使pureftpd被chkconfig管理,并加入開機啟動)
#chkconfig pureftpd on
2、pure-ftp的主配置檔案修改
#mkdir -pv /usr/local/pureftpd/etc/
#cp /usr/local/src/pure-ftpd-1.0.36/ \
configuration-file/pure-ftpd.conf /usr/local/pureftpd/etc/
# vi /usr/local/pureftpd/etc/pure-ftpd.conf
其中有幾項要修改:
chrootEveryone yes 限定在自己的家目錄
NoAnonymous yes 不允許匿名登入
Bind 127.0.0.1,21 監聽本機回環 <可選>
CreateHomeDir yes 允許使用者登入後自動建立家目錄 <必須>
二、配置虛拟使用者登入環境
# useradd virtualftp -d /ftproot -s /sbin/nologin <建立接下來的虛拟使用者 對應的系統使用者>
# chmod -R 777 /ftproot <這項不做可能會引起登入時報421錯誤>
---修改環境變量
# echo PATH=$PATH:/usr/local/pureftpd/bin/ >>/etc/profile
#. /etc/profile (重新加載環境變量)
三、用mysql認證
1、拷貝解壓到/usr/local/src下pure-ftpd-1.0.36目錄裡的pureftp與mysql關聯檔案
#cp /usr/local/src/pure-ftpd-1.0.36/pureftpd-mysql.conf /usr/local/pureftpd/etc/
2、修改pureftp與mysql的關聯檔案,
# vim /usr/local/pureftpd/etc/pureftpd-mysql.conf <修改如下:>
MYSQLUser ftp
MYSQLPassword abc
MYSQLDatabase ftpusers
MYSQLCrypt MD5
101 MySQLGetQTASZ SELECT QuotaSize FROM users WHERE User='\L'
106 MySQLGetRatioUL SELECT ULRatio FROM users WHERE User='\L'
107 MySQLGetRatioDL SELECT DLRatio FROM users WHERE User='\L'
114 MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User='\L'
115 MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User='\L'
:wq
開啟以上幾行,使pureftp-server支援磁盤配額、比率、帶寬
3、配置pureftp的主配置檔案,指明關聯mysql檔案的存放位置
#vi /usr/local/pureftpd/etc/pure-ftpd.conf
116 MySQLConfigFile /usr/local/pureftpd/etc/pureftpd-mysql.conf
四、配置資料庫(采取導入的方式)
# mysqladmin -u root password "123" (為本地資料庫建立密碼)
下載下傳後,編輯vim pureftp.sql 檔案,可以自行修改賬号密碼等參數,本文保持預設,一定要如下修改第15行:
15 前2個減号空一格-- ----
mysql -u root -p < pureftp.sql
Enter password:
<a href="http://blog.51cto.com/attachment/201212/221720629.jpg" target="_blank"></a>
導入成功後,用root登入mysql,執行對ftpusers使用者的授權
mysql>grant all privileges on ftpusers.* to ftp@localhost identified by 'abc';
mysql>flush privileges;
mysql>quit;
五、pureadmin配置
1、下載下傳PureAdmin-0.3.tar.gz,
2、配置web程式
# tar xvf PureAdmin-0.3.tar.gz -C /var/www/html/
# cd /var/www/html/
# mv PureAdmin-0.3/ pureadmin (重命名)
#vim /var/www/html/pureadmin/config.php (編輯配置檔案)
<?php
$cfg['dbhost']='localhost'; //mysql host
$cfg['dbname']='ftpusers'; //mysql db name
$cfg['dbuser']='ftp'; //mysql user
$cfg['dbpasswd']='abc'; //mysql password
$cfg['passwdtype']='MD5';
$cfg['dir']='/ftproot'; //dir
..........
?> (其餘的保持預設值就可以了,也可自定義設定)
六、安裝ZendOptimizer(php加速器)
#tar -zxvf ZendOptimizer-3.3.3-linux-hicode.tar.gz -C /usr/local/src
#cd /usr/local/src/ZendOptimizer-3.3.3-linux-glibc23-i386/
#./install.sh (根據提示操作)
安裝很簡單,不再附圖。
七、測試
現在可以登入使用了
http://192.168.2.1/pureadmin
檢視導入的資料庫檔案
#vim pureftp.sql 可知admin 的密碼為passwd
<a href="http://blog.51cto.com/attachment/201212/221748516.jpg" target="_blank"></a>
登入:使用者admin ; 密碼passwd ;驗證碼不用
<a href="http://blog.51cto.com/attachment/201212/221802419.jpg" target="_blank"></a>
登入後添加新使用者:test1,test2
<a href="http://blog.51cto.com/attachment/201212/221813127.jpg" target="_blank"></a>
<a href="http://blog.51cto.com/attachment/201212/221824450.jpg" target="_blank"></a>
使用者未登入前,檢視基目錄下/ftproot為空:
<a href="http://blog.51cto.com/attachment/201212/221836758.jpg" target="_blank"></a>
以test2從用戶端登入ftp伺服器,
<a href="http://blog.51cto.com/attachment/201212/221902292.jpg" target="_blank"></a>
自動建立虛拟使用者的家目錄,
<a href="http://blog.51cto.com/attachment/201212/221952667.jpg" target="_blank"></a>
#vim /usr/local/pureftpd/etc/pure-ftpd.conf (編輯開啟日志)
304 AltLog clf:/var/log/pureftpd.log
311 AltLog stats:/var/log/pureftpd.log
318 AltLog w3c:/var/log/pureftpd.log
檢視日志檔案(可以與綜合日志/var/log/messages結合檢視)
<a href="http://blog.51cto.com/attachment/201212/222624376.jpg" target="_blank"></a>
可以看出,日志記錄的時間與系統時間并不對照,因為pureftp預設使用的是GMT時區
#vim /usr/local/pureftpd/etc/pure-ftpd.conf
加上TimesGMT off
重新開機pureftpd服務,後再看看。
結束了。。
注:限制ip段
#vim /usr/local/etc/pureftpd-mysql.conf
修改 “MYSQLGetPW SELECT Password FROM users WHERE User="\L" ”,将其改為“MYSQLGetPW SELECT Password FROM users WHERE User="\L" and (ipaccess='*' or ipaccess=SUBSTRING_INDEX("\R",".",3))”這裡是限制C類位址登陸,限制單個ip可直接将ipaccess字段設為限制登陸的ip位址。以此類推,可以設定為限制A、B類位址或指定ip位址範圍。
本文轉自 劉園 51CTO部落格,原文連結:http://blog.51cto.com/colynn/1093539