Linux学习笔记之pureftp(一) - zhuzhu的日志 - 网易博客

http://zhumeng8337797.blog.163.com/blog/static/100768914201121383920304/

关键字:pureftp pureftpd 技术文档 Linux 服务器 架设 学习笔记 proftp proftpd vsftp FTP Serv-U Xlight 被动模式 iptables 端口 范围

 


Linux下的主流FTP服务器软件,基本上由pureftp、vsftp和proftp这三家平分了,与之相比Windows倒是有更多的选择,serv-u、xlight、Gene6都是相当不错的。

由于Windows和Linux系统存在很大的差异,所以两个系统在FTP服务器设计上也大相径庭,Windows相对来说会比较简单,在一个界面上几乎可以控制所有的权限,Linux这时就略显复杂了。

今天我们来看pureftp的使用,其实proftp也基本差不多。至于vsftp资料就到处都是了,不介绍了。

1.pureftp的安装

官方网站 http://www.pureftpd.org/

tar xzvf pure-ftpd-1.0.21.tar.gz
cd pure-ftpd-1.0.21/
./configure –prefix=/usr/local/pureftpd –with-language=simplified-chinese –with-everything
注:
–with-eyerything是安装所有功能
–with-language=simplified-chinese是采用中文作为提示语言(不推荐)
–prefix是安装的目标目录
–with-rfc2640 对客户端编码的自动适用
另外如果需要与mysql连接等还需要在此指定。(稍后介绍)
make && make install && echo OK

2.复制安装目录configuration-file/里的pure-ftpd.conf到/usr/local/pureftpd/etc
pureftpd的运行方式和别的Linux程序不太一样,所有的参数调整都是通过运行时的命令行来调整,但程序也提供了一个perl和

python脚本将配置文件转变成命令行参数。将此文件夹下pure-config.py一并拷贝过去。

3.基本参数的调整

a.日志参数
默认是关闭的,配置文件设置日志文件的格式和存放位置。可以是clf,stats和w3c格式。
# AltLog clf:/var/log/pureftpd.log

# AltLog stats:/var/log/pureftpd.log

# AltLog w3c:/var/log/pureftpd.log

b.ChrootEveryone 限制每一个虚拟用户在其目录下

c.认证方式,默认都没开(默认支持匿名用户【需要满足条件】和系统非root用户登陆)

# LDAP 配置文件 (参考 README.LDAP)

# LDAPConfigFile                /etc/pureftpd-ldap.conf

# MySQL 配置文件 (参考 README.MySQL)

# MySQLConfigFile               /etc/pureftpd-mysql.conf

# Postgres 配置文件 (参考 README.PGSQL)

# PGSQLConfigFile               /etc/pureftpd-pgsql.conf

# PureDB 用户数据库 (参考 README.Virtual-Users)

# PureDB                        /etc/pureftpd.pdb

# pure-authd 的socket 路径(参考 README.Authentication-Modules)

# ExtAuth                       /var/run/ftpd.sock

# 如果你要启用 PAM 认证方式, 去掉下面行的注释。

# PAMAuthentication             yes

# 如果你要启用 简单的 Unix系统 认证方式(/etc/passwd), 去掉下面行的注释。

# UnixAuthentication            yes

# 请注意,LDAPConfigFile, MySQLConfigFile, PAMAuthentication 和
# UnixAuthentication 这些指令只能被使用一次,不过,他们能被混合在一起用。例如:如果你使用了
# MySQLConfigFile 和 UnixAuthentication,那么 SQL 服务器将被访问。如果因为用户名未找
# 到而使 SQL 认证失败的话,就会在/etc/passwd 和 /etc/shadow 中尝试另外一种认证,如果因
# 为密码错误而使 SQL 认证失败的话,认证就会在此结束了。认证方式由它们被给出来的顺序而被链
# 接了起来。

d.PID文件位置
# PIDFile                     /var/run/pure-ftpd.pid

e.每个IP允许的最大连接数
# Maximum number of sim clients with the same IP address

MaxClientsPerIP             8

f.被动模式选项
# Port range for passive connections replies. – for firewalling.

# PassivePortRange          30000 50000
4.启动

[root@s0 etc]# ./pure-config.py pure-ftpd.conf
Running: ['/usr/local/pureftpd/sbin/pure-ftpd', '-A', '-c', '50', '-B', '-C', '8', '-D', '-f', 'ftp', '-H',

'-I', '15', '-L', '10000:8', '-m', '4', '-s', '-U', '133:022', '-u', '100', '-k', '99', '-Z']

[root@s0 etc]# netstat -tunpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      7420/pure-ftpd (SER
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1966/sshd
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1995/sendmail: acce

此时若没有更改配置文件,仅支持匿名用户和非root的系统用户登陆。

5.参考资料:
http://ftqq.com/2010/01/27/use-pure-ftpd-and-pure-ftpd-mysql-manage-quota/
http://www.crazylemon.net/ftp/96.html
http://www.crazylemon.net/linux/77.html
http://symfony.net.cn/?p=160
http://www.5dlinux.com/article/9/2008/linux_14371.html

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

在linux系统中安装pureFTP | Bobby网络工作室

http://www.bobbylab.com/installed-in-linux-system-pureftp/

