pure-ftp虚拟用户登陆 1. Pure-ftpd介绍 PureFTPd是一款免费、安全、符合国际标准的FTP 服务器软件,具备高效性和易用性。虚拟账户、系统账户及匿名账户登陆支持,多种认证方式支持,磁盘配额支持,上传下载速率限制支持,访问IP限制支持,Mysql数据结合使用存储ftp虚拟账户支持等等,独特的实用功能为个人用户和托管服务提供商提供优质的定制化ftp配置选择。 2. 源码下载及安装 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 未完待续..... (责任编辑:IT) |