錦囊妙計-使用Proftpd的技巧
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的技巧,相信你的操作水平很快就會有很大的提高。
【編輯推薦】