proftpd 小技巧:如何防止proftpd进行DNS反查以及对用户端进行ident确认?proftpd如何允许以root身份登录?如何让匿名用户使用proftpd服务器?Proftpd如何实现磁盘限额?Proftpd环境下如何将用户限制在自己的home目录下?如何让proftpd只监听在特定IP?Proftpd中MaxClients和MaxInstances有什么不同?以下就是proftpd 下使用的小技巧。
在proftpd.conf里面加入两行:
- UseReverseDNS off
- IdentLookups off
防止proftpd进行DNS反查以及对用户端进行ident确认。
===
proftpd如何允许以root身份登录
在配置文件中使用下面的配置:
RootLogin on
===
如何让匿名用户使用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环境下如何将用户限制在自己的home目录下?
修改proftpd.conf,加入
DefaultRoot ~
(将用户限制在自己的目录下)
或者
DefaultRoot ~ group1, !group2,!group3
(将用户限制在自己的目录下,对group1有效,对group2,group3无效)
===
如何让proftpd只监听在特定IP
如果一台机器有两个或者多个IP,比如192.168.0.1和172.16.0.1,那么缺省情况下ftp到这两个ip都可以连上这个ftp server,有些情况下要求只能ftp到192.168.0.1而不能ftp到172.16.0.1,该如何处理呢?
在proftpd.conf里面设置:
Bind 192.168.0.1
SocketBindTight on
但是这个配置只能在standalone模式下面才能生效。
===
proftpd中MaxClients和MaxInstances有什么不同
为了有效利用系统资源,防止过多连接,有时候可以在proftpd.conf里面有这样的配置:
MaxClients 100
但是有时候却是看到这样的配置:
MaxInstances 100
这两个有什么区别呢?
MaxInstances设置的是proftpd产生的子进程的个数,而MaxClients限制的是登录用户的个数。而客户端只要产生一个连接,即使不登录,也会导致proftpd产生一个子进程。
如果配置文件中限制MaxClients 100的时候,第101个连上的用户会被提示允许连接的客户端个数已达上限,同时断开连接。而设置MaxInstances 100的时候,第101个连接的用户不会得到任何提示,而服务器拒绝接受任何连接。
====
Proftpd如何限制某个用户的同时连接数
Proftpd 1.2.7rc1以后提供了一个新参数-MaxClientsPerUser。在配置文件中添加下列参数:
MaxClientsPerUser 5
这样就能限制每个用户只能同时有5个连接,使用例如flashget等下载工具的时候就最多只能分成5块下载。
===
如何不用kill proftpd的进程而停止ftp服务
ftpshut命令可以使得管理员不用停止proftpd进程而禁止所有连接,同时送出停止的信息。而且可以做到定时停止、允许当前存在的连接是马上中断还是到用户自己中断。
要重新提供ftp服务只要删除/etc/shutmsg。
===
如何查看当前连接到proftpd的用户
--------------------------------------------------------------------------------
使用ftpwho命令,可以查看当前连接的用户相关信息,比如客户端机器名、用户名、连接时间、当前状态、进程号等。比使用ps命令来查看方便多了。
===
ftpshut
这个程序的主要功能是生成文件/etc/shutmsg,也就是我们在前面/etc/ftpaccess中设定的shutdown命令,ftpshut的使用格式如下:
ftp <-l min> <-d min> time <说明>
各个参数的说明如下:
-l 这个参数设定在关闭FTP服务器功能前多长时间停止用户的连接;
-d 这个参数设定在关闭FTP服务器功能前多长时间将用户断线;
Time 这个参数指定关闭FTP服务器功能的时间,如想
在8点半关闭机器,这里可以写0830。
===
Proftpd如何设置允许非正常shell的用户登录
有时候系统里面有一些只有ftp权限的用户,他们的shell一般被设置成/bin/false来防止他们用telnet登录到系统,但是这样导致他们不能ftp,如何解决呢?
需要注释掉/etc/pam.d/ftp,注释掉下面一行:
auth required /lib/security/pam_shells.so
同时在proftpd.conf里面加入:
RequireValidShell off
===
Proftpd如何限速和设置发呆退出
可以使用:
RateReadBPS RateReadFreeBytes
RateWriteBPS RateWriteFreeBytes
来限制下载和上载速度:
RateReadBPS和RateWriteBPS限制下载和上载的速率
RateReadFreeBytes和RateWriteFreeBytes限制当用户现在这么多数据量以后再进行限速,这样可以实现对于小文件不限速,而大文件限速。
TimeoutIdle -- 设置空闲连接超时时钟
TimeoutLogin -- 设置空闲登陆超时时钟
TimeoutNoTransfer -- 设置当没有数据传输时的超时时钟
TimeoutStalled -- 设置被阻塞的下载的超时时钟
拥有了以上这些使用Proftpd的技巧,相信你的操作水平很快就会有很大的提高。
【编辑推荐】