首 页文章中心

Linux学习网

您的位置Linux学习网 > Linux服务器应用 > 文章内容

安装配置PureFTP

作者:佚名  来源:不详  发布时间:2008-5-17 8:23:00
我设置的pure-ftpd,pure-ftpd不用配置文件,它的理论是:命令行执行参数比使用conf文件更有效,所以这下研究了一把,最后发现还很好用,比起proftpd有过之而无不及啊。安装:


1 下载
  http://sourceforge.net/projects/pureftpd/
  目前最新版本是pure-ftpd-1.0.21.tar.gz
2 安装
  解包到任意目录,如/home/ender
   tar xzvf pure-ftpd-1.0.21.tar.gz
   cd pure-ftpd-1.0.21/
  ./configure –prefix=/home/ftp/pureftpd –with-language=simplified-chinese –with-everything
   注:
   –with-eyerything是安装所有功能
   –with-language=simplified-chinese是采用中文作为提示语言
   –prefix是安装的目标目录
   另外如果需要与mysql连接等还需要在此指定。本文不涉及。
   编译安装:
   make
   make install
3  建立用户
   pureftp默认的是采用linux的用户,比如用root登录等等。此处同时采用其自带的virtual users系统。该系统独立于linux。
   建立一个ftp用户的文件夹,这也就是匿名用户。
   mkdir /home/ftp/ftpdir
   建立一个ftp用户与组:
   groupadd ftpgroup
   useradd -g ftpgroup -d /home/ftp/ftpdir -s /etc ftp
   进入安装执行目录
   cd /home/ftp/pureftpd/bin
   建立第一个虚拟用户:
   ./pure-pw useradd ender -u ftp -d /home/ftp/ftpdir/ -f /home/ftp/pureftp/pureftp.passwd

   说明:ender是用户名,-u ftp是其实际的linux用户,-d指定起始目录,并锁定于该目录。如果不锁定,则用-D
   如果需要不同的权限,可以建立新的linux用户与组,-f 新建的用户passwd文件所在的地方。

   建立用户数据库:
   ./pure-pw  mkdb /home/ftp/pureftp/pureftp.pdb -f /home/ftp/pureftp/pureftp.passwd

   说明:今后每添加或修改用户数据库都应该执行一次mkdb,执行后不需要重起ftp

4 建立运行语句
   cd /home/ftp/pureftp/sbin
    ./pure-ftpd -4 -A -c 10 -C 1 -G -H -i -I 1 -k 95 -K -r -l  puredb:/home/ftp/pureftp/pureftp.pdb  \
                -L 100:2 -O stats:/home/ftp/log/pureftpd.log -p 40000:50000 -R -T 500 -w -X -y 3:10

说明:
    -4 只使用ipv4
    -A 除了root用户外,所有用户锁定于根目录
    -c 总的最多连接数
    -C 每个ip最多连接数
    -G 不允许重命名
    -H 取消DNS反查,加快连接速度
    -i 不允许匿名用户上传
    -I 空闲时间,超时后关闭连接,单位为分钟
    -k 限制硬盘使用量为总大小的95%
    -K 允许非匿名用户上传文件和断点续传(重写同名文件),但是不允许删除和重命名文件,如果文件夹为空,用户可以删除。
    -r 不允许重写同名文件,如果上传了一个同名文件,如xyz,就会被重命名为xyz.1等等。
    -l 很重要的一个参数,说明用户认证方式,可以有如下认证方式:
        -l unix     用 /etc/passwd认证
        -l pam     用pam方式认证
                -l puredb:/path/to/puredb_database  用PureDB方式认证,即虚拟用户方式,可参看README
        -l ldap:/path/to/ldap_config_file  用LDAP 文件夹认证方式,可参看README
        -l mysql:/path/to/mysql_config_file  用MySQL数据库方式认证,可参看README
        -l pgsql:/path/to/postgres_config_file  用Postgres数据库方式认证,可参看README
        -l extauth:/path/to/authd/socket  用external authentication handlers (with pure-authd),可参看README
        可以同时用多个认证方式,例如你可以这么运行
            /usr/local/sbin/pure-ftpd -lldap:/etc/pureftpd-ldap.conf      \
                            -lpuredb:/etc/pureftpd.pdb -lunix
        认证方式参看README
    -L 避免愚蠢的denial-of-service攻击,或者是cup hogs,第一个参数是浏览时显示的最大文件数,第二个参数是ls -R时最深的文件夹层数。
    -O 记录传输过的所有文件到指定的文件,第一个参数是format,可以为CLF(Apache-like), Stats, W3C 和 xferlog。其中Stats的格式是<date> <session id> <user> <ip> <U or D> <size> <duration> <file>。其中date是timestamp格式的,可以用/home/ftp/pureftp/bin/pure-statsdecode转化为人能看懂的格式。
    -p 设置port模式的端口。
    -R 禁止用户使用chmod
    -T 设置所有用户的上传下载速度,可以为一个参数,上传下载最高都为此参数,单位是KB/S,两个参数时第一个是最大上传速度,第二个是最大下载速度,用冒号分隔开来。
    -w 对非匿名用户支持FXP模式
    -X 所有用户不能读/写/重命名以.(dot)开头的文件。
    -y 第一个参数是一个非匿名用户最多能登录数,第二个参数是匿名用户最多能登录数。
    
    我就用到这么多了,其他参数请参看README。

