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
- -- This mysql script is made by M.Mastenbroek 2002 - 2005
- -- For more info look at http://machiel.generaal.net
- -- Version 2.0
- --
- -- You don't need this script when you already have the database
- -- or when you use the install.php configuration script successfully.
- --
- -- Example how to execute this script from command line:
- --
- -- mysql -u root -ppassword -h 127.0.0.1 < script.mysql
- --
- --
- --
- -- Host: localhost Database: ftpusers
- -- -------------------------------------------------------
- -- Server version 3.23 or 4.x
- -- Script version 1.4.0
- --
- --
- --
- -- Create MySQL user called 'ftp'
- -- Login = ftp
- -- Password = tmppasswd
- -- Host = 127.0.0.1
- --
- 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');
- FLUSH PRIVILEGES;
- CREATE DATABASE ftpusers;
- USE ftpusers;
- --
- -- Table structure for table 'admin'
- --
- CREATE TABLE admin (
- Username varchar(35) NOT NULL default '',
- Password char(32) binary NOT NULL default '',
- PRIMARY KEY (Username)
- ) TYPE=MyISAM;
- --
- -- Data for table 'admin'
- --
- INSERT INTO admin VALUES ('admin',MD5('123'));
- --
- -- Table structure for table 'users'
- --
- 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`)
- ) TYPE=MyISAM;
- --
- -- Data for table 'users'
- --
導入數據庫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登錄