Pure-Ftp:基於虛擬賬號的FTP服務器

小編:爲了實現局域網用戶的文件共享服務,FTP服務器在企業網中扮演着很重要的角色。在Linux環境下,傳統的基於vsftpd搭建的FTP服務器,存在着很多不足之處,不能支持虛擬賬號的概念,管理起來很不方便.所以,小編,今天就和大家一起搭建一個基於虛擬賬號的FTP服務器:Pure-ftp.

基本環境:

LAMP【Linux+Apache+MySQL+PHP(可選)】

方式一:RMP搭建(略)

方式二:源碼搭建

參考博客:http://tywangpanpan.blog.51cto.com/6264315/1177325

【軟件需求】

pure-ftpd-1.0.36.tar.gz

PureAdmin-0.3.tar.gz

pureftp.sql(虛擬賬號的數據庫導入文件)

pureftpd-mysql.conf(虛擬賬號鏈接數據庫的配置文件)

【具體實現步驟】

Step1:源碼安裝Pure-ftp Server.

tar  zxvf  pure-ftpd-1.0.36.tar.gz  -C /usr/local/src/

cd   /usr/local/src/pure-ftpd-1.0.36

./configure \

--prefix=/usr/local/pureftpd \

--with-mysql \

--with-shadow \

--with-pam  \

--with-welcomemsg   \

--with-uploadscript  \

--with-cookie   \

--with-virtualchroot \

--with-virtualhosts \

--with-diraliases \

--with-quotas \

--with-puredb \

--with-sysquotas \

--with-ratios \

--with-ftpwho \

--with-throttling \

--with-language=simplified-chinese

make  &&  make install

Step2:拷貝生成pureftp服務的主配置文件和服務腳本.

cd configuration-file/  

chmod a+x pure-config.pl

cp pure-config.pl  /usr/local/pureftpd/sbin/

mkdir /usr/local/pureftpd/etc

cp configuration-file/pure-ftpd.conf /usr/local/pureftpd/etc/

Step3:拷貝生成pureftp服務的啓動腳本,並編輯修改相應參數.

cp contrib/redhat.init /etc/init.d/pureftpd

vim   /etc/init.d/pureftpd

chmod  755   /etc/init.d/pureftpd

chkconfig  --add  pureftpd

chkconfig  pureftpd  on

Step4:配置pure-ftp的主配置文件,添加虛擬賬號的登錄環境參數.

vim  /usr/local/pureftpd/etc/pure-ftpd.conf

Step5:創建虛擬用戶登錄的家目錄.

mkdir  /ftproot

chmod  -R  777  /ftproot

Step6:創建虛擬賬號登錄時映射的服務器本地nologin賬號.

useradd  virtualftp  -d  /ftproot  -s  /sbin/nologin  -M

chown   virtualftp.virtualftp  /ftproot

Step7:虛擬賬號的認證配置.

vim  /usr/local/pureftpd/etc/pure-ftpd.conf

Step8:建立虛擬賬號與服務器本地賬號的映射.

cd  /usr/local/pureftpd/bin

./pure-pw useradd user1 -u virtualftp -g virtualftp -d /ftproot/user1 -m

說明:

user1是用戶名,-u virtualftp是其實際的linux用戶,-d指定起始目錄,並鎖定於該目錄。如果不鎖定,則用-D;如果需要不同的權限,可以建立新的linux用戶與組,如果用的系統自帶的ftp用戶,這樣的話還需修改配置文件pure-ftpd.conf中的MinUID爲ftp用戶的UID 14,否則登錄時會出現530錯誤;所以這裏建議創建另一個非系統自帶的用戶做映射.

Step9:建立用戶數據庫.

./pure-pw mkdb /usr/local/pureftpd/pureftpf.pdb

Step10:源碼配置Web管理界面.

tar  zxvf   PureAdmin-0.3.tar.gz  -C /var/www/extsuite/extmail/html/

cd  /var/www/extsuite/extmail/html/

mv  PureAdmin-0.3  pureadmin

Step11:導入數據文件pureftp.sql到MySQL數據庫.

注:導入前作如下修改.

INSERT INTO mysql.user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,ssl_cipher,x509_issuer,x509_subject) VALUES('localhost','ftp',PASSWORD('passwd'),'Y','Y','Y','Y','N','N','N','N','N','N','N','N','N','N','Y','Y','Y');

FLUSH PRIVILEGES;

CREATE DATABASE ftpusers;

USE ftpusers;

CREATE TABLE admin (

 Username varchar(35) NOT NULL default '',

 Password char(32) binary NOT NULL default '',

 PRIMARY KEY  (Username)

) ;

INSERT INTO admin VALUES ('admin',MD5('123456'));

CREATE TABLE `users` (

 `User` varchar(16) NOT NULL default '',

 `Password` varchar(32) binary NOT NULL default '',

 `Uid` int(11) NOT NULL default '14',

 `Gid` int(11) NOT NULL default '5',

 `Dir` varchar(128) NOT NULL default '',

 `QuotaFiles` int(10) NOT NULL default '500',

 `QuotaSize` int(10) NOT NULL default '30',

 `ULBandwidth` int(10) NOT NULL default '80',

 `DLBandwidth` int(10) NOT NULL default '80',

 `Ipaddress` varchar(15) NOT NULL default '*',

 `Comment` tinytext,

 `Status` enum('0','1') NOT NULL default '1',

 `ULRatio` smallint(5) NOT NULL default '1',

 `DLRatio` smallint(5) NOT NULL default '1',

 PRIMARY KEY  (`User`),

 UNIQUE KEY `User` (`User`)

) ;

導入數據,並授權.

mysql  -u root -p < pureftp.sql

mysql>grant all privileges on ftpusers.* to ftp@localhost identified by 'tmppasswd';

mysql>flush privileges;

mysql>quit;

查看導入是否成功.

Step12:修改pureadmin的配置文件,修改數據庫的相關參數.

vim  /var/www/extsuite/extmail/html/pureadmin/config.php

Step13:配置pureftpd-mysql.conf連接數據庫文件.

cp  pureftpd-mysql.conf  /usr/local/pureftpd/etc/

創建匿名賬號的根目錄.

mkdir  /var/ftp

【測試分析】

瀏覽器登錄測試。

http://10.1.1.100/pureadmin(用戶名:admin;密碼:123456)

添加虛擬賬號.

服務器登陸測試.

查看虛擬賬號的家目錄.

客戶端虛擬賬號登陸測試.

匿名賬號登錄測試.

【小編總結】

    通過今天的介紹,我們通過Pure-Ftp簡單的實現了給予虛擬賬號的FTP服務器,而且實現了方便的Web方式管理.當然還可以根據需求進行更加的詳細的參數的限定:配額、時間、速率等等,有興趣的博友可以自己嘗試下!!!!!!


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