|
|
- Pureftpd是什么?不用我介绍了吧,听说是目前为止最安全的一个ftp软件 -_-!不知道是不是
- 那天参考shadow朋友的 mysql+pureftpd安装方法,他本人也希望有人可以帮他更完善他的文档,昨天我在我的RH9.0系统上测试通过了,今天在我的FreeBSD上也测试通过了。现结合shadow朋友的文档,给出我全部的安装过程:
- 由于FreeBSD安装在我的vmware机里比较方便切换,以便一步步写文档,以保证尽可能做到准确,所以我以在 FreeBSD系统下安装。Redhat/Fedora上安装方式大同小异。
- 准备工作:
- 1、FreeBSD系统和,我采用最小化安装(你完全安装也可:)),已经含有gcc及常用的头文件及库函数
- 2、MySQL包,如果是已经安装好的朋友,跳过第一步,如果下载的是源码,就跟我一起去第一步安装
- 3、Pure-ftpd包,我选择源码,建议用源码,这样可以有很多定制的选择。
- 假设上述二个包MySQL和Pure-ftpd已经放到了 /root/down目录,我分别用的是pure-ftpd-1.0.20.tar.gz和mysql-4.0.26.tar.gz
- 以 freebsd# 开头的表示 shell提示
- 好了,开始吧
- 第一步:安装MySQL,由于自己表达能力不够,大家跟着我做命令就行了
- freebsd# cd /root/down #进入下载有2个包的目录
- freebsd# tar zxvf mysql-4.0.26.tar.gz
- freebsd# mv mysql-4.0.26 mysqlsrc
- freebsd# cd mysqlsrc
- freebsd# ./configure --prefix=/usr/local/mysql
- freebsd# make
- freebsd# make install #一般情况下,是不会出什么错误的
- 编译安装完成后,得对MySQL进行些配置,才能启动,不然是启动不了的哦
- freebsd# pw groupadd mysql
- freebsd# pw useradd mysql -g mysql #增加用来管理MySQL Server的帐户,你也可以直接用root
- freebsd# chgrp -R /usr/local/mysql #注意,这里我做了个不安全的做法,只是为了配置方便,实际时请注 意,并不需要开这么大的权限
- freebsd# cd /usr/local/mysql/bin
- freebsd# mysql_install_db --user=mysql #安装数据库文件(mysql和test数据库)
- freebsd# mysqld_safe --user=mysql #好了,启动服务器吧,,,
- 我们来做个测试
- 我们要运行mysql client,初始时是默认用户为空,密码也为空,危 哦,我们要改了,最简单的方法是利用mysqladmin,如我们要把 root密码改成123456,可以这样做
- 方法1:
- freebsd# ./mysqladmin -uroot password 123456 #注意这里的password是关键字,不是什么密码,123456不用引号,然后就可以连接了
- freebsd# ./mysql -uroot -p123456
- mysql> #进入后,提示符为 mysql>
- 方法2(直接进系统修改root密码)
- ./mysql #初使时,我们可以用空用户连接进去,权限也是最大的哦,等下把他删了,不然非常危险
- mysql> user mysql;
- mysql> update user set password=PASSWORD('123456') where user='root'; #这行是把root的密码改为123456,注意了,在这里出现的2个password,前边的一个password是表中的列,而PASSWORD是个函数,你一定要加哦,不然,你登录不了(PASSWORD也可以用小写,我只是为了区分).
- mysql> delete from user where user=''; #删除空用户,强烈建议。
- mysql> flush privileges; #刷新权限表,以便可以使更改立即生效
- mysql> quit #测试正常了,没问题了
- 第二步:我们来编译安装Pure-ftpd,老样子,来用命令
- freebsd# cd /root/down
- freebsd# tar zxvf pure-ftpd-1.0.20.tar.gz
- freebsd# mv pure-ftpd-1.0.20 pure-ftpdsrc
- freebsd# cd pure-ftpdsrc
- #下边的这条命令,很大一部分可能会出错,这是很多玩这个配置下不去的因原,关键....哦
- freebsd# ./configure --with-mysql=/usr/local/mysql
- ...
- ...
- ...
- ERROR:configure error:Your MySQL client libraries aren't properly installed. #出这个错了
- 要怎么解决呢,后下边,用命令
- freebsd# cp /usr/local/mysql/lib/mysql/*.* /usr/lib #把xxx复制到 /usr/lib,这个大家都会理解了
- 然后,直接这样编译
- freebsd# ./configure --with-mysql #这个命令这次就能正确了
- make;make install #编译、安装
- ...
- ...
- ...Enjoy!
- OK,现在,只差小步步就可以了
- 对于 pure-ftpd来说,如果用MySQL认证,那么最重要的2个文件分别是 pure-ftpd.conf 和 pureftpd-mysql.conf,用源码安装,这2个文件是在安装的目标上找不到的。他在我们的源码里,只是个样本
- 我们把他们2个复制到 /etc 目录下,你也可复制到别处,但是在配置时又有所变动哦
- freebsd# cp /root/down/pure-ftpdsrc/pureftpd-mysql.conf /etc
- freebsd# cp /root/down/pure-ftpdsrc/configuration-file/pure-ftpd.conf /etc #完整的目录我已经给你了,不用解释了吧
- 第三步:修改基本的配置文件
- 接下来,我们来对这2个配置文件做个简单配置
- 1、修改 /etc/pure-ftpd.conf
- freebsd# vi /etc/pure-ftpd.conf
- #这里列出一部分,重要的
- /etc/pure-ftpd.conf
- ChrootEveryone yes # 锁定用户在主目录中,你不会希望,a1用户能进到a2目录里吧
- CreateHomeDir yes # 自动建立用户主目录,根据数据里的记录,自动建立用户目录
- MaxClientsNumber 10 # 最大可连接的用户数,自己决定吧
- MaxClientsPerIP 2 # 来自一个IP的最大连接数,知道有的站点,为什么只能一个线程了吧
- MaxIdleTime # 客户端连接后的最大闲置时间
- MySQLConfigFile /etc/pureftpd-mysql.conf # 关键部分,你整合mysql就靠它了
- ProhibitDotFilesWrite yes # 禁止修改隐藏文件
- ProhibitDotFilesRead yes # 禁止读取隐藏文件,这2项建议用yes,不然你不小心把某个.开头的(隐藏文件)弄没了,或改了,可能你的用户会有问题哦
- 根据自己的要求来设定,但注意一定要把注掉的MySQLConfigFile打开,还有注掉的CreateHomeDir打开。
- 2、修改/etc/pureftpd-mysql.conf
- freebsd# vi /etc/pureftpd-mysql.conf
- #这里也是列出一部分,重要的
- # Optional : MySQL server name or IP. Don't define this for unix sockets.
- MYSQLServer localhost #SQL运行在本机,当然是 localhost了
- # Optional : MySQL port. Don't define this if a local unix socket is used.
- MYSQLPort 3306 #原来是注销掉的我们打开它,其实不打开也行,系统默认就OK
- # Mandatory : user to bind the server as.
- MYSQLUser root #这里的 MYSQLUser和MYSQLPassword是 pureftpd查询帐号数据库用的,我就用root得了,你也可指定,但是必须在 mysql.user表里有指定
- MYSQLPassword 123456
- MYSQLDatabase pureftpd #这个是我们要在MySQL里建立的一个认证数据库
- 配置完成。
- 最后一步,建立ftp用户目录,在数据库里
- freebsd# pw useradd ftpusers -u 10000 #建立一个ftpusers帐户,uid为10000,系统默认为这个用户建立主属群组 freebsd# ftpusers, gid也是 10000,这里的 10000要记住哦,=下要用到
- freebsd# mkdir /ftpdir
- freebsd# chown -R ftpusers:ftpusers /ftpdir #把 /ftpdir目录及同以下的目录,设置所属用户和群组,这里的语法和linux下不一样,我晕了半天才弄对,linux下是这样的 chown -R ftpusers.ftpusers /ftpdir
- 然后,进mysql做最重要的一件事,建立认证数据库,加个用户试试
- mysql -uroot -p123456
- mysql> create database pureftpd #这里的数据名pureftpd和pureftpd-mysql.conf里的对应
- mysql> use pureftpd
- mysql> CREATE TABLE users (
- User varchar(16) NOT NULL default '',
- Password varchar(64) NOT NULL default '',
- Uid varchar(11) NOT NULL default '-1',
- Gid varchar(11) NOT NULL default '-1',
- Dir varchar(128) NOT NULL default '',
- ULBandwidth smallint(5) NOT NULL default '0',
- DLBandwidth smallint(5) NOT NULL default '0',
- comment tinytext NOT NULL,
- ipaccess varchar(15) NOT NULL default '*',
- QuotaSize smallint(5) NOT NULL default '0',
- QuotaFiles int(11) NOT NULL default 0,
- PRIMARY KEY (User),
- UNIQUE KEY User (User)
- ) TYPE=MyISAM; #建立认证表,对于简单的测试,可以不要ULBandwidth及以下的字段
- mysql> insert users (user,password,uid,gid,dir) values ('ftptest','ftptestpw',10000,10000,'/ftpdir/ftptest')
- #这里是在 pureftpd数据库里插入一个用户名为 ftptest,密码为 ftptestpw,gid和uid都为10000,家目录为 /ftpdir/ftptest,的帐号,千万要注意的是,这里的 password字段不能用 password()函数,我以前就是用了这个函数,以至于不能认证,这里的gid和uid是和 ftpusers是一样的
- mysql>quit
- 好了,完全OK。我们来测试下
- 我们得要把 pureftp运行起来再说,我们可以利用 /root/down/pure-ftpdsrc/configuration-file/pure-config.pl这个脚本来控制,注意,这是用perl语言写的。如果没有安装perl就安装一个吧
- freebsd# chmod u+x /root/down/pure-ftpdsrc/configuration-file/pure-config.pl
- freebsd# cp /root/down/pure-ftpdsrc/configuration-file/pure-config.pl /etc #放这里好找
- /etc/pure-config.pl /etc/pure-ftpd.conf #运行pureftpd服务器,看到如果下信息,就说明成功了
- Running: /usr/local/pure-ftpd/sbin/pure-ftpd -A -c50 -B -C8 -D -fnone -H -115 -l mysql:/etc/pureftpd-mysql.conf -lunix -L2000:8 -m4 -s -U133:022 -u100 -j -k99 -Z
- freebsd# ftp localhost
- Connected to 127.0.0.1..
- 220---------- Welcome to Pure-FTPd ----------
- 220-You are user number 2 of 50 allowed.
- 220-Local time is now 23:59. Server port: 21.
- 220-IPv6 connections are also welcome on this server.
- 220 You will be disconnected after 15 minutes of inactivity.
- User (192.168.40.100:(none)): ftptest #输入数据库里插入的帐号
- 331 User ftptest OK. Password required
- Password: #密码 testpw
- 230-User ftptest has group access to: ftpusers
- 230 OK. Current restricted directory is /
- ftp>
- ftp>quit
- 221-Goodbye. You uploaded 0 and downloaded 0 kbytes.
- 221 Logout.
- freebsd# #还有不懂的吗????
- 第一次这么认真,如果还是有错,请给我指出,谢谢
复制代码 |
|