Pure-ftp
Pure-FTPd
是一款免费(BSD)的,安全的,高质量和符合标准的FTP服务器。侧重于运行效率和易用性。 它提供了简单的答案,他满足了大众化的需求,包括普通用户以及主机供应商们。
Pure-FTPd
安全性
pure - ftpd 得到了充分的支持,它是始终以安全设计为理念,其代码总是作为有漏洞的来进行讨论,并重新审核。该服务可以适应严格的安全需要做到权限分离。甚至在不需要Root权限的情况下通过其内建的chroot()仿真以及虚拟帐户100%正常运行。避免密码作为明文传输:pure - ftpd的OpenSSL库支持可选的 SSL / TLS加密层使用。
Pure-FTPd
的运行环境
同样的源代码被编译并运行于
Linux, OpenBSD, NetBSD, DragonflyBSD以及 iPhone上。 FreeBSD, Solaris, Tru64, Darwin, Irix, HPUX, AIX
预编译的二进制包可提供
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/).
Pure-FTPd
语言环境
所有的服务器消息被翻译成英语,德语,罗马尼亚语,法语,波兰语,西班牙语,丹麦语,荷兰语,意大利语,巴西葡萄牙语,斯洛伐克语,韩语,瑞典语,挪威语,俄语,繁体中文,简体中文,捷克语,土耳其语,匈牙利语和加泰罗尼亚语。
这将帮助你们的客户理解并诊断,即使英语不是他们的母语
它可以帮助您的客户了解诊断,即使英语不是他们的母语。
消息在独立文件,它们可以很容易地转换为新的语言,或自定义
一、安装
apache mysql mysql-server mysql-devel
[root@localhost ~]# yum install httpd php myql mysql-server mysql-devel php-mysql –y
[root@localhost ~]# service mysqld start
Starting MySQL:
[ OK ]
[root@localhost ~]# service httpd start
Starting httpd:
[ OK ]
设置开机启动:
[root@localhost ~]# chkconfig mysqld on
[root@localhost ~]# chkconfig httpd on
加密mysql:
[root@localhost ~]# mysqladmin -u root -p password "123456"
测试mysqld与httpd服务是否可以访问:
用本地机直接访问就可以。
验证3306端口是否打开:
[root@localhost html]# netstat -tupln |grep mysql
tcp
0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 7193/mysqld
二、源码安装
pure-ftp
上传源码:
解压缩:
[root@localhost ~]# cd pureftp/
[root@localhost pureftp]# ll
total 10804
-rw-r--r-- 1 root root
29148 Dec 17 21:16 PureAdmin-0.3.tar.gz
-rw-r--r-- 1 root root
578781 Dec 17 21:16 pure-ftpd-1.0.36.tar.gz
-rw-r--r-- 1 root root
4718 Dec 17 21:16 pureftpd-mysql.conf
-rw-r--r-- 1 root root
2105 Dec 17 21:16 pureftp.sql
-rw-r--r-- 1 root root
196917 Dec 17 21:16 webpureftp0.1.tar.gz
-rw-r--r-- 1 root root 10208541 Dec 17 21:16 ZendOptimizer-3.3.3-linux-hicode.tar.gz
[root@localhost pureftp]# tar -zxvf pure-ftpd-1.0.36.tar.gz -C /usr/local/src
[root@localhost pureftp]# cd /usr/local/src/
[root@localhost src]# ll
total 4
drwxr-xr-x 10 root root 4096 Dec 17 21:20 pure-ftpd-1.0.36
[root@localhost src]# cd pure-ftpd-1.0.36/
[root@localhost pure-ftpd-1.0.36]# ls
aclocal.m4
configure.ac HISTORY man pureftpd-pgsql.conf README.Contrib README.TLS
AUTHORS
CONTACT INSTALL missing pure-ftpd.png README.Debian README.Virtual-Users
ChangeLog
contrib install-sh NEWS pureftpd.schema README.Donations README.Windows
compile
COPYING m4 pam pure-ftpd.spec.in README.LDAP src
config.h.in
depcomp Makefile.am puredb README README.MacOS-X THANKS
configuration-file FAQ
Makefile.gui pureftpd-ldap.conf README.Authentication-Modules README.MySQL
configure
gui Makefile.in pureftpd-mysql.conf README.Configuration-File README.PGSQL
[root@localhost pure-ftpd-1.0.36]#
源码安装须具备以下条件:
注意:遇到configure文件,要保证四个开发工具要具备:
Development Libraries
Development Tools
Development Tools
X Software Development
Legacy Software Development
[root@localhost pure-ftpd-1.0.36]# yum grouplist |less 查看自己电脑安装了没 若没有安装上
[root@localhost ~]# yum groupinstall "Legacy Software Development" "Development Libraries" "X Software Development"
预编译-----编译-----整理文件
[root@localhost pure-ftpd-1.0.36]# ./configure \
--prefix=/usr/local/pureftpd \ 安装目录
--with-mysql \ 服务器支持 mysql
--with-shadow \ 支持本地的 /etc/shadow
--with-pam \ 支持 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 简体中文
--prefix=/usr/local/pureftpd \ 安装目录
--with-mysql \ 服务器支持 mysql
--with-shadow \ 支持本地的 /etc/shadow
--with-pam \ 支持 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 contrib]# cp redhat.init /etc/init.d/pureftpd
[root@localhost contrib]# chmod a+x /etc/init.d/pureftpd 给予执行的权利
[root@localhost pure-ftpd-1.0.36]# cd configuration-file/
[root@localhost configuration-file]# ls
Makefile Makefile.am Makefile.in pure-config.pl pure-config.pl.in pure-config.py pure-config.py.in pure-ftpd.conf pure-ftpd.conf.in
[root@localhost configuration-file]# cp pure-config.pl /usr/local/pureftpd/sbin/
[root@localhost pure-ftpd-1.0.36]# ./configure --help |less帮助
[root@localhost pure-ftpd-1.0.36]# cd /usr/local/pureftpd/
[root@localhost pureftpd]# ll
total 12
drwxr-xr-x 2 root root 4096 Dec 17 22:02 bin
drwxr-xr-x 2 root root 4096 Dec 17 22:26 sbin
drwxr-xr-x 3 root root 4096 Dec 17 22:02 share
[root@localhost pureftpd]# mkdir etc 建立文件etc
[root@localhost configuration-file]# cd /usr/local/pureftpd/sbin
[root@localhost sbin]# ls
pure-authd pure-config.pl pure-ftpd pure-ftpwho pure-mrtginfo pure-quotacheck pure-uploadscript
[root@localhost sbin]# ll
total 592
-rwxr-xr-x 1 root root 16934 Dec 17 22:02 pure-authd
-rw-r--r-- 1 root root
4696 Dec 17 22:26 pure-config.pl
-rwxr-xr-x 1 root root 425166 Dec 17 22:02 pure-ftpd
-rwxr-xr-x 1 root root 48418 Dec 17 22:02 pure-ftpwho
-rwxr-xr-x 1 root root 21457 Dec 17 22:02 pure-mrtginfo
-rwxr-xr-x 1 root root 33332 Dec 17 22:02 pure-quotacheck
-rwxr-xr-x 1 root root 34881 Dec 17 22:02 pure-uploadscript
[root@localhost sbin]# chmod a+x pure-config.pl 修改为执行权限
[root@localhost pure-ftpd-1.0.36]# cd /usr/local/src/pure-ftpd-1.0.36/configuration-file/
[root@localhost configuration-file]# cp pure-ftpd.conf /usr/local/pureftpd/etc/
[root@localhost configuration-file]# vi /etc/init.d/pureftpd
启动pureftps:
[root@localhost configuration-file]# service pureftpd start
Starting 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 configuration-file]# chkconfig --list |grep pureftpd查看
[root@localhost configuration-file]# chkconfig --add pureftpd 添加该服务
[root@localhost configuration-file]# chkconfig pureftpd on 设置开机启动
[root@localhost configuration-file]# chkconfig --list |grep pureftpd 继续查看可以了
pureftpd
0:off 1:off 2:on 3:on 4:on 5:on 6:off
四
配置虚拟用户登录环境
修改配置文件
[root@localhost configuration-file]# vi /usr/local/pureftpd/etc/pure-ftpd.conf
其中有几项要修改:
chrootEveryone yes 限定在自己的家目录
NoAnonymous yes 不允许匿名登录
Bind 127.0.0.1,21 监听本机回环 <可选>
Bind 192.168.0.254,21 监听本机IP <自行添加的,非必须>
CreateHomeDir yes 允许用户登录后自动创建家目录
<必须>
[root@localhost configuration-file]# service pureftpd restart
[root@localhost configuration-file]# mkdir /ftproot
[root@localhost configuration-file]# chmod 777 /ftproot/<这不不做可以能会引起登录时报421错误>
[root@localhost configuration-file]# useradd virtualftp -d /ftproot -s /sbin/nologin –M <创建接下来的虚拟用户对应的系统用户>
[root@localhost configuration-file]# chown virtualftp:virtualftp /ftproot
加环境变量:
[root@localhost bin]# echo "PATH=$PATH:/usr/local/pureftpd/bin" >>/etc/profile
[root@localhost bin]# ./pure-pw
[root@localhost bin]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/pureftpd/bin
五,用
mysql
验证
[root@localhost pureftp]# vi /usr/local/pureftpd/etc/pure-ftpd.conf
116行 MySQLConfigFile
/usr/local/pureftpd/etc/pureftpd-mysql.conf
[root@localhost pureftpd]# cd etc/
[root@localhost etc]# ll
total 12
-rw-r--r-- 1 root root 11229 Dec 17 23:23 pure-ftpd.conf
到/usr/local/pureftpd/etc/下查看其实没有pureftpd-mysql.conf
文件,去上传的软件包里复制
[root@localhost pureftp]# pwd
/root/pureftp
[root@localhost pureftp]# cp pureftpd-mysql.conf /usr/local/pureftpd/etc/
切换到目录修改
[root@localhost etc]# vi pureftpd-mysql.conf
导入数据库:
[root@localhost pureftp]# vi pureftp.sql
22 -- Login = ftp
此为登录数据库的用户
23 -- Password = tmppasswd 此为登录数据库的密码
31 CREATE DATABASE ftpusers; 创建名为ftpusers的库
50 INSERT INTO admin VALUES ('admin',MD5('passwd')); 此为登录web用的用户密码,可自行修改
<导入数据,导入前可能需要修改此sql文件的15行:前2个减号空一格-- ------------------------------------------------------->
[root@localhost ~]# cd pureftp/
[root@localhost pureftp]# mysql -u root -p
Enter password:
查看mysql
添加连接mysql用户
先用root登录mysql,执行
mysql>grant all privileges on ftpusers.* to ftp@localhost identified by 'tmppasswd';
mysql>flush privileges;
mysql>quit;
验证是否成功:
六,解压缩
pureadmin
:
[root@localhost pureftp]# tar -zxvf PureAdmin-0.3.tar.gz
[root@localhost pureftp]# mv PureAdmin-0.3 /var/www/html/pureadmin 移动过去
修改pureadmin的配置文件
[root@localhost pureftp]# cd /var/www/html/pureadmin
[root@localhost pureadmin]# ls
adduser.php admin.php chkuser.php code.php config.php edit.php p_w_picpaths index.php lib.php libs list.php lock.php main.php
[root@localhost pureadmin]# vi config.php
$cfg['dbhost']='localhost'; //mysql host
$cfg['dbname']='ftpusers'; //mysql db name
所用的库<与前面导入的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,*为所有
?>
这时可以试着登陆一下看看了:
创建两个用户user1和user2:,这两个用户保存到了mysql数据库中:可以登录mysql数据库查看:
[root@localhost pureftp]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.0.77 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.00 sec)
mysql> 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> show tables;
+--------------------+
| Tables_in_ftpusers |
+--------------------+
| admin
|
| users
|
+--------------------+
2 rows in set (0.00 sec)
mysql> select * from users;
+-------+----------------------------------+------+------+----------------+------------+-----------+-------------+-------------+-----------+---------+--------+---------+---------+
| User | Password
| Uid | Gid | Dir | QuotaFiles | QuotaSize | ULBandwidth | DLBandwidth | Ipaddress | Comment | Status | ULRatio | DLRatio |
+-------+----------------------------------+------+------+----------------+------------+-----------+-------------+-------------+-----------+---------+--------+---------+---------+
| user1 | 202cb962ac59075b964b07152d234b70 | 1000 | 1000 | /ftproot/user1 |
0 | 0 | 100 | 100 | * | | 1 | 0 | 0 |
| user2 | 202cb962ac59075b964b07152d234b70 | 1000 | 1000 | /ftproot/user2 |
0 | 0 | 100 | 100 | * | | 1 | 0 | 0 |
+-------+----------------------------------+------+------+----------------+------------+-----------+-------------+-------------+-----------+---------+--------+---------+---------+
2 rows in set (0.00 sec)
mysql>
可以看到刚创建的用户。
用本地物理机访问却不成功
,
查看/ftproot/目录并没有创建的用户.
七,用
pureDB
认证
打开虚拟账号与物理账号之间的映射文件
[root@localhost ftproot]# vi /usr/local/pureftpd/etc/pure-ftpd.conf
[root@localhost pureftpd]# echo PATH=$PATH:/usr/local/pureftpd/bin >> /etc/profile
[root@localhost pureftpd]# . /etc/profile
重启服务:
[root@localhost pureftpd]# service pureftpd restart
Stopping pure-config.pl:
Starting pure-config.pl: Running: /usr/local/pureftpd/sbin/pure-ftpd --daemonize -A -c50 -B -C8 -D -E -fftp -H -I15 -lmysql:/usr/local/pureftpd/etc/pureftpd-mysql.conf -lpuredb:/usr/local/pureftpd/pureftpd.pdb -L10000:8 -m4 -s -U133:022 -u100 -j -k99 -Z
再次访问: