用pure-ftpd搭建ftp服務器

 

Pure-FTPd 是一款免費(BSD)的,安全的,高質量和符合標準的FTP服務器。 側重於運行效率和易用性。 它提供了簡單的答案,他滿足了大衆化的需求,包括普通用戶以及主機供應商們。
一、實驗環境
導入一下文件
前期的掛載光盤,建立yum環境,這裏就不再一一詳細介紹了
[root@localhost ~]# yum install httpd php php-mysql mysql-server mysql-devel mysql –y
啓動服務,並設置開機啓動
[root@localhost ~]# service httpd start
[root@localhost ~]# service mysqld start
[root@localhost ~]# chkconfig mysqld on
[root@localhost ~]# chkconfig httpd on
爲增加安全,給mysql設置口令
[root@localhost ~]# mysqladmin -u root -p password '123456'
查看是否安裝以下開發所用到的rpm包組:
[root@mail ~]# yum grouplist
Development Libraries
Development Tools
Legacy Software Development
X Software Development
方法:
# yum groupinstall "packge_group_name"
二、編譯安裝pureftp 
解壓縮
[root@localhost ~]# tar zxvf pure-ftpd-1.0.36.tar.gz -C /usr/local/src
[root@localhost ~]# cd /usr/local/src/pure-ftpd-1.0.36/
[root@localhost 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
編譯安裝
[root@localhost pure-ftpd-1.0.36]# make && make install
安裝之後,發現沒有配置文件,新建一個文件,存放配置文件
[root@localhost ~]# mkdir /usr/local/pureftpd/etc
Copy配置文件到指定位置
[root@localhost ~]# cd /usr/local/src/pure-ftpd-1.0.36/        
[root@localhost pure-ftpd-1.0.36]# cd configuration-file/
[root@localhost configuration-file]# cp pure-ftpd.conf /usr/local/pureftpd/etc/
由於啓動pureftpd需要調用pure-config.pl ,也需要copy到相應位置
[root@localhost configuration-file]# chmod 755 pure-config.pl
[root@localhost configuration-file]# cp pure-config.pl /usr/local/pureftpd/sbin
生成pure-ftpd的服務腳本
[root@localhost ~]# cd /usr/local/src/pure-ftpd-1.0.36/
[root@localhost pure-ftpd-1.0.36]# cd contrib
[root@localhost contrib]# cp redhat.init /etc/init.d/pureftpd
[root@localhost contrib]# chmod 755 /etc/init.d/pureftpd
修改服務腳本,修改內容如下
[root@localhost contrib]# vim /etc/init.d/pureftpd
指定文件的位置
17 prog=pure-config.pl
 18 fullpath=/usr/local/pureftpd/sbin/$prog
 19 pureftpwho=/usr/local/pureftpd/sbin/pure-ftpwho
24 $fullpath /usr/local/pureftpd/etc/pure-ftpd.conf –daemonize
啓動pureftpd,可以看到啓動成功
[root@localhost ~]# service pureftpd start
Starting pure-config.pl: Running: /usr/local/pureftpd/sbin/pure-ftpd --daemonize -A -c50 -B -C8 -D -fftp -H -I15 -L10000:8 -m4 -s -U133:022 -u100 -k99 –Z
添加到服務啓動列表,並設置自動啓動
[root@localhost ~]# chkconfig --add pureftpd
[root@localhost ~]# chkconfig pureftpd on
三、配置匿名用戶登錄環境
1.配置虛擬用戶登錄環境
[root@localhost ~]# mkdir /ftproot
[root@localhost ~]# chmod -R 777 /ftproot
[root@localhost ~]# useradd virtualftp -d /ftproot -s /sbin/nologin -M
[root@localhost ~]# chown virtualftp:virtualftp /ftproot
2.修改配置文件
[root@localhost ~]# vim /usr/local/pureftpd/etc/pure-ftpd.conf
##修改內容如下
52 MaxClientsPerIP             2 
##爲了測試,設置每個ip最多打開2個連接
77 NoAnonymous                 yes
##不允許匿名帳號登錄
116 MySQLConfigFile     /usr/local/pureftpd/etc/pureftpd-mysql.conf
##mysql的配置文件,通過配置文件來調用mysql
336 CreateHomeDir               yes
##創建家目錄
3.將mysql的配置文件copy到相應的位置
[root@localhost ~]# cp pureftpd-mysql.conf /usr/local/pureftpd/etc/
編輯配置文件
[root@localhost ~]# cd /usr/local/pureftpd/etc/
[root@localhost etc]# vim pureftpd-mysql.conf
32 MYSQLPassword   tmppasswd
##數據庫密碼
45 MYSQLCrypt      md5
##採用md5加密
4.創建數據庫,編寫數據庫pureftp.sql文件,然後導入
[root@localhost ~]# vim pureftp.sql
  1. -- This mysql script is made by M.Mastenbroek 2002 - 2005  
  2. -- For more info look at http://machiel.generaal.net  
  3. -- Version 2.0  
  4. --  
  5. -- You don't need this script when you already have the database  
  6. -- or when you use the install.php configuration script successfully.  
  7. --  
  8. -- Example how to execute this script from command line:  
  9. --  
  10. -- mysql -u root -ppassword -h 127.0.0.1 < script.mysql 
  11. --  
  12. --  
  13. --  
  14. -- Host: localhost    Database: ftpusers  
  15. -- -------------------------------------------------------  
  16. -- Server version       3.23 or 4.x  
  17. -- Script version       1.4.0  
  18. --  
  19. --  
  20. --  
  21. -- Create MySQL user called 'ftp'  
  22. -- Login = ftp 
  23. -- Password = tmppasswd 
  24. -- Host = 127.0.0.1  
  25. --  
  26.  
  27. 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) VALUES('localhost','ftp',PASSWORD('passwd'),'Y','Y','Y','Y','N','N','N','N','N','N','N','N','N','N');  
  28.  
  29.                                                            
  30. FLUSH PRIVILEGES;  
  31.  
  32. CREATE DATABASE ftpusers;  
  33.  
  34. USE ftpusers;  
  35.  
  36. --  
  37. -- Table structure for table 'admin'  
  38. --  
  39.  
  40. CREATE TABLE admin (  
  41.   Username varchar(35) NOT NULL default '',  
  42.   Password char(32) binary NOT NULL default '',  
  43.   PRIMARY KEY  (Username)  
  44. TYPE=MyISAM;  
  45.  
  46. --  
  47. -- Data for table 'admin'  
  48. --  
  49.  
  50.  
  51. INSERT INTO admin VALUES ('admin',MD5('123'));  
  52.  
  53. --  
  54. -- Table structure for table 'users'  
  55. --  
  56.  
  57. CREATE TABLE `users` (  
  58.   `User` varchar(16) NOT NULL default '',  
  59.   `Password` varchar(32) binary NOT NULL default '',  
  60.   `Uid` int(11) NOT NULL default '14',  
  61.   `Gid` int(11) NOT NULL default '5',  
  62.   `Dir` varchar(128) NOT NULL default '',  
  63.   `QuotaFiles` int(10) NOT NULL default '500',  
  64.   `QuotaSize` int(10) NOT NULL default '30',  
  65.   `ULBandwidth` int(10) NOT NULL default '80',  
  66.   `DLBandwidth` int(10) NOT NULL default '80',  
  67.   `Ipaddress` varchar(15) NOT NULL default '*',  
  68.   `Comment` tinytext,  
  69.   `Status` enum('0','1') NOT NULL default '1',  
  70.   `ULRatio` smallint(5) NOT NULL default '1',  
  71.   `DLRatio` smallint(5) NOT NULL default '1',  
  72.   PRIMARY KEY  (`User`),  
  73.   UNIQUE KEY `User` (`User`)  
  74. TYPE=MyISAM;  
  75.  
  76. --  
  77. -- Data for table 'users'  
  78. -- 
 
導入數據庫pureftp
[root@localhost ~]# mysql -u root -p < pureftp.sql
查看是否導入成功
[root@localhost ~]# mysql -u root -p
Enter password:

mysql> use  ftpusers;
##查看數據庫表
 

[root@localhost ~]# mysql -u root -p
Enter password:
##用root登錄數據庫,更改驗證方式
mysql> grant all privileges on ftpusers.* to ftp@localhost identified by 'tmppasswd';
mysql> flush privileges;
mysql> \quit
Bye
[root@localhost ~]#
四、實現web後臺管理
[root@localhost ~]# tar zxvf PureAdmin-0.3.tar.gz -C /var/www/html
[root@localhost ~]# cd /var/www/html
[root@localhost html]# mv PureAdmin-0.3 pureadmin
##修改一下文件名,方便修改
[root@localhost html]# cd pureadmin/
[root@localhost pureadmin]# vim config.php
3 $cfg['dbname']='ftpusers'; //mysql db name
##數據庫的名字
4 $cfg['dbuser']='ftp';           //mysql user
##連接數據庫的帳號
5 $cfg['dbpasswd']='tmppasswd';           //mysql password
##密碼
10 $cfg['passwdtype']='MD5';
##加密方式
14 $cfg['dir']='/ftproot/'; //dir
##根目錄
##其他項也可以自己修改
虛擬帳號域本地帳號映射
[root@localhost ~]# vim /usr/local/pureftpd/etc/pure-ftpd.conf
126 PureDB                        /usr/local/pureftpd/pureftpd.pdb
##指明pure-pw的路徑
[root@localhost ~]# echo PATH=$PATH:/usr/local/pureftpd/bin >>/etc/profile
##修改環境變量
[root@localhost ~]# . /etc/profile
##環境變量立即生效
[root@localhost ~]# pure-pw useradd user2 -u virtualftp -g virtualftp -d /ftproot/user2 -m
Password:
Enter it again:
##添加虛擬帳號user2
[root@localhost ~]# pure-pw mkdb /usr/local/pureftpd/pureftpd.pdb
 ##建立用戶數據庫
說明:今後每添加或修改用戶數據庫都應該執行一次mkdb
重新啓動服務
[root@localhost ~]# service httpd restart
Stopping httpd: ^[[B                                       [ OK ]
Starting httpd:                                            [ OK ]
[root@localhost ~]# service mysqld restart
Stopping MySQL:                                           [ OK ]
Starting MySQL:                                            [ OK ]
[root@localhost ~]# service pureftpd restart
 
五、測試
1.用web方式登錄
 

 

2.添加帳號

 

                                                     

3.用帳號user1登錄

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