ProFTPd 安装说明

来自站长百科
跳转至: 导航、​ 搜索

安装环境[ ]

FreeBSD环境下ports安装 ProFTPd

安装配置[ ]

安装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数据库表配置[ ]

匿名登陆部分的设置[ ]

#匿名用户登陆后访问的目录为 ftp用户的主目录
User ftp
Group ftpusers

#设置anonymous用户为系统实际用户ftp的别名

UserAlias anonymous ftp

:#设置匿名用户同时在线最大用户数 :#此用户数受限于前面的全局同时在线用户数

MaxClients 5
#设置welcome.msg文件作为用户登陆的提示信息文件
#.message文件作为用户每次进入的目录提示信息
DisplayLogin welcome.msg
DisplayFirstChdir .message
#设置一些特殊的权限,比如写文件和登陆限制等 (可以不用)
DenyAll
Order deny,allow
Deny from 127.0.0.1/32
Allow from all

磁盘限额Quota设置[ ]

#启用磁盘限额
QuotaDirectoryTally on
SQLHomedirOnDemand on

#磁盘限额单位 b"|"Kb"|"Mb"|"Gb"

QuotaDisplayUnits "Mb"
QuotaEngine on

#磁盘限额日志记录 QuotaLog "/var/log/proftpd.quotalog"

#打开磁盘限额信息 "quote SITE QUOTA"命令

QuotaShowQuotas on

数据库联接的信息[ ]

#FTP是数据库名,localhost是MySQL主机名,3306是mysql服务的端口号
#Michael是连接数据库的用户名,testpwd是密码(如果没有密码留空)
SQLConnectInfo FTP@localhost:3306 Michael testpwd
#数据库认证的类型
SQLAuthTypes Backend Plaintext
#指定用来做用户认证的表的有关信息。(将在后面创建)
SQLUserInfo FTPUSERS userid passwd uid gid homedir shell
SQLGroupInfo FTPGRPS groupname gid members
#数据库认证
SQLAuthenticate users groups usersetfast groupsetfast
#proftpd进行的mysql调用语句,别修改任何地方
SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail,files_in_avail, files_out_avail, files_xfer_avail FROM quotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"
SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM quotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" quotatallies
SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" quotatallies
QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
至此,完成了proftpd.conf配置文件的编写

完成MySQL数据库表配置[ ]

完成proftpd.conf配置文件后,需要进行数据库表的配置,包括创建表和插入数据

  1. 登陆mysql或者使用phpmyadmin工具创建数据库 FTP
mysqladmin create FTP

用户用户组和目录设置[ ]

完成最后的用户、用户组和目录设置

创建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服务

相关条目[ ]

参考来源[ ]