Pure-ftpd介绍
PureFTPd是一款免费、安全、符合国际标准的FTP 服务器软件,具备高效性和易用性。虚拟账户、系统账户及匿名账户登陆支持,多种认证方式支持,磁盘配额支持,上传下载速率限制支持,访问IP限制支持,Mysql数据结合使用存储ftp虚拟账户支持等等,独特的实用功能为个人用户和托管服务提供商提供优质的定制化ftp配置选择。
源码下载及安装
a. libiconv库安装---用户编码转换(为后面的with-rfc2640参数准备)
cd /usr/local/src
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar -jxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr
make&&make check
make install
b. pure-ftpd源码安装
cd /usr/local/src
wget ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.36.tar.gz
cd /usr/local/src/pure-ftpd-1.0.36
./configure --prefix=/usr/local/pure-ftpd/ --with-everything --with-altlog --with-puredb --with-ftpwho --with-mysql –with-throttling –with-ratios –with-quotas –with-virtualhosts –with-virtualchroot –with-sysquotas –with-cookie --with-rfc2640 --with-language=simplified-chinese
其中config参数表如下,供参考:
–prefix=PREFIX 指定安装目录
–with-sysquotas 使用系统磁盘配额 (非虚拟)
–with-altlog 支持选择日志格式(类似Apache)
–with-puredb 支持虚拟用户 (FTP登陆用户而非系统用户)
–with-extauth 支持扩展验证模块
–with-pam 启用PAM验证支持 (默认=禁用)
–with-cookie 启用Cookie支持 (-F 选项)
–with-throttling 支持带宽控制 (默认=禁用)
–with-ratios 支持 上传/下载 速度控制
–with-quotas 支持 .ftpquota 文件(指定磁盘配额使用)
–with-ftpwho 支持pure-ftpwho(查看在线用户的程序)
–with-largefile 支持大于2G的文件
–with-welcomemsg 支持 welcome.msg 向后兼容(已经过时)
–with-uploadscript 上传后允许执行外部脚本 (测试阶段)
–with-virtualhosts 在不同的IP地址提供虚拟服务器功能
–with-virtualchroot 允许在chroot的环境下通过符合连接跳转到外部
–with-diraliases 启用目录别名
–with-nonroot 普通模式或者说是限制模式. 如果你在该服务器上没有root权限那只有启用该项
–with-peruserlimits 支持每个用户的并发限制
–with-language= 语言支持< english | traditional-chinese | simplified-chinese>
–with-ldap 在LDAP目录中提供用户数据库
–with-mysql 在MySQL数据库中存放用户数据
–with-pgsql 在PostgreSQL数据库中存放用户数据
–with-privsep 启用权限分离
–with-tls 启用 SSL/TLS 支持 (测试阶段, 需要安装 OpenSSL)
–with-certfile= 证书文件 (默认目录: /etc/ssl/private/pure-ftpd.pem)
–with-rfc2640 启用兼容 RFC 2640 支持(UTF-8 编码的文件名,需要安装iconv)
–with-everything 启用大多数选项,编译完功能版本的服务器端。
make&&make check
make install
注意:这里在编译的时候,如果你在这操作之前尚未安装mysql,那么会报错,错误及解决办法如下:
错误: configure: error: libmysqlclient is needed for MySQL support
解决方法: yum install mysql-devel
拷贝pure-ftpd配置文件
mkdir /usr/local/pure-ftpd/etc
cp /usr/local/src/pure-ftpd-1.0.36/configuration-file/pure-ftpd.conf /usr/local/pure-ftpd/etc/ # 配置文件拷贝到/etc目录下
cp /usr/local/src/pure-ftpd-1.0.36/purepureftpd-mysql.conf /usr/local/pure-ftpd/etc
cp /usr/local/src/pure-ftpd-1.0.36/configuration-file/pure-config.pl /usr/local/pure-ftpd/sbin/
似乎make install忘记了将这个文件复制到相应的目录了,我们只有手动自己做了
chmod 755 /usr/local/pure-ftpd/sbin/pure-config.pl # 设置相应的权限
系统集成
cd /usr/local/bin/
ln -s /usr/local/pure-ftpd/bin/* .
ln -s /usr/local/pure-ftpd/sbin/* /usr/local/sbin/
ln -s /usr/local/pure-ftpd/man/man8/* /usr/local/share/man/man8/
c. Mysql YUM安装(我这偷懒,害怕解决依赖问题,直接YUM)
rpm -aq |grep mysql
rpm -e --nodeps mysql 或者 yum remove 上面列出来的系统老的mysql安装文件,比如 yum remove mysql mysql-server mysql-libs mysql-devel
rpm qa|grep mysql 查看老的mysql是否已经卸载完全,若无,则采用find / -name "mysql" 找到关联文件用 rm强制删除
yum install mysql mysql-server mysql-devel mysql-libs;
3. 建立用于pureftpd认证用户的系统信息
虚拟用户则能够更好的控制访问权限,虚拟用户是和Linux系统用户关联的独立的账户系统。所以在创建虚拟用户之前最好先创建一个系统的账户和组。
[root@localhost /]# groupadd -g 2000 pureftp
[root@localhost /]# useradd -u 2000 -g pureftp -d /var/pureftp -s/sbin/nologin pureftp
4. 修改pure-ftp.conf
ChrootEveryone yes # 启用chroot
BrokenClientsCompatibility yes # 兼容不同客户端
Daemonize yes # 后台运行
MaxClientsNumber 50 #服务器并发连接数
MaxClientsPerIP 5 # 每个ip最大连接数
VerboseLog yes # 记录日志
DisplayDotFiles no # 显示隐藏文件
AnonymousOnly no # 只允许匿名用户访问
NoAnonymous yes # 不允许匿名用户连接
SyslogFacility ftp # 将日志在syslog日志中显示
DontResolve yes # 不进行客户端DNS解析
MaxIdleTime 15 # 最大空闲时间
#MySQLConfigFile /usr/local/pure-ftpd/etc/pureftpd-mysql.conf #Mysql虚拟用户配置档,在尚未弄好Mysql虚拟账户时先注销,稍后开启
PureDB /usr/local/pure-ftpd/etc/pureftpd.pdb # 用户数据库文件
LimitRecursion 10000 8 # 浏览限制,文件10000,目录8层
AnonymousCanCreateDirs no # 匿名用户可以创建目录
MaxLoad 4 # 超出负载后禁止下载
PassivePortRange 50000 51000 # 被动模式端口范围
#AnonymousRatio 1 10 # 匿名用户上传/下载比率
UserRatio 1 10 # 所有用户上传/下载比率
AntiWarez yes # 禁止下载匿名用户上传但未经验证的文件
#AnonymousBandwidth 200 # 匿名用户带宽限制(KB)
UserBandwidth 8 # 所有用户最大带宽(KB)
Umask 133:022 # 创建文件/目录默认掩码
MinUID 100 # 最大UID限制
AllowUserFXP yes # 用户进行FXP传输
AllowAnonymousFXP no # 对匿名用户和非匿名用户允许进行匿名 FXP 传输
ProhibitDotFilesWrite no # 不能删除/写入隐藏文件
ProhibitDotFilesRead no # 禁止读取隐藏文件
AutoRename yes # 有同名文件时自动重新命名
AnonymousCantUpload yes # 不允许匿名用户上传文件
AltLog clf:/var/log/pureftpd.log # clf格式日志文件位置
MaxDiskUsage 99 # 当磁盘使用量打到99%时禁止上传
PIDFile /var/run/pure-ftpd.pid #pureftp的PID
CreateHomeDir yes # 如果虚拟用户的目录不存在则自动创建
CustomerProof yes # 防止命令误操作
FileSystemCharset UTF-8 #服务器以UTF-8格式
ClientCharset gb2312 #客户端gb2312
未完待续.....