Pure-FTPd

Pure-FTPd 是一款免费(BSD)的,安全的,高质量和符合标准的FTP服务器。 侧重于运行效率和易用性。它提供了简单的答案,他满足了大众化的需求,包括普通用户以及主机供应商们。

Pure-FTPd 安全性

pure - ftpd 得到了充分的支持,它是始终以安全设计为理念,其代码总是作为有漏洞的 来进行讨论,并重新审核。该服务可以适应严格的安全需要做到权限分离。甚至在不需要Root权限的情况下通过其内建的chroot()仿真以及虚拟帐户100%正常运行。避免密码作为明文传输:pure - ftpd的OpenSSL库支持可选的 SSL / TLS加密层使用。

Pure-FTPd 的运行环境

同样的源代码被编译并运行于 Linux, OpenBSD, NetBSD, DragonflyBSD FreeBSD, Solaris, Tru64, Darwin, Irix, HPUX, AIX 以及 iPhone上。

预编译的二进制包可提供Novell, Mandriva, Debian, Ubuntu, PLD Linux, Stampede Linux, Slackware Linux (Slimslack), Multilinux, Sorcerer Linux, Fli4L (the one-disk router), ROOT Linux, Gentoo Linux 以及大多数免费的操作系统使用

Pure-FTPd 也可以运行在 BSD 系统 : FreeBSD (/usr/ports/ftp/pure-ftpd/), OpenBSD (/usr/ports/net/pure-ftpd/), DragonflyBSD and NetBSD (/usr/pkgsrc/net/pureftpd/).

配置步骤

需要的软件包

linux5.4  pureftpd-mysql.conf  pure-ftpd-1.0.36.tar  pureftp.sql  PureAdmin-0.3.tar

要进行管理账号,就要搭建lamp环境

安装下列软件包:

httpd php php-mysql mysql-server mysql-devel

Pure-FTPd_供应商

安装完成后启动服务并设置开机自启,给mysql设置口令

Pure-FTPd_blank_02

把需要的文件传入linux

解压pureftp 到 /usr/local/src

然后切换到解压目录进行安装

Pure-FTPd_center_03

./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

建立一个配置文件目录

mkdir /usr/local/pureftpd/etc

源代码中的配置文件拷到etc下

cd /usr/local/src/pure-ftpd-1.0.36/configure-file/ cp pure-ftpd.conf /usr/local/pureftpd/etc

chmod 755 pure-config.pl

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

Pure-FTPd_的_04

切换到源代码目录

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

cd contrib/

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

chmod 755 /etc/init.d/pureftpd

vim /etc/init.d/pureftpd

修改路径 18 19 行 fullpath=/usr/local/pureftpd/sbin/$prog

pureftpwho=/usr/local/pureftpd//sbin/pure-ftpwho

24 行 $fullpath /usr/local/pureftpd/etc/pure-ftpd.conf –daemonize

然后就可以启动服务了

service pureftpd start

建立一个虚拟账号所映射的本地账号访问的目录

mkdir /ftproot

chmod -R 777 /ftproot

useradd virtualftp -d /ftproot -s /sbin/nologin -M <创建接下来的虚拟用户对应的系统用户>

chown virtualftp:virtualftp /ftproot

编辑/usr/local/pureftpd/etc/pure-ftpd.conf

77行 不允许匿名访问 改为 yes

修改126行为:

PureDB /usr/local/pureftpd/pureftpd.pdb

336行打开

chrootEveryone yes 限定在自己的家目录

NoAnonymous yes 不允许匿名登录

CreateHomeDir yes 允许用户登录后自动创建家目录 <必须>

配置mysql认证

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

116行 打开 并修改为

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

将pureftpd-mysql.conf 拷到上面的目录下去

Pure-FTPd_target_05

打开 修改32行 tmppasswd

45行 改为 MD5

下载pureftp.sql

50 INSERT INTO admin VALUES ('admin',MD5('123')); 此为登录web用的用户密码,可自行修改

然后将其导入

mysql -u root -p < pureftp.sql

将15行前两个 - - 下加空格

Root登录到数据库上

执行

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

mysql&gt;flush privileges;

mysql&gt;quit;

安装ftp管理界面

tar xvf PureAdmin-0.3.tar.gz -C /var/www/html/

cd /var/www/html/

mv PureAdmin-0.3/ pureadmin

cd pureadmin

vim config.php

$cfg['dbname']='ftpusers'; //mysql db name 所用的库<与前面导入的sql中要一致>

$cfg['dbpasswd']='123'; //mysql password 自己数据库的密码

$cfg['passwdtype']='MD5'; 认证模式<要与pureftpd-mysql.conf中一致>

$cfg['dir']='/ftproot/'; //dir 默认家目录

$cfg['dl']=200; //DLBandwidth 下载速率限制

重启httpd pureftpd

管理账号已经搭建好了

Pure-FTPd_center_06

Pure-FTPd_的_07

下面把虚拟账号映射为本地账号

修改

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

126行改为 PureDB /usr/local/pureftpd/pureftpd.pdb

/usr/local/pureftpd/bin 下 pure-pw 可产生此文件

先做下面操作可支持在任何地方执行上面指令

echo PATH=$PATH:/usr/local/pureftpd/bin/ &gt;&gt;/etc/profile

source /etc/profile

pure-pw useradd user1 -u virtualftp -g virtualftp -d /ftproot/user1 –m 添加虚拟账号

pure-pw mkdb /usr/local/pureftpd/pureftpd.pdb 产生用户库文件

重启服务

即可访问

Pure-FTPd_的_08

Pure-FTPd_blank_09

Pure-FTPd_的_10