分类:
2009-02-26 15:02:03
注意:不要在Allow命令后直接使用主机名称,因为检查主机名称会降低服务器的运行速度。另外主机名称比IP地址更具有欺骗性。
(2)使用PAM作为ProFTPD授权用户的鉴别方法(这个在我的机子上有问题)
ProFTPD也可以加入嵌入式认证,
成为PAM-aware的FTP服务器。PAM和PAM-aware相关知识和配置请查看相关资料。这样,用户连接到ProFTPD服务器时都由PAM使
用/etc/pam.d/ftp文件进行认证。在 ProFTPD使用PAM比较简单,在配置文件/etc/Proftpd.conf加入:
AuthPAMAuthoritative on
AuthPAMConfig ftp
ProFTPD服务器会自动把/etc/pam.d/ftp配置用于用户授权。
(3)限制普通FTP用户可访问的目录
同样,ProFTPD服务器也要限制普通FTP用户可以访问的目录,和wu-ftpd相比比较简单。如果限制skate组的skate用户登录时不能切换到其他目录,修改配置文件加入:
DefaultRoot ~skate,skate
这样它就只能呆在自己的home目录中。
(4)限制FTP命令特权
禁止一些用户创建和删除目录的特权。如果发现一些用户有威胁行为,可以把他放在一个特定组中 (badusers)。使用如下的配置:
Order deny,allow
DenyGroup badusers
AllowAll
这样除了那个特定的用户组之外,其他用户可以创建和删除目录。
(5)控制FTP命令缓冲区大小
许多攻击者通过发送大尺寸的命令攻击FTP服务器,希望造成服务器缓冲区溢出。可以使用CommandBuffer Size命令限制客户端命令长度,通常设定为512。
(6)修改ProFTPD服务器使用端口
ProFTP如果使用Stand-alone模式,可以通过设置proftpd.conf来控制它。使用不同端口的设置也较为简单,只需在proftpd.conf中将“Port xx”改为需要的值即可。
Q:如何限制用户上载和下载的速率?
A:请您使用以下参数
RateReadBPS RateReadFreeBytes
RateWriteBPS RateWriteFreeBytes
RateReadBPS和RateWriteBPS限制下载和上载的速率
RateReadFreeBytes和RateWriteFreeBytes限制当用户现在这么多数据量以后再进行限速,这样可以实现对于
小文件不限速,而大文件限速。
Q:如何设置空闲超时时间?
A:请您检查
TimeoutIdle 设置空闲连接超时时间
TimeoutLogin 设置空闲登陆超时时间
TimeoutNoTransfer 设置当没有数据传输时的超时时间
TimeoutStalled 设置被阻塞的下载的超时时间
Q:如何禁止admin用户登录自己的home目录?
A:请您在proftpd.conf中使用DefaultRoot ~ !admin
Q:达到最大用户数限制时,如何给出提示信息?
A:请您在proftpd.conf中使用MaxHostsPerUser 100 “对不起,已经到达该用户最大连接数100,请您稍候再试!”
Q:怎么限制每个IP允许的线程数?
A:请您在proftpd.conf中使用MaxClientsPerHost 1 “对不起,每个ip只允许有1个连接!”
Q:安装后找不到proftpd.conf?
Q:如何限制一个正常用户登录以后只能访问某个目录?
A:可以通过指令DefaultRoot来实现。例如若希望将ftpusers组的用户限定在自己的home目录下,则需要首先创
建该组: /usr/sbin/groupadd ftpusers然后将用户ideal加入到该组中: usrmod -G ftpusers ideal 最后在
在proftpd.conf文件中添加如下内容: DefaultRoot ~ ftpusers
也可以限制用户登录以后仅仅访问自己主目录下的一个子目录:
Default! Root ~/anoftp ftpusers
当然也可以将用户限制在其他目录之下,而不是自己的home目录下:
DefaultRoot /tmp ftpusers
也可以限定一个用户组的某些用户被限制,而其他不作限制:
DefaultRoot ~ ftpusers,!empolyee
这个指令指示仅仅限制ftpusers组中的不是empolyee组的用户进行限制。
Q:如何隐藏服务器版本信息,以增强安全性
A:请您在proftpd.conf中添加ServerIdent off
Q:如何设定虚拟主机?
A:您可以通过指令:VirtualHost来实现,一个最简单的例子:
ServerName “virtual FTP server”
若您仅仅希望通过匿名访问某个虚拟主机,则使用如下! 的指令:
Serv erName “virtual FTP server”
DenyAll
User private
Group private
AllowAll
这样192.168.2.35的这台主机则仅仅允许匿名登录。
Q:为何我配置的proftpd在用flashget的站点资源管理器时总是到list-la这一步时出错,即客户端不能列目录,
但用ie浏览器就可以自由的进入各个目录?
A:端口21是ftp 的command端口,而文件列表和数据则是通过数据端口,例如“正在连接 ftp 数据 socket
61.138.232.37:1120”,估计是防火墙规则的问题,请注意你的防火墙配置是否正确
Q:如何禁止root登录
A:请您在proftpd.conf中添加RootLogin off
Q:如何设置最大尝试次数?
A:请您在proftpd.conf中添加MaxLoginAttempts 3,其中3是你设的数值
Q:在Redhat8.0下装proftpd_1.2.6,每次服务启动完后,登陆的时候总是显示:500 FTP server shut down
(going down at Sat Oct 5 15:59:31 2002) —please try again later. 这是怎么回事啊?
A:请您删除shutmsg文件,rm -f /etc/shutmsg
Q:怎么把数据连接类型改成PASV?
A:请您在proftpd.conf里添加PassivePorts 49152 65534
Q:在shell下用了ftpshut后,再在shell下用proftpd命令后,总提示ERROR: Syntax error, command
unrecognized.怎么办?
A:请您使用ftprestart
如何让匿名用户使用proftpd服务器
建立一个用户,用户名为guest,然后在配置文件中使用下面的配置:
AnonRequirePassword off
User private
Group private
RequireValidShell off
DenyAll
如果要支持下载续传,那么必须指定:
AllowRetrieveRestart on
如果要支持上传续传,那么必须指定:
AllowOverwrite on
AllowStoreRestart on
必须同时指定AllowOverwrite和AllowStoreRestart的原因是由于重新上传或者续传也是属于覆盖文件。
同时记得不要同时使用HiddenStor和AllowStoreRestart。
在配置文件中设置:
ShowDotFiles on
这样就能通过ls看见以"."号开头的文件
proftpd如何实现磁盘限额
首先编译的时候指定--with-modules的时候要包含mod_quota。
然后在配置文件中使用:
Quotas on
QuotaCalc on
DefaultQuota 8000
QuotaBlockSize 1024
QuotaBlockName kb
就可以实现磁盘限额。其中DefaultQuota说明用户只能用8000个block,而QuotaBlockSize则指明每个block大小是1024byte也就是1k。QuotaBlockName只在提示中出现,告诉用户block的单位。
proftpd中MaxClients和MaxInstances有什么不同
为了有效利用系统资源,防止过多连接,有时候可以在proftpd.conf里面有这样的配置:
MaxClients 100
但是有时候却是看到这样的配置:
MaxInstances 100
这两个有什么区别呢?
MaxInstances设置的是proftpd产生的子进程的个数,而MaxClients限制的是登录用户的个数。而客户端只要产生一个连接,即使不登录,也会导致proftpd产生一个子进程。
如果配置文件中限制MaxClients 100的时候,第101个连上的用户会被提示允许连接的客户端个数已达上限,同时断开连接。而设置MaxInstances 100的时候,第101个连接的用户不会得到任何提示,而服务器拒绝接受任何连接。