ProFTPd

来自站长百科
雕琢时光讨论 | 贡献2010年5月11日 (二) 18:18的版本
跳转至: 导航、​ 搜索
ProFTPD.jpg

ProFTPD是一套可配置性强的开放源代码的FTP服务器软件,名称最后的d字是因为在Linux中是用daemon来称呼。ProFTPd与Apache的配置方式类似,因此十分容易配置和管理。

ProFTPD概况

ProFTPD:一个Unix平台上或是类Unix平台上(如Linux, FreeBSD等)的FTP服务器程序,它是在自由软件基金会的版权声明(GPL)下开发、发布的免费软件,也就是说任何人只要遵守GPL版权声明,都可以随意修改源始码。

设计目标

ProFTPD设计目标是实现一个安全且易于设定的FTP Server。目前Unix或类Unix平台上 FTP Server十分有限,最常使用的恐怕就是wu-ftpd了。

主要特色

ProFTPD不是从其它FTP Server的既有原始码修改而产生的,相反的,它是完全独立而完整、重新改写的FTP Server。

  • 一个单一的和 Apache 的 httpd.conf 类似的配置文件
  • 每个目录下的 .ftpaccess 文件(和 Apache 的. htaccess 类似)
  • 很容易配置的,多个虚拟 FTP 服务器以及匿名 FTP 服务
  • 可以单独运行也可以从 inetd/xinetd 启动
  • 匿名 FTP 的根目录不需要特别的目录结构
  • 系统的二进制文件和其他系统文件没有 SITE EXEC 命令
  • 在单独运行方式下,以非特权用户运行,降低攻击风险
  • 日志以及 utmp/wtmp 支持
  • Shadow 口令支持

安装配置

安装proftpd

和mysql的安装很相似,使用ports安装

#cd /usr/ports/ftp/proftpd-mysql
#make install

安装的时候会要求选择proftpd要安装的模块,选择好mysql和quota,其他的根据情况选择 然后系统自动下载proftpd-1.3.0rc2.tar.bz2并完成编译和安装。

配置proftpd.conf

完成上面的安装,proftpd其实已经可以运行了,但是我们还需要根据自己的安装要求进行必要的配置,所以先备份默认的配置文件

#cp /usr/local/etc/proftpd.conf /usr/local/etc/proftpd.conf.sample

1、重新编写proftpd.conf,下面是Michael的文件,大家完全照抄就基本可以了

基本配置

ServerName "Ftp Site"
ServerType standalone
DefaultServer on

设置用户登陆时不显示ftp服务器版本信息

ServerIdent off

设置ftp服务使用的端口,可以修改

Port 21

设置ftp目录的权限

Umask 022

设置系统各种超时时间和重试次数

MaxLoginAttempts 3
TimeoutLogin 120
TimeoutIdle 600
TimeoutNoTransfer 900
TimeoutStalled 3600

允许最大的同时连接用户数

MaxClients 10

允许每个用户主机最大并发连接数

MaxClientsPerHost 3
AllowOverwrite no
AllowStoreRestart on
UseReverseDNS off

如果shell为空时允许用户登录

RequireValidShell off

将用户限制在自己的主目录下 ,这个设置很重要

DefaultRoot ~

设置系统最大的进程数,防止dos攻击,默认是30

MaxInstances 10

设置系统用于运行proftpd服务的用户和用户组(需要后面自己创建)

User FTPUSR
Group FTPGRP

设置对全局的文件可以进行改写

AllowOverwrite on

设置系统运行日志和文件传输日志

SystemLog /var/log/proftpd.syslog
TransferLog /var/log/proftpd.transferlog

MySQL数据库表配置

用户目录设置

完成最后的用户、用户组和目录设置 1、创建proftpd服务运行的用户和用户组

#pw groupadd FTPGRP -g 1000
#pw adduser FTPUSR -u 1000 -g 1000 -d /home/ftp -s /sbin/nologin

2、创建匿名登陆用户映射的系统用户和用户组

#pw groupadd ftpusers -g 1000
#pw adduser ftp -u 2002 -g 1000 -d /var/ftp/incoming -s /sbin/nologin

运行测试配置系统服务 1、运行proftpd服务

#/usr/local/sbin/proftpd

2、测试 在任何一台可以访问服务器的机器上测试ftp连接,使用Michael用户和testftp口令登陆,然后运行quote SITE QUOTA命令查看设置的磁盘限额信息 然后测试使用anonymous匿名用户登陆测试

3、监控和调试proftpd服务

#/usr/local/sbin/proftpd proftpd -n -d 5 -c /usr/local/etc/proftpd.conf

这样在测试和连接ftp的时候,可以在主机上看到所有的proftpd运行信息

4、日志监控 可以使用下面的命令查看系统日志、传送日志等

#tail -f /var/log/proftpd.syslog
#tail -f /var/log/proftpd.transferlog

5、配置系统自启动proftpd服务

#vi /etc/rc.conf

加入下面一行

proftpd_enable=”YES”

这样系统启动的时候会调用/usr/local/etc/rc.d/proftpd.sh脚本启动proftpd服务

ProFTPD教程

参考来源