(2)xinetd模式
從守護進程的概念可以看出,對於系統所要通過的每一種服務,都必須運行一個監聽某個端口連接所發生的守護進程,這通常意味著資源浪費。為了解決這個問題,Linux引進了“網路守護進程服務程式”的概念。Redhat Linux 9.0使用的網路守護進程是xinted(eXtended InterNET daemon)。和stand-alone模式相比xinted模式也稱 Internet Super-Server(超級伺服器)。xinetd能夠同時監聽多個指定的端口,在接受用戶請求時,他能夠根據用戶請求的端口不同,啟動不同的網路服務進程來處理這些用戶請求。可以把xinetd看做一個管理啟動服務的管理伺服器,它決定把一個客戶請求交給那個程式處理,然後啟動相應的守護進程。xinetd模式工作原理見圖6。
Red Hat 中xinetd 的配置文件:主配置文件:/etc/xinetd.conf,每一個由xinetd啟動的服務在目錄/etc/xinetd.d/下都有一個以服務名稱命名的配置文件。在主配置文件/etc/xinetd.conf中將/etc/xinetd.d目錄下的所有文件的內容使用 includedir /etc/xinetd.d語句包含進來。xinetd的配置選項見表-1。
表 1. xinetd的指示符
xinetd能有效的防止拒絕服務攻擊(Denial of Services)原理:
(a)限制同時運行的進程數:
(1)通過IP地址限制FTP訪問
假設要允許主機名稱myhost.domain.com訪問FTP伺服器,首先使用命令:
Ping myhost.domain.com
假設等到IP地址是:216.112.169.138。下面修改配置文件,加入以下內容:
<Limit LOGIN>
Order Allow, Deny
Allow from 216.112.169.138
Deny from all
</Limit>
注意不要在Allow命令後直接使用主機名稱,因為檢查主機名稱會降低伺服器的運行速度。另外主機名稱比IP地址更具有欺騙性。如果myhost.domain.com沒有固定IP地址,主機用戶在下一次從ISP獲得一個IP地址時就無法和FTP伺服器連接。這時必須給整個網路授予FTP訪問的許可權。命令如下:“Allow from 216.112.169.” 。