5 自动启动

   pureftp支持多种启动方式,这里用最容易的一种:
   vi /etc/rc.d/rc.local
   添加
   cd /home/ftp/pureftp/sbin
   ./pure-ftpd -4 -A -c 10 -C 1 -G -H -i -I 1 -k 95 -K -r -l  puredb:/home/ftp/pureftp/pureftp.pdb \
    -L 100:2 -O stats:/home/ftp/log/pureftpd.log -p 40000:50000 -R -T 500 -w -X -y 3:10

6 文件夹操作
    你可以给你的ftp目录/home/ftp/ftpdir/里添加文件了,通过chmod和chown改变文件和文件夹的属性来起到某些功能限制的作用。

7 其他
       pureftpd 另外也提供了一个图形界面的配置管理器kcmpureftpd。可在sourcefouge同时下载。其实用命令行的方式可以锻炼人对其理解能力,但是会使许多人望而却步,这也是linux不好之处了,但是我们是本着学电脑的方式来做这些事的,就一定要学的扎实。

8 Funny
    pureftpd有一些很好玩的东西,在每次登录时都会有一个登录时的banner,之要在ftp文件夹(在本例中为/home/ftp/ftpdir)里写一个.banner文件就行了(不过我在这设置的时候遇到了一些编码的问题,等我研究清楚了再说吧),你也可以写一个不错的ASCII-art文件,呵呵,这样子就会很好看。另外,也可以在每一个文件夹里写一个.message 文件,在每次进入这个文件夹时就会显示出来。
    pureftpd也可以在登录时随机的显示一些信息,即cookies,这些cookies得从一个标准的“fortune”格式的文件里解出来,如果你安装了fortune包的话,就会在/usr/share/games/fortune下面有一个二进制的文件fortune(.dat)和一个text文件(没有.dat后缀),在运行pureftpd的时候之要用-F参数把这个text文件加上就行了,如:
    /usr/local/sbin/pure-ftpd -F /usr/share/fortune/zippy
    如果你想有你自己的fortune文件,那么创建一个text文件,格式如下:
    Hello… this is the first fortune…
    %
    Welcome to the real world.
    %
    Follow the white rabbit.
    %
    Have fun…
    Well… lotsa fun!
    %
    Yop is good for you.
    就是这样,fortune用%分割开来,创建的这个文件必须是只读的,要不pureftpd会忽略掉它。
    好了,这就可以写一些比较有趣的话了。我们写在/home/ftp/pureftp里,文件名是pure-fortune,内容如下:
    我觉得人生其实挺没意思的
    %
    你觉得清华好吗?
    %
    你喜欢吃鸡翅吗?
    %
    我想做一个超人,飞到美国抢1000台MacBook Pro来
    %
    呵呵,大家最近都好吗?在忙些什么?
    

[1] [2]  下一页

收藏本页到: 365Key | del.icio.us | | 添加到雅虎收藏+