Pureftp配置与管理

1、下载并安装pure-ftpd(上ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.20.tar.gz处下载)

#tar zxvf pure-ftpd-1.0.20.tar.gz

#cd pure-ftpd-1.0.20

#./configure \

--prefix=/usr/local/pureftpd \

--with-mysql \

--with-virtualchroot \

--with-virtualhosts \

--with-virtualroot \

--with-diraliases \

--with-uploadscript \

--with-cookie \

--with-quotas \

--with-sysquotas \

--with-ratios \

--with-throttling \

--with-largefile \

--with-peruserlimits \

--with-paranoidmsq \

--with-welcomemsg \

--with-lanaguage=simplified-chinese \

#make

#mak install

#cp configuration-file/pure-config.pl /usr/local/pureftpd/sbin/ #生成配置脚本

#chmod +x /usr/local/pureftpd/sbin/pure-config.pl

#mkdir /ftproot #建立FTP主目录

<!--[if !supportLists]-->2、 <!--[endif]-->生成pure-ftpd服务管理脚本

<!--[if !supportLists]-->2. <!--[endif]-->1、进入pure-ftp解压目录,编辑contrib子目录里的redhat.init文件

<!--[if !supportLists]-->Ø <!--[endif]-->修改“fullpath=/usr/local/sbin/$prog”为“fullpath=/usr/local/pureftpd/sbin/$prog”

<!--[if !supportLists]-->Ø <!--[endif]-->修改“pureftpwho=/usr/local/sbin/pure-ftpwho”为“pureftpwho=/usr/local/pureftpd/sbin/pure-ftpwho

2.2、执行以下命令将文件redhat.init复制到/etc/init.d目录中并重命名为pure-ftpd

#cp contrib./redhat.init /etc/init.d/pure-ftpd

#chmod +x /etc/init.d/pure-ftpd

#chkconfig --add pure-ftpd

<!--[if !supportLists]-->3、 <!--[endif]-->配置匿名用户登录环境

#mkdir /var/ftp

#chown ftp:ftp /var/ftp

注:如想修改FTP匿名用户的主目录可以修改/etc/passwd文件

<!--[if !supportLists]-->4、 <!--[endif]-->安装Zend Optimizer(上www.zend.com/store/free_download.php处注册下载)

#tar zxvf ZendOptimizer-2.5.10a-linux-glibc210i386.tar.gz

#cd ZendOptimizer-2.5.10a-linux-glibc210i386

#./install.sh

5、虚拟用户管理程序webpureftp的安装与配置

5.1、生成mysql数据库

#tar zxvf webpureftp0.1.tar.gz

#cd webpureftp0.1

#编辑SQL子目录里的pureftp_0.1.sql文件。找到语句“DROP TABLE IF EXISTS ‘depart_info’;”,在该语句前加入一下两句:

CREATE DATABASE pureftp;

USE pureftp

#mysql –u root –p <SQL/pureftp_0.1.sql

#输入Mysql的root口令即可自动生成pure-ftp的数据库

5.2、生成pure-ftpd配置文件

<!--[if !supportLists]-->Ø <!--[endif]-->进入webpureftp解压目录,编辑子目录docs里的pureftp-mysql.conf文件,修改以下配置选项

修改“MYSQLUser network”为“MYSQLUser root”

修改“MYSQLPassword 123456”为“MYSQLUser xiaobai”

修改“MYSQLDatabase network”为“MYSQL Database pureftp”

<!--[if !supportLists]-->Ø <!--[endif]-->将文件pure-ftpd.conf和pureftpd-mysql.conf复制到/etc目录下

#cp docs/pure-ftpd.conf /etc

#cp docs/pureftp-mysql.conf /etc

5.3、配置webpureftp

<!--[if !supportLists]-->Ø <!--[endif]-->进入webpureftp解压目录,编辑子目录config里的config.inc.php,修改以下配置选项:

找到语句“$default_ftp_root=”/data/ftp”;”将其修改为FTP实际的目录,如修改为“$default_ftp_root=”/ftproot/”;”

找到语句“$obj_db=new db(“localhost”,”root”,””,”pureftp”);”修改其中root的口令为实际口令,如修改为“$obj_db=new db(“localhost”,”root”,”xiaobai”,”pureftp”);”

<!--[if !supportLists]-->Ø <!--[endif]-->将webpureftp目录放置在Apache的主目录中。进入webpureftp解压目录里的父目录,将webpureftp解压后的目录复制到Apache的主目录

#cp –a webpureftp0.1 /var/www/html/webpureftp

 

 

 

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
其他参考资料:

PureFTP安装笔记 | Freebsd/Linux/Unix学习笔记

http://www.unixnotes.net/pureftp%E5%AE%89%E8%A3%85%E7%AC%94%E8%AE%B0.html

linux下FTP服务的安装与配置 - 红联Linux门户 - 中国领先的Linux技术网站 - 网站导航 - Linux企业应用 - Linux服务器应用

http://www.linuxdiyf.com/viewarticle.php?id=27005

 

 

Linux学习笔记之pureftp(一) - zhuzhu的日志 - 网易博客
posted on 2012-07-09 17:45  Yorian  阅读(495)  评论(0)    收藏  举报