錦囊妙計(jì)-使用Proftpd的技巧
proftpd 小技巧:如何防止proftpd進(jìn)行DNS反查以及對用戶端進(jìn)行ident確認(rèn)?proftpd如何允許以root身份登錄?如何讓匿名用戶使用proftpd服務(wù)器?Proftpd如何實(shí)現(xiàn)磁盤限額?Proftpd環(huán)境下如何將用戶限制在自己的home目錄下?如何讓proftpd只監(jiān)聽在特定IP?Proftpd中MaxClients和MaxInstances有什么不同?以下就是proftpd 下使用的小技巧。
在proftpd.conf里面加入兩行:
- UseReverseDNS off
- IdentLookups off
防止proftpd進(jìn)行DNS反查以及對用戶端進(jìn)行ident確認(rèn)。
===
proftpd如何允許以root身份登錄
在配置文件中使用下面的配置:
RootLogin on
===
如何讓匿名用戶使用proftpd服務(wù)器
建立一個用戶,用戶名為guest,然后在配置文件中使用下面的配置:
- AnonRequirePassword off
- User private
- Group private
- RequireValidShell off
- DenyAll
===
如果要支持下載續(xù)傳,那么必須指定:
AllowRetrieveRestart on
如果要支持上傳續(xù)傳,那么必須指定:
- AllowOverwrite on
- AllowStoreRestart on
必須同時指定AllowOverwrite和AllowStoreRestart的原因是由于重新上傳或者續(xù)傳也是屬于覆蓋文件。
同時記得不要同時使用HiddenStor和AllowStoreRestart。
===
在配置文件中設(shè)置:
ShowDotFiles on
這樣就能通過ls看見以"."號開頭的文件
===
proftpd如何實(shí)現(xiàn)磁盤限額
首先編譯的時候指定--with-modules的時候要包含mod_quota。
然后在配置文件中使用:
- Quotas on
- QuotaCalc on
- DefaultQuota 8000
- QuotaBlockSize 1024
- QuotaBlockName kb
就可以實(shí)現(xiàn)磁盤限額。其中DefaultQuota說明用戶只能用8000個block,而QuotaBlockSize則指明每個block大小是1024byte也就是1k。QuotaBlockName只在提示中出現(xiàn),告訴用戶block的單位。
===
proftpd環(huán)境下如何將用戶限制在自己的home目錄下?
修改proftpd.conf,加入
DefaultRoot ~
(將用戶限制在自己的目錄下)
或者
DefaultRoot ~ group1, !group2,!group3
(將用戶限制在自己的目錄下,對group1有效,對group2,group3無效)
===
如何讓proftpd只監(jiān)聽在特定IP
如果一臺機(jī)器有兩個或者多個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里面設(shè)置:
Bind 192.168.0.1
SocketBindTight on
但是這個配置只能在standalone模式下面才能生效。
===
proftpd中MaxClients和MaxInstances有什么不同
為了有效利用系統(tǒng)資源,防止過多連接,有時候可以在proftpd.conf里面有這樣的配置:
MaxClients 100
但是有時候卻是看到這樣的配置:
MaxInstances 100
這兩個有什么區(qū)別呢?
MaxInstances設(shè)置的是proftpd產(chǎn)生的子進(jìn)程的個數(shù),而MaxClients限制的是登錄用戶的個數(shù)。而客戶端只要產(chǎn)生一個連接,即使不登錄,也會導(dǎo)致proftpd產(chǎn)生一個子進(jìn)程。
如果配置文件中限制MaxClients 100的時候,第101個連上的用戶會被提示允許連接的客戶端個數(shù)已達(dá)上限,同時斷開連接。而設(shè)置MaxInstances 100的時候,第101個連接的用戶不會得到任何提示,而服務(wù)器拒絕接受任何連接。
====
Proftpd如何限制某個用戶的同時連接數(shù)
Proftpd 1.2.7rc1以后提供了一個新參數(shù)-MaxClientsPerUser。在配置文件中添加下列參數(shù):
MaxClientsPerUser 5
這樣就能限制每個用戶只能同時有5個連接,使用例如flashget等下載工具的時候就最多只能分成5塊下載。
===
如何不用kill proftpd的進(jìn)程而停止ftp服務(wù)
ftpshut命令可以使得管理員不用停止proftpd進(jìn)程而禁止所有連接,同時送出停止的信息。而且可以做到定時停止、允許當(dāng)前存在的連接是馬上中斷還是到用戶自己中斷。
要重新提供ftp服務(wù)只要刪除/etc/shutmsg。
===
如何查看當(dāng)前連接到proftpd的用戶
--------------------------------------------------------------------------------
使用ftpwho命令,可以查看當(dāng)前連接的用戶相關(guān)信息,比如客戶端機(jī)器名、用戶名、連接時間、當(dāng)前狀態(tài)、進(jìn)程號等。比使用ps命令來查看方便多了。
===
ftpshut
這個程序的主要功能是生成文件/etc/shutmsg,也就是我們在前面/etc/ftpaccess中設(shè)定的shutdown命令,ftpshut的使用格式如下:
ftp <-l min> <-d min> time <說明>
各個參數(shù)的說明如下:
-l 這個參數(shù)設(shè)定在關(guān)閉FTP服務(wù)器功能前多長時間停止用戶的連接;
-d 這個參數(shù)設(shè)定在關(guān)閉FTP服務(wù)器功能前多長時間將用戶斷線;
Time 這個參數(shù)指定關(guān)閉FTP服務(wù)器功能的時間,如想
在8點(diǎn)半關(guān)閉機(jī)器,這里可以寫0830。
===
Proftpd如何設(shè)置允許非正常shell的用戶登錄
有時候系統(tǒng)里面有一些只有ftp權(quán)限的用戶,他們的shell一般被設(shè)置成/bin/false來防止他們用telnet登錄到系統(tǒng),但是這樣導(dǎo)致他們不能ftp,如何解決呢?
需要注釋掉/etc/pam.d/ftp,注釋掉下面一行:
auth required /lib/security/pam_shells.so
同時在proftpd.conf里面加入:
RequireValidShell off
===
Proftpd如何限速和設(shè)置發(fā)呆退出
可以使用:
RateReadBPS RateReadFreeBytes
RateWriteBPS RateWriteFreeBytes
來限制下載和上載速度:
RateReadBPS和RateWriteBPS限制下載和上載的速率
RateReadFreeBytes和RateWriteFreeBytes限制當(dāng)用戶現(xiàn)在這么多數(shù)據(jù)量以后再進(jìn)行限速,這樣可以實(shí)現(xiàn)對于小文件不限速,而大文件限速。
TimeoutIdle -- 設(shè)置空閑連接超時時鐘
TimeoutLogin -- 設(shè)置空閑登陸超時時鐘
TimeoutNoTransfer -- 設(shè)置當(dāng)沒有數(shù)據(jù)傳輸時的超時時鐘
TimeoutStalled -- 設(shè)置被阻塞的下載的超時時鐘
擁有了以上這些使用Proftpd的技巧,相信你的操作水平很快就會有很大的提高。
【編輯推薦】