天天看點

Linux下搭建Pureftp

一:簡介

Pure-FTPd 是一款免費的,安全的,高品質和符合标準的FTP伺服器。 側重于運作效率和易用性。 它提供了簡單的答案,他滿足了大衆化的需求,包括普通使用者以及主機供應商們。

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

二:案例

配置步驟

首先搭建lnmp環境

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

啟動httpd服務,開機自啟動

[root@localhost ~]# service httpd start

啟動 httpd:                                               [确定]

[root@localhost ~]# chkconfig httpd on

啟動mysqld服務,開機自啟動

[root@localhost ~]# service mysqld start

Support MySQL by buying support/licenses at http://shop.mysql.com

                                                           [确定]

啟動 MySQL:                                               [确定]

[root@localhost ~]# chkconfig mysqld on

為mysql建密碼

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

1.源碼安裝pure-ftp,解壓pure-ftpd

[root@localhost pureftp]# tar -zxvf pure-ftpd-1.0.36.tar.gz -C /usr/local/src/

[root@localhost pureftp]# 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

建立配置檔案存放位置

[root@localhost pure-ftpd-1.0.36]# mkdir /usr/local/pureftpd/etc

拷貝pureftp配置檔案

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

拷貝調用檔案,修改權限可執行

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

[root@localhost configuration-file]# chmod 755 pure-config.pl

拷貝pureftp控制腳本

[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

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 sbin]# service pureftpd start

啟動 pure-config.pl:Running: /usr/local/pureftpd/sbin/pure-ftpd --daemonize -A -c50 -B -C8 -D -fft-m4 -s -U133:022 -u100 -k99 -Z

[root@localhost contrib]# chkconfig --add pureftpd

[root@localhost contrib]# chkconfig --list |grep pureftpd

pureftpd            0:關閉      1:關閉      2:啟用      3:啟用      4:啟用      5:啟用      6:關閉

2.配置虛拟使用者登入環境

建立本地帳号目錄

[root@localhost contrib]# mkdir /ftproot

[root@localhost contrib]# chmod -R 777 /ftproot

建立接虛拟使用者對應的系統使用者

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

修改所屬者和所屬組

[root@localhost contrib]# chown virtualftp:virtualftp /ftproot

編輯pureftpd主配置檔案

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

NoAnonymous                 yes      //不允許匿名登入

CreateHomeDir               yes       //允許使用者登入後自動建立家目錄

重新開機服務

[root@localhost contrib]# service pureftpd restart

停止 pure-config.pl:

啟動 pure-config.pl:Running: /usr/local/pureftpd/sbin/pure-ftpd --daemonize -A -c50 -B -C8 -D -E -fftp -H -I15 -L10000:8 -m4 -s -U133:022 -u100 -j -k99 –Z

3.用mysql認證

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

拷貝配置檔案

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

[root@localhost pureftp]# cd /usr/local/pureftpd/etc/

編輯配置檔案

[root@localhost etc]# vim pureftpd-mysql.conf

MYSQLPassword   tmppasswd

MYSQLCrypt      md5

導入資料

[root@localhost pureftp]# mysql -u root -p <pureftp.sql

Enter password:

檢視資料庫

[root@localhost pureftp]# mysql -u root -p

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 5

Server version: 5.0.77 Source distribution

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

mysql> showdatabases;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'showdatabases' at line 1

mysql> show databases;

+--------------------+

| Database           |

| information_schema |

| ftpusers           |

| mysql              |

| test               |

4 rows in set (0.01 sec)

4.檢視mysql

Your MySQL connection id is 6

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

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

5.配置web程式PureAdmin

解壓

[root@localhost pureftp]# tar -zxvf PureAdmin-0.3.tar.gz -C /var/www/html/

修改檔案名稱

[root@localhost pureftp]# cd /var/www/html/

[root@localhost html]# mv PureAdmin-0.3 pureadmin

編輯config.php

[root@localhost html]# cd pureadmin/

[root@localhost pureadmin]# vim config.php

<?php

 2 $cfg['dbhost']='localhost'; //mysql host

 3 $cfg['dbname']='ftpusers'; //mysql db name

 4 $cfg['dbuser']='ftp';           //mysql user

 5 $cfg['dbpasswd']='tmppasswd';           //mysql password

 6

 7 //ftp config

 8 $cfg['page']=15;

 9 //ftp passwd type : TEXT/CRYPT/MD5

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

 11 //ftp default

 12 $cfg['uid']=1000; //uid

 13 $cfg['gid']=1000;       //gid

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

 15 $cfg['qf']=0;   //quotafiles

 16 $cfg['qs']=100; //quotasize

 17 $cfg['ul']=0;   //ULBandwidth

 18 $cfg['dl']=200; //DLBandwidth

 19 $cfg['ur']=0;   //ULRatio

 20 $cfg['dr']=0;   //DLRatio

 21 $cfg['status']=1; //status

6.區域帳号映射到本地帳号

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

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

設定環境變量

[root@localhost bin]# echo PATH=$PATH:/usr/local/pureftpd/bin/ >>/etc/profile

使之立即生效

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

建立虛拟帳号

[root@localhost bin]# pure-pw useradd user9 -u virtualftp -g virtualftp -d /ftproot/user9 -m

Password:

Enter it again:

建立使用者資料庫

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

測試:

Linux下搭建Pureftp

背景使用管理帳号登入建立使用者

Linux下搭建Pureftp

檢視資料庫資訊

Linux下搭建Pureftp
Linux下搭建Pureftp

檢視ftproot目錄下多了兩個檔案

[root@localhost bin]# cd /ftproot/

[root@localhost ftproot]# ll

總計 8

drwxr-xr-x 2       1000       1000 4096 08-19 21:58 user10

drwxr-xr-x 2 virtualftp virtualftp 4096 08-19 21:57 user9

繼續閱讀