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
安装完成后启动服务并设置开机自启,给mysql设置口令
把需要的文件传入linux
解压pureftp 到 /usr/local/src
然后切换到解压目录进行安装
./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
切换到源代码目录
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 �Cdaemonize
然后就可以启动服务了
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 拷到上面的目录下去
打开 修改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>flush privileges;
mysql>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
管理账号已经搭建好了
下面把虚拟账号映射为本地账号
修改
/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/ >>/etc/profile
source /etc/profile
pure-pw useradd user1 -u virtualftp -g virtualftp -d /ftproot/user1 �Cm 添加虚拟账号
pure-pw mkdb /usr/local/pureftpd/pureftpd.pdb 产生用户库文件
重启服务
即可访问