linux中×××pure-ftp

Pure-FTPd 是一款免費(BSD)的,安全的,高質量和符合標準的FTP服務器。 側重於運行效率和易用性。 它提供了簡單的答案,他滿足了大衆化的需求,包括普通用戶以及主機供應商們

Pure-FTPd 安全性

pure - ftpd 得到了充分的支持,它是始終以安全設計爲理念,其代碼總是作爲有漏洞的來進行討論,並重新審覈。該服務可以適應嚴格的安全需要做到權限分離。 甚至在不需要Root權限的情況下通過其內建的chroot()仿真以及虛擬帳戶100%正常運行。避免密碼作爲明文傳輸:pure - ftpd的OpenSSL庫支持可選的 SSL / TLS加密層使用。

利用WEB方式對FTP進行管理。這裏運用到與mysql的結合

安裝過程如下:

一、安裝apache php mysql mysql-server  mysql-devel

[root@localhost ~]# mkdir /mnt/cdrom

[root@localhost ~]# mount /dev/cdrom  /mnt/cdrom

[root@localhost ~]# yum install httpd php php-mysql mysql mysql-server mysql-devel -y

[root@localhost ~]# service httpd start

[root@localhost ~]# service mysqld start

[root@localhost ~]# chkconfig mysqld on

[root@localhost ~]# mysqladmin -u root -p password '123456'

Enter password:                    //原來的口令。默認沒有,直接回車。

上傳用到的軟件

[root@localhost ~]# ll
總計 10864
-rw------- 1 root root     1236 2012-07-26 anaconda-ks.cfg
drwxr-xr-x 2 root root     4096 07-26 15:15 Desktop
-rw-r--r-- 1 root root    34907 2012-07-26 install.log
-rw-r--r-- 1 root root     3681 2012-07-26 install.log.syslog
-rw-r--r-- 1 root root    29148 07-26 18:30 PureAdmin-0.3.tar.gz      //pureftp管理工具
-rw-r--r-- 1 root root   578781 07-26 18:30 pure-ftpd-1.0.36.tar.gz   //pureftp主程序
-rw-r--r-- 1 root root     4718 07-26 18:30 pureftpd-mysql.conf         //pureftp連接mysql的配置文件
-rw-r--r-- 1 root root     2105 07-26 18:30 pureftp.sql                       //pureftp數據庫sql語句
-rw-r--r-- 1 root root   196917 07-26 18:30 webpureftp0.1.tar.gz       //web方式pureftp
-rw-r--r-- 1 root root 10208541 07-26 18:30 ZendOptimizer-3.3.3-linux-hicode.ta     //php加速工具

二、源碼安裝pure-ftp

[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

[root@localhost pure-ftpd-1.0.36]# make install

三  生成pure-ftpd的服務腳本

[root@localhost pure-ftpd-1.0.36]# cd configuration-file/

[root@localhost configuration-file]# chmod a+x pure-config.pl

[root@localhost configuration-file]# cp pure-config.pl  /usr/local/pureftpd/sbin/

下面生成我們的pureftp配置文件

[root@localhost configuration-file]# mkdir /usr/local/pureftpd/etc

[root@localhost configuration-file]# cp pure-ftpd.conf /usr/local/pureftpd/etc/

四 生成pure-ftpd的服務

[root@localhost configuration-file]# cd ..
[root@localhost pure-ftpd-1.0.36]# cp contrib/redhat.init  /etc/init.d/pureftpd
[root@localhost pure-ftpd-1.0.36]# chmod 755 /etc/init.d/pureftpd

[root@localhost pure-ftpd-1.0.36]# vim /etc/init.d/pureftpd

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

[root@localhost pure-ftpd-1.0.36]# service pureftpd start

啓動 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 pure-ftpd-1.0.36]# mkdir /ftproot

[root@localhost pure-ftpd-1.0.36]# chmod -R 777 /ftproot

[root@localhost pure-ftpd-1.0.36]# useradd virtualftp -d /ftproot -s /sbin/nologin  -M

[root@localhost pure-ftpd-1.0.36]# chown virtualftp:virtualftp /ftproot

[root@localhost pure-ftpd-1.0.36]# vim /usr/local/pureftpd/etc/pure-ftpd.conf

20 ChrootEveryone              yes                   限定在自己的家目錄

77 NoAnonymous                 yes                   不允許匿名登錄

116  MySQLConfigFile               /usr/local/pureftpd/etc/pureftpd-mysql.conf   mysql的認證

336 CreateHomeDir               yes                   允許用戶登錄後自動創建家目錄

[root@localhost pure-ftpd-1.0.36]# cd

[root@localhost ~]# cp pureftpd-mysql.conf /usr/local/pureftpd/etc/

[root@localhost ~]# vim /usr/local/pureftpd/etc/pureftpd-mysql.conf

32 MYSQLPassword   tmppasswd               //爲了sql語句中的配置相同

45 MYSQLCrypt      md5

[root@localhost ~]# vim pureftp.sql

50 INSERT INTO admin VALUES ('admin',MD5('123'));   Web後臺管理員密碼

