pureftp简介
pureftp支持了安全的mysql虚拟账号验证,这样保证了系统账户的安全,与pureftpd-admin配合起来管理起来也更方便,符合人们的使用习惯
PureFTPd是一款专注于程序健壮和软件安全的免费FTP服务器软件(基于BSD License)。其可以在多种类Unix操作系统中编译运行,包括Linux、OpenBSD、NetBSD、FreeBSD、DragonFly BSD、Solaris、Tru64、Darwin、Irix and HP-UX。PureFTPd还有Android移植版本。
PureFTPd由Troll-FTPd发展而来,Troll-FTPd是Arnt Gulbrandsen于1995年到1999年在Trolltech工作时所作。Gulbrandsen停止维护Troll-FTPd项目后,Frank Denis于2001年开始维护并将其改名为PureFTPd,目前的开发维护者是由Denis领导的团队。
下面是有项配置步骤
需要的环境
linux 5.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 产生用户库文件
重启服务
即可访问