xinetd使用指南
2024-07-21 02:37:10
供稿:網(wǎng)友
redhat7.0以后inetd都已換成xinetd了--好用了很多。先看一下/etc/xinetd.conf--instances最大實(shí)例數(shù)--假如你用的是wu-FTPd-最大人數(shù)60那就改這個(gè)了。注重最后一句includedir其實(shí)是把telnet,wu-ftpd等腳本包含到此文件中的--直接寫(xiě)在這也行。
defaults
{
instances = 60
log_type = SYSLOG authPRiv
log_on_sUCcess = HOST PID
log_on_failure = HOST
cps = 25 30
}
includedir /etc/xinetd.d
這篇xinetd完全指南已非常全了--看了它你對(duì)xinetd就會(huì)很熟了:)
許多人在裝了redhat 7.x后開(kāi)始找不到北!!!(我就是其中一個(gè))
因?yàn)閞edhat 7.x開(kāi)始注重系統(tǒng)安全,最大的特征就是用xinetd.conf代替原來(lái)的inetd.conf
并且7.1中默認(rèn)安裝沒(méi)有開(kāi)ftp,telnet等熟悉的服務(wù),而是更安全的ssh!
7.1還加入firewall等服務(wù)
(感謝paradise提供下載地點(diǎn)給我安裝redhat7.1)
大家對(duì)被稱作超級(jí)服務(wù)器的Inetd一定很熟悉,其實(shí)現(xiàn)控制對(duì)主機(jī)網(wǎng)絡(luò)連接。當(dāng)一個(gè)請(qǐng)求到達(dá)由Inetd治理的服務(wù)端口,Inetd將該請(qǐng)求轉(zhuǎn)發(fā)給名為tcpd的程序。Tcpd根據(jù)配置文件hosts.{allow, deny}來(lái)判定是否答應(yīng)服務(wù)該請(qǐng)求。假如請(qǐng)求被答應(yīng)則相應(yīng)的服務(wù)器程序(如:ftpd、telnetd)將被啟動(dòng)。這個(gè)機(jī)制也被稱作tcp_wrapper.
xinetd(eXtended InterNET services daemon)提供類似于inetd+tcp_wrapper的功能,但是更加強(qiáng)大和安全。它能提供以下特色:
* 支持對(duì)tcp、ucp、RPC服務(wù)(但是當(dāng)前對(duì)RPC的支持不夠穩(wěn)定)
* 基于時(shí)間段的訪問(wèn)控制
* 功能完備的log功能,即可以記錄連接成功也可以記錄連接失敗的行為
* 能有效的防止DoS攻擊(Denial of Services)
* 能限制同時(shí)運(yùn)行的同意類型的服務(wù)器數(shù)目
* 能限制啟動(dòng)的所有服務(wù)器數(shù)目
* 能限制log文件大小
* 將某個(gè)服務(wù)綁定在特定的系統(tǒng)接口上,從而能實(shí)現(xiàn)只答應(yīng)私有網(wǎng)絡(luò)訪問(wèn)某項(xiàng)服務(wù)
* 能實(shí)現(xiàn)作為其他系統(tǒng)的代理。假如和ip偽裝結(jié)合可以實(shí)現(xiàn)對(duì)內(nèi)部私有網(wǎng)絡(luò)的訪問(wèn)
它最大的缺點(diǎn)是對(duì)RPC支持的不穩(wěn)定性,但是可以啟動(dòng)protmap,與xinetd共存來(lái)解決這個(gè)問(wèn)題
編譯安裝
可以從www.xinetd.org下載xinetd,當(dāng)前最新的版本是xinetd 2.1.8.8p3。默認(rèn)編譯和安裝xinetd是非常簡(jiǎn)單的,按照如下的步驟進(jìn)行:
#./configure; make; make install
即可完成。
在進(jìn)行configure時(shí),可以支持如下幾個(gè)有用處的選項(xiàng):
--with-libwrap : 假如使用該選項(xiàng)xinetd將會(huì)察看tcpd配置文件(/etc/hosts.{allow, deny})來(lái)進(jìn)行訪問(wèn)控制,但是假如要利用該功能,系統(tǒng)上必須安裝有tcp_wrapper和相關(guān)庫(kù)。
--with-loadavg : 使用該選項(xiàng),xinetd將而已處理max-load配置選項(xiàng)。從而在系統(tǒng)負(fù)載過(guò)重時(shí)關(guān)閉某些服務(wù)進(jìn)程,來(lái)實(shí)現(xiàn)某些DoS攻擊。
--with-inet6 : 使用該選項(xiàng)xinetd將支持IPv6。
假如是是用redhat7.0,則其默認(rèn)將安裝xinetd,而不需要自行安裝。
配置
xinetd的默認(rèn)配置文件是/etc/xinetd.conf。其語(yǔ)法和/etc/inetd.conf完全不同且不兼容。它本質(zhì)上是/etc/inetd.conf和/etc/hosts.allow,/etc/hosts.deny功能的組合。/etc/xinetd.conf中的每一項(xiàng)具有下列形式
service service-name
{
……。
}
其中service是必需的要害字,且屬性表必須用大括號(hào)括起來(lái)。每一項(xiàng)都定義了由service-name定義的服務(wù)。
Service-name是任意的,但通常是標(biāo)準(zhǔn)網(wǎng)絡(luò)服務(wù)名,也可增加其他非標(biāo)準(zhǔn)的服務(wù),只要它們能通過(guò)網(wǎng)絡(luò)請(qǐng)求激活,包括localhost自身發(fā)出的網(wǎng)絡(luò)請(qǐng)求。有很多可以使用的attribute,在下表中進(jìn)行了具體的說(shuō)明。稍后將描述必需的屬性和屬性的使用規(guī)則。
操作符可以是=,+=,或-=。所有屬性可以使用=,其作用是分配一個(gè)或多個(gè)值,某些屬性可以使用+=或-=的形式,其作用分別是將其值增加到某個(gè)現(xiàn)存的值表中,或?qū)⑵渲祻默F(xiàn)存值表中刪除。表10.10中說(shuō)明了可以用后一種形式的屬性。
Value是為給定屬性設(shè)置的參數(shù)。
表1 擴(kuò)展的lnernet服務(wù)進(jìn)程屬性
屬 性
描述和答應(yīng)值
Socket_type
使用的TCP/IP socket類型,值可能為stream(TCP), dgram(UDP), raw和seqpacket(可靠的有序數(shù)據(jù)報(bào))
protocol
指定該服務(wù)使用的協(xié)議,其值必須是在/etc/protocols中定義的。假如不指定,使用該項(xiàng)服務(wù)的缺省協(xié)議。
Server
要激活的進(jìn)程,必須指定完整路徑
Server_args
指定傳送給該進(jìn)程的參數(shù),但是不包括服務(wù)程序名
Port
定義該項(xiàng)服務(wù)相關(guān)的端口號(hào)。假如該服務(wù)在/etc/services中列出,它們必須匹配
Wait
這個(gè)屬性有兩個(gè)可能的值。假如是yes,那么xinetd會(huì)啟動(dòng)請(qǐng)的進(jìn)程并停止處理該項(xiàng)服務(wù)的請(qǐng)求直到該進(jìn)程終止。這是個(gè)單線程服務(wù)。假如是no,那xinetd會(huì)為每個(gè)請(qǐng)求啟動(dòng)的一個(gè)進(jìn)程,而不管先前啟動(dòng)的進(jìn)程的狀態(tài)。這是個(gè)多線程服務(wù)
User
設(shè)置服務(wù)進(jìn)程的UID,但是若xinetd的有效UID不是0,該屬性無(wú)效
Group
設(shè)置進(jìn)程的GID。若xinetd的有效UID不是0,這個(gè)屬性無(wú)效
Nice
指定進(jìn)程的nice值
Id
該屬性被用來(lái)唯一地指定一項(xiàng)服務(wù)。因?yàn)橛行┓?wù)的區(qū)別僅僅在于使用不同的協(xié)議,因此需要使用該屬性加以區(qū)別。默認(rèn)情況下服務(wù)id和服務(wù)名相同。如echo同時(shí)支持dgram和streama服務(wù)。設(shè)置id=echo_dgram和id=echo_streams來(lái)分別唯一標(biāo)識(shí)兩個(gè)服務(wù)
Type
可以是下列一個(gè)或多個(gè)值:RPC(對(duì)RPC服務(wù)),INTERNAL(由由xinetd自身提供的服務(wù),如echo),UNLISTED(沒(méi)有列在標(biāo)準(zhǔn)系統(tǒng)文件如/etc/rpc或/etc/service中的服務(wù))
access_time
設(shè)置服務(wù)可用時(shí)的時(shí)間間隔。格式是hh:mm_hh:mm; 如08:00-18:00意味著從8A.M到6P.M.可使用這項(xiàng)服務(wù)
Banner
無(wú)論該連接是否被答應(yīng),當(dāng)建立連接時(shí)就將該文件顯示給客戶機(jī)
Flags
可以是以下一個(gè)或多個(gè)選項(xiàng)的任意組合:
REUSE:設(shè)置TCP/IP socket可重用。也就是在該服務(wù)socket中設(shè)置SO_REUSEADDR標(biāo)志。當(dāng)中斷并重新啟動(dòng)xinetd
INTERCEPT:截獲數(shù)據(jù)報(bào)進(jìn)行訪問(wèn)檢查,以確定它是來(lái)自于答應(yīng)進(jìn)行連接的位置。不能和INTERNAL服務(wù)和多線程服務(wù)不可使用該屬性值
NORETRY:假如fork失敗,不重試
IDONLY: 只有在遠(yuǎn)程端識(shí)別遠(yuǎn)程用戶時(shí)才接受該連接(也就是遠(yuǎn)程系統(tǒng)必須運(yùn)行ident服務(wù)器),該標(biāo)記只適用于面向連接的服務(wù)。若沒(méi)有使用USERID記錄選項(xiàng)則該標(biāo)記無(wú)效log_on_success和/或log_on_failure屬性設(shè)置USERID值以使該值生效。僅用于多線程的流服務(wù)
NAMEINARGS:答應(yīng)server_args屬性中的第一個(gè)參數(shù)是進(jìn)程的完全合格路徑,以答應(yīng)使用TCP_Wrappers
NODELAY:若服務(wù)為tcp服務(wù),并且NODELAY標(biāo)記被設(shè)置,則TCP_NODELAY標(biāo)記將被設(shè)置。若服務(wù)不是tcp服務(wù)則該標(biāo)記無(wú)效
Rpc_version
指定RPC版本號(hào)或服務(wù)號(hào)。版本號(hào)可以是一個(gè)單值或者一個(gè)范圍中如2-3
rpc_number
假如RPC程序號(hào)不在/etc/rpc中,就指定它
Env
用空格分開(kāi)的VAR=VALUE表,其中VAR是一個(gè)shell環(huán)境變量且VALUE是其設(shè)置值。這些值以及xinetd的環(huán)境都在激活時(shí)傳送給服務(wù)程序。這個(gè)屬性支持=和+=操作符
Passenv
用空格分開(kāi)的xinetd環(huán)境中的環(huán)境變量表,該表在激活時(shí)傳遞給服務(wù)程序。設(shè)置no就不傳送任何變量。該屬性支持所有操作符
Only_from
用空格分開(kāi)的答應(yīng)訪問(wèn)服務(wù)的客戶機(jī)表。表2種給出客戶機(jī)語(yǔ)法。假如不為該屬性指定一個(gè)值,就拒絕訪問(wèn)這項(xiàng)服務(wù)。該屬性支持所有操作符。
No_access
用空格分開(kāi)的拒絕訪問(wèn)服務(wù)的客戶機(jī)表。表2給出客戶機(jī)語(yǔ)法。該屬性支持所有操作符
Instances
接受一個(gè)大于或等于1的整數(shù)或UNLIMITED。設(shè)置可同時(shí)運(yùn)行的最大進(jìn)程數(shù)。UNLIMITED意味著xinetd對(duì)該數(shù)沒(méi)有限制。
Log_type
指定服務(wù)log記錄方式,可以為:
SYSLOG facility[level]:設(shè)置該工具為daemon,auth,user或loca10-7。
設(shè)置level是可選的,可以的level值為emerg,alert,crit,err,warning,notice, info, debug,默認(rèn)值為info
file[soft[hard]]:指定file用于記錄log,而不是syslog。限度soft和hard用KB指定(可選)。一旦達(dá)到soft限,xinetd就登記一條消息。一旦達(dá)到hard限,xinetd停止登記使用該文件的所有服務(wù)。假如不指定hard限,它成為soft加1%,但缺省時(shí)不超過(guò)20MB.缺省soft限是5MB
Redirect
該屬性語(yǔ)法為redirect=Ipaddress port。它把TCP服務(wù)重定向到另一個(gè)系統(tǒng)。假如使用該屬性,就忽略server屬性
Bind
把一項(xiàng)服務(wù)綁定到一個(gè)特定端口。語(yǔ)法是bind=Ipaddress。這樣有多個(gè)接口(物理的或邏輯的)的主機(jī)答應(yīng)某個(gè)接口但不是其他接口上的特定服務(wù)(或端口)
Log_on_success
指定成功時(shí)登記的信息??赡苤凳?
PID:進(jìn)程的PID。假如一個(gè)新進(jìn)程沒(méi)被分叉,PID設(shè)置為0。