注意其中的
     22 -- Login = ftp             此爲登錄數據庫的用戶
     23 -- Password = tmppasswd    此爲登錄數據庫的密碼

     31 CREATE DATABASE ftpusers;  創建名爲ftpusers的庫

     50 INSERT INTO admin VALUES ('admin',MD5('123'));  此爲登錄web用的用戶密碼,可自行修改

<導入數據,導入前可能需要修改此sql文件的15行:前2個減號空一格-- ------------------------------------------------------->

[root@localhost ~]# mysql -u root -p < pureftp.sql     導入數據庫

[root@localhost ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.0.45 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| ftpusers           |
| mysql              |
| test               |
+--------------------+
4 rows in set (0.01 sec)

mysql&gt; use ftpusers;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql&gt; show tables;
+--------------------+
| Tables_in_ftpusers |
+--------------------+
| admin              |
| users              |
+--------------------+
2 rows in set (0.00 sec)

mysql&gt; select * from admin;
+----------+----------------------------------+
| Username | Password                         |
+----------+----------------------------------+
| admin    | 202cb962ac59075b964b07152d234b70 |
+----------+----------------------------------+
1 row in set (0.00 sec)

mysql&gt; grant all privileges on ftpusers.* to ftp@localhost identified by 'tmppasswd';
Query OK, 0 rows affected (0.01 sec)

mysql&gt; flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql&gt; \q
Bye

配置pureadmin

[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';

4 $cfg['dbuser']='ftp';

5 $cfg['dbpasswd']='tmppasswd';

10 $cfg['passwdtype']='MD5';

14 $cfg['dir']='/ftproot/';

<?php
$cfg['dbhost']='localhost'; //mysql host
$cfg['dbname']='ftpusers';  //mysql db name                            所用的庫&lt;與前面導入的sql中要一致>
$cfg['dbuser']='ftp';           //mysql user                           登錄mysql的帳號
$cfg['dbpasswd']='tmppasswd';           //mysql password               登錄mysql的密碼

//ftp config
$cfg['page']=10;                                                       每頁顯示的用戶數量
//ftp passwd type : TEXT/CRYPT/MD5
$cfg['passwdtype']='MD5';                                              認證模式<要與pureftpd-mysql.conf中一致>
//ftp default
$cfg['uid']=500;  //uid                                                映射虛擬用戶的UID,即剛創建的virtualftp用戶
$cfg['gid']=500;        //gid                                          同上
$cfg['dir']='/ftproot/'; //dir                                          默認家目錄
$cfg['qf']=0;   //quotafiles                                           文件個數限制,0爲不限制
$cfg['qs']=100; //quotasize                                            總文件大小
$cfg['ul']=0;   //ULBandwidth                                          上傳速率限制
$cfg['dl']=200; //DLBandwidth                                          下載速率限制
$cfg['ur']=0;   //ULRatio                                              上傳比
$cfg['dr']=0;   //DLRatio                                              下載比
$cfg['status']=1; //status                                             狀態,1爲激活;0爲禁止
$cfg['ip']= '*';        //ipaddress                                    可訪問IP,*爲所有
?&gt;

[root@localhost pureadmin]# sevice pureftpd restart

[root@localhost pureadmin]# service pureftpd restart

虛擬用戶使用篇

(一)用pureDB認證

[root@localhost pureadmin]# vim /usr/local/pureftpd/etc/pure-ftpd.conf

126  PureDB                        /usr/local/pureftpd/pureftpd.pdb

設置環境變量

[root@localhost pureadmin]# echo PATH=$PATH:/usr/local/pureftpd/bin/ &gt;&gt;/etc/profile

[root@localhost pureadmin]# . /etc/profile

[root@localhost ~]# pure-pw useradd user1 -u virtualftp -g virtualftp -d /ftproot/user1 –m     //密碼設爲123

說明:
     user1是用戶名,-u virtualftp是其實際的linux用戶,-d指定起始目錄,並鎖定於該目錄。如果不鎖定,則用-D;如果需要不同的權限,可以建立新的linux用戶與組

       如果用的系統自帶的ftp用戶,這樣的話還需修改配置文件pure-ftpd.conf中的MinUID爲ftp用戶的UID 14,否則登錄時會出現530錯誤;所以這裏建議創建另一個非系統自帶的用戶做映射

建立用戶數據庫:

[root@localhost ~]# pure-pw mkdb /usr/local/pureftpd/pureftpd.pdb

說明:今後每添加或修改用戶數據庫都應該執行一次mkdb

[root@localhost ~]# service httpd restart

[root@localhost ~]# service pureftpd restart

測試

在客戶端輸入http://192.168.145.200/pureadmin

p_w_picpath

這裏驗證碼不用

創建的虛擬用戶家目錄,會在虛擬用戶第一次登錄時自動創建
如創建了一個user3用戶

p_w_picpath

這裏可以對虛擬賬號進行操作管理了

[root@localhost pureadmin]# ll /ftproot/
總計 0

當user3 登錄以後

p_w_picpath

[root@localhost pureadmin]# ll /ftproot/
總計 4
drwxr-xr-x 2 1000 1000 4096 09-16 15:36 user3

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