




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Xinetd使用指南 大家對(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來判斷是否允許服務(wù)該請(qǐng)求。如果請(qǐ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)前
2、對(duì)RPC的支持不夠穩(wěn)定) * 基于時(shí)間段的訪問控制 * 功能完備的log功能,即可以記錄連接成功也可以記錄連接失敗的行為 * 能有效的防止DoS攻擊(Denial of Services) * 能限制同時(shí)運(yùn)行的同意類型的服務(wù)器數(shù)目 * 能限制啟動(dòng)的所有服務(wù)器數(shù)目 * 能限制log文件大小 * 將某個(gè)服務(wù)綁定在特定的系統(tǒng)接口上,從而能實(shí)現(xiàn)只允許私有網(wǎng)絡(luò)訪問某項(xiàng)服務(wù) * 能實(shí)現(xiàn)作為其他系統(tǒng)的代理。如果和ip偽裝結(jié)合可以實(shí)現(xiàn)對(duì)內(nèi)部私有網(wǎng)絡(luò)的訪問 它最大的缺點(diǎn)是對(duì)RPC支持的不穩(wěn)定性,但是可以啟動(dòng)protmap,與xinetd共存來解決這個(gè)問題 編譯安裝 可以從下載xine
3、td,當(dāng)前最新的版本是xinetd 2.3.14。默認(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)來進(jìn)行訪問控制,但是如果要利用該功能,系統(tǒng)上必須安裝有tcp_wrapper和相關(guān)庫(kù)。 -with-loadavg : 使用該選項(xiàng),xinetd將而已處理max-load配置選項(xiàng)。從而在系統(tǒng)負(fù)載過重時(shí)關(guān)閉某些服務(wù)進(jìn)程,來
4、實(shí)現(xiàn)某些DoS攻擊。 -with-inet6 : 使用該選項(xiàng)xinetd將支持IPv6。 現(xiàn)在很多的版本中其默認(rèn)將安裝xinetd,而不需要自行安裝。 配置 xinetd 的默認(rèn)配置文件是/etc/xinetd.conf。其語法和/etc/inetd.conf完全不同且不兼容。它本質(zhì)上是 /etc/inetd.conf和/etc/hosts.allow,/etc/hosts.deny功能的組合。/etc/xinetd.conf中的 每一項(xiàng)具有下列形式 service service-name 。 其中service是必需的關(guān)鍵字,且屬性表必須用大括號(hào)括起來。每一項(xiàng)都定義了由service-na
5、me定義的服務(wù)。 Service-name是任意的,但通常是標(biāo)準(zhǔn)網(wǎng)絡(luò)服務(wù)名,也可增加其他非標(biāo)準(zhǔn)的服務(wù),只要它們能通過網(wǎng)絡(luò)請(qǐng)求激活,包括localhost自身發(fā)出的網(wǎng)絡(luò)請(qǐng)求。有很多可以使用的attribute,在下表中進(jìn)行了詳細(xì)的說明。稍后將描述必需的屬性和屬性的使用規(guī)則。 操作符可以是=,+=,或=。所有屬性可以使用=,其作用是分配一個(gè)或多個(gè)值,某些屬性可以使用+=或=的形式,其作用分別是將其值增加到某個(gè)現(xiàn)存的值表中,或?qū)⑵渲祻默F(xiàn)存值表中刪除。表1中說明了可以用后一種形式的屬性。 Value是為給定屬性設(shè)置的參數(shù)。 表1擴(kuò)展的lnernet服務(wù)進(jìn)程屬性 屬性 描述和允許值 Socket_typ
6、e使用的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è)
7、單線程服務(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,該屬性無效 Group 設(shè)置進(jìn)程的GID。若xinetd的有效UID不是0,這個(gè)屬性無效 Nice 指定進(jìn)程的nice值 Id 該 屬性被用來唯一地指定一項(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來分別唯一標(biāo)識(shí)兩個(gè)服務(wù)Type可以是下列一
8、個(gè)或多個(gè)值:RPC(對(duì)RPC服務(wù)),INTERNAL(由由xinetd自身提供的服務(wù),如echo),UNLISTED(沒有列在標(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無論該連接是否被允許,當(dāng)建立連接時(shí)就將該文件顯示給客戶機(jī)Flags可以是以下一個(gè)或多個(gè)選項(xiàng)的任意組合: REUSE:置TCP/IP socket可重用。也就是在該服務(wù)socket中設(shè)置O_REUSEADDR標(biāo)志。當(dāng)中斷并重新啟動(dòng)xinetd INT
9、ERCEPT:獲數(shù)據(jù)報(bào)進(jìn)行訪問檢查,以確定它是來自于允許進(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ù)。若沒有使用USERID記錄選項(xiàng)則 該標(biāo)記無效log_on_success和/或log_on_failure屬性設(shè)置USERID值以使該值生效。僅用于多線程的流服務(wù) NAMEINARGS:允許server_args屬性中的第一個(gè)參數(shù)是進(jìn)程的完全合格路徑,以允許使用TCP_Wrappers NODELAY:
10、若服務(wù)為tcp服務(wù),并且NODELAY標(biāo)記被設(shè)置,則TCP_NODELAY標(biāo)記將被設(shè)置。若服務(wù)不是tcp服務(wù)則該標(biāo)記無效 Rpc_version 指定RPC版本號(hào)或服務(wù)號(hào)。版本號(hào)可以是一個(gè)單值或者一個(gè)范圍中如2-3 rpc_number如果RPC程序號(hào)不在/etc/rpc中,就指定它Env 用空格分開的VAR=VALUE表,其中VAR是一個(gè)shell環(huán)境變量且VALUE是其設(shè)置值,這些值以及xinetd的環(huán)境都在激活時(shí)傳送給服務(wù)程序。這個(gè)屬性支持=和+=操作符 Passenv用空格分開的xinetd環(huán)境中的環(huán)境變量表,該表在激活時(shí)傳遞給服務(wù)程序。設(shè)置no就不傳送任何變量。該屬性支持所有操作符O
11、nly_from 用空格分開的允許訪問服務(wù)的客戶機(jī)表。表2種給出客戶機(jī)語法。如果不為該屬性指定一個(gè)值,就拒絕訪問這項(xiàng)服務(wù)。該屬性支持所有操作符。 No_access用空格分開的拒絕訪問服務(wù)的客戶機(jī)表。表2給出客戶機(jī)語法。該屬性支持所有操作符 Instances 接受一個(gè)大于或等于1的整數(shù)或UNLIMITED。設(shè)置可同時(shí)運(yùn)行的最大進(jìn)程數(shù)。UNLIMITED意味著xinetd對(duì)該數(shù)沒有限制。Log_type 指定服務(wù)log記錄方式,可以為: SYSLOG facilitylevel:設(shè)置該工具為daemon,auth,user或loca10-7。設(shè)置level是可選的,可以的level值為 eme
12、rg,alert,crit,err,warning,notice, info, debug,默認(rèn)值為info file softhard:指定file用于記錄log,而不是syslog。限度soft和hard用KB指定(可選)。一旦達(dá)到soft限, xinetd就登記一條消息。一旦達(dá)到hard限,xinetd停止登記使用該文件的所有服務(wù)。如果不指定hard限,它成為soft加1,但缺省時(shí)不 超過20MB.缺省soft限是5MBRedirect該屬性語法為redirect=Ipaddress port。它把TCP服務(wù)重定向到另一個(gè)系統(tǒng)。如果使用該屬性,就忽略server屬性 Bind 把一項(xiàng)服務(wù)
13、綁定到一個(gè)特定端口。語法是bind=Ipaddress。這樣有多個(gè)接口(物理的或邏輯的)的主機(jī)允許某個(gè)接口但不是其他接口上的特定服務(wù)(或端口) Log_on_success 指定成功時(shí)登記的信息。可能值是 PID:進(jìn)程的PID。如果一個(gè)新進(jìn)程沒被分叉,PID設(shè)置為0。 HOST:客戶機(jī)主機(jī)IP地址 USERID:通過RFC1413高用捕獲客戶機(jī)用戶的UID。只可用于多線程流服務(wù)。 EXIT:登記進(jìn)程終止和狀態(tài) DURATION:登記會(huì)話持續(xù)期 缺省時(shí)不登記任何信息。該屬性支持所有操作符 Log_on_failure 指定失敗時(shí)登記的信息。總是登記表明錯(cuò)誤性質(zhì)的消息。可能值是ATTEMPT:記錄
14、一次失敗的嘗試。所有其他值隱含為這個(gè)值。 HOST:客戶機(jī)主機(jī)IP地址 USERID:通過RFC1413調(diào)用捕獲客戶機(jī)用戶的UID。只可用于多線程流服務(wù)。 RECORD:記錄附加的客戶機(jī)信息如本地用戶,遠(yuǎn)程用戶和終端的類型。缺省時(shí)不登記任何信息。該屬性支持所有操作符。Disabled 只可用于defaults項(xiàng)(參看本小節(jié)后面的defaults項(xiàng)),指定被關(guān)閉的服務(wù)列表,是用空格分開的不可用服務(wù)列表來表示的。它和在/etc/xinetd.conf文件中注釋掉該服務(wù)項(xiàng)有相同的效果。 我們首先看一個(gè)簡(jiǎn)單的例子。例1是配置文件/etc/xinetd.conf的一個(gè)范例。這兩種服務(wù)的定義看上去像/et
15、c/inetd.conf的原因是 因?yàn)樗鼈兪怯胕tox工具從/etc/inetd.conf轉(zhuǎn)換得來的,只把/etc/inetd.conf項(xiàng)對(duì)應(yīng)轉(zhuǎn)換成適當(dāng)?shù)膞inetd語法。這樣, 這些屬性(在大括號(hào)中的=號(hào)的左邊)意義是非常直接的,其相關(guān)值(在大括號(hào)中的=號(hào)的右邊)也是如此。 例1文件/etc/xinetd.conf中的一部分 Serice ftp Socket_type=stream protocol=tcp wait=no user=root server=root Server_args= - 1- a Service telnet Socket_type=stream protocol
16、=tcp wait=tcp user=root server=/usr/sbin/in.telnetd 創(chuàng)建/etc/xinetd.conf文件最容易的方法是用itox工具(該例假定當(dāng)前工作目錄是xinetd的編譯目錄): xinetd/itox-daemon_dir /usr/sbin/etc/xinetd.conf。itox的參數(shù)-daemon_dir /usr/sbin指定服務(wù)程序的目錄位置,如果實(shí)現(xiàn)了TCP_Wrappers,從/etc/inetd.conf中是不能確定它的,轉(zhuǎn)換完成以后,就 開始增加屬性和值,以限制訪問并增加登記,最后要手工修改/etc/xinetd.conf以充分利
17、用xinetd的特性;否則,如果只把 /etc/inetd.conf轉(zhuǎn)換為/etc/xinetd.conf, xinetd的行為就和inetd一樣了。 表1詳述了在/etc/xinetd.conf中最常使用的一些屬性和值。當(dāng)然還有許多其他屬性,詳細(xì)配置選項(xiàng)可以在安裝xinetd以后通過man xinetd.conf來得到。在本小節(jié)后面的“配置實(shí)例”中,將用一些例子闡明其中的許多屬性。 表2中給出only_from和no_access表的語法,定義了指定主機(jī)名,IP地址和網(wǎng)絡(luò)的語法。注意表2中最后一項(xiàng)netmask的語法和之前看到的 有所不同。它沒有采用傳統(tǒng)的十進(jìn)制或十六進(jìn)netmask的表示方
18、法,而是采用一個(gè)整數(shù)表示從netmask(用二進(jìn)制表示)的最高位(最左端)開始起 每位都為1的位數(shù)。因此,給定例子的netmask值設(shè)置為20,意味著其最左端的20位都設(shè)置為1,而余下12位設(shè)置為0,或 11111111 111111111111000000000000 它是十進(jìn)制netmask 的二進(jìn)制表示。 表2 /etc/xinetd.conf的訪問控制表的語法 語法 描述 hostname 可解析的主機(jī)名。使用和這個(gè)主機(jī)名相關(guān)的所有IP地址 IPaddress 點(diǎn)和十進(jìn)制形式的標(biāo)準(zhǔn)IP地址,如Net_name /etc/networks中
19、的網(wǎng)絡(luò)名 x.x.x.0 x.x.0.0 x.0.0.0 0作為通配符看待。如項(xiàng)匹配從到55的所有IP地址。項(xiàng)匹配所有地址 x.x.x.a,b, x.xa,b, x.a,b, 指定主機(jī)表。如,56,59意味著含IP地址172,19.32.1,6和9的表 Ipaddress/netmask 定義要匹配的網(wǎng)絡(luò)或子網(wǎng)。如/20匹配從到55的所有地址 在看了這些基本屬性之后,下面我們仔細(xì)討論
20、那些必需的屬性,特定服務(wù)和一些配置實(shí)例。 必需的屬性對(duì)每種服務(wù)都必須指定某些屬性。一些服務(wù)比其他服務(wù)需要更多屬性,因?yàn)樗鼈儾槐蝗笔《x(即不在/etc/services或/etc/rpc中)。表3列出了必需的屬性。 表3必需的屬性 語法 描述 Socket_type 所有服務(wù) Wait所有服務(wù)User 在/etc/services或/etc/rpc中列出的服務(wù) Server 非內(nèi)部服務(wù)Port 不在/etc/services中的非RPC服務(wù)Protocol不在/etc/services中的所有RPC服務(wù)和所有其他服務(wù) Rpc_version所有RPC服務(wù) Rpc_number不列在/etc/r
21、pc中的任何RPC服務(wù) 特定的xinetd服務(wù)/etc/xinetd.conf文件中有4個(gè)特殊項(xiàng)。它們分別是:defaults,servers,services和xadmin。Defaults項(xiàng)不是一項(xiàng)服務(wù),且不需要前置service關(guān)鍵字(否則它會(huì)被當(dāng)成稱為 defaults的服務(wù)對(duì)待)。這些特殊項(xiàng)在以下4小段中描述。 Defaults項(xiàng) /etc/xinetd.conf文件中的defaults項(xiàng)是實(shí)現(xiàn)為該文件中的所有服務(wù)指定某些屬性的默認(rèn)值。這些默認(rèn)值可被每個(gè)服務(wù)項(xiàng)取消或修改。表4中列出可在defaults項(xiàng)中指定的屬性。這個(gè)表也指明了具體服務(wù)項(xiàng)中可以修改哪些屬性。 defaults可用的
22、屬性 屬性 服務(wù)修改 Log_on_success/Log-on_failure: Only_from/ No_access/Passenv 可以用=操作符改寫或用+ =或 - =操作符修改 Instances Log_type 可以用=操作符改寫 disabled 可注釋掉的服務(wù),但disabled屬性可用于某個(gè)服務(wù)項(xiàng)內(nèi) 例2是defaults項(xiàng)的一個(gè)實(shí)例。從中看到對(duì)所有服務(wù)而言,登記消息將通過有選擇地送到syslogd進(jìn)程。對(duì)成功的服務(wù)連接,將 登記PID,客戶機(jī)IP地址,中止?fàn)顟B(tài)和連接時(shí)間。對(duì)不成功的連接企圖,將登記客戶機(jī)IP地址。每項(xiàng)服務(wù)的最大實(shí)例數(shù)
23、設(shè)置為8。禁止兩項(xiàng)服務(wù): in.tftpd和in.rexecd。 defaults項(xiàng)從本質(zhì)上提供了在整個(gè)文件中建立某些屬性的默認(rèn)值,它應(yīng)用于沒有設(shè)置這些屬性的所有服務(wù)。 例2 /etc/xinetd.conf中defaults項(xiàng)的示例 Defaults Log_type = SYSLOG loca14 info Log_on_success = PID HOST EXIT DURATION Log_on_failure = HOST Instances =8 Disabled = in.tftpd in.rexecd 注:如果在/etcxinetd.conf文件中沒有defaults項(xiàng),且之后
24、決定增加這一項(xiàng),你必須中止和重新啟動(dòng)xinetd以使defaults生效。這對(duì)任何要增加到/etc/xinetd.conf中的新服務(wù)也是正確的。它可以如下完成。 kill-TERM xinetd #/ usr/sbin/xinetd 或者如果使用了啟動(dòng)腳本,則只需要簡(jiǎn)單執(zhí)行。 /etc/rc.d/init.d/xinetd restart Servers 項(xiàng) servers特殊服務(wù)是實(shí)現(xiàn)提供當(dāng)前運(yùn)行在服務(wù)器上的進(jìn)程表,以及有關(guān)這些進(jìn)程的確切信息。換句話說,它提供了活動(dòng)連接的列表。這對(duì)排除故障和檢查 xinetd狀態(tài)是個(gè)有用機(jī)制。例3顯示了/etc/xinetd.conf文件中的一個(gè)
25、實(shí)例servers項(xiàng)。注意這項(xiàng)服務(wù)的類型是INTERNAL, UNLISTED,這意味著它是xinetd的內(nèi)部功能,且不列在/etc/services中。使用的端口是完全任意的。 例3servers項(xiàng)的示例 Service servers type = INTERNAL UNLISTED Socket_type = stream Protocol = tcp Port = 9997 Wait = no Only_from = 11 Wait = no 注 意這項(xiàng)服務(wù)僅用于特定IP地址11,它是服務(wù)器自身的IP地址。這表示不允許任何其他主機(jī)從這個(gè)服務(wù)器
26、獲得當(dāng)前運(yùn)行在服務(wù)器上的進(jìn) 程列表。這樣做的原因是顯而易見的:如果這條信息可被其他系統(tǒng)上的主機(jī)獲取,基于對(duì)當(dāng)前正在運(yùn)行的進(jìn)程的了解就加以利用。除用于調(diào)試之外,一般不要運(yùn)行該 服務(wù),因?yàn)?1上的任何用戶通過執(zhí)行例4中的telnet 119997都能獲取這條信息。注意xinetd僅提供這條信息就退出,不提供交互連接。例4中的輸出告訴我們有兩個(gè)正在運(yùn)行的 telnet進(jìn)程(第5行和第31行),一個(gè)進(jìn)程PID為5931,另一個(gè)為5961(分別為第6行和第32行),有一個(gè)ftp進(jìn)程(第18行),其運(yùn)行 PID為5960(第19行)。 例4servers服務(wù)的輸
27、出示例 1$ telnet topcat 9997 2Trying 11 3Connected to topcat 4Escape character is ' 5telnet server 6Pid=5931 7Start_time=Sat Apr 17 10:32:15 1999 8Connection info: 9State=CLOSED 10 Service=telnet 11 Descriptor=20 12 Flags=9 13 Remote_address=,39958 14 Alternative services= 15 Lo
28、g_remote_user=YES 16 Writes_to_log=YES 17 18 ftp server 19 Pid=5960 20 Start_time=Sat Apr 17 10:49:061999 21 Connection info: 22 State=CLOSED 23 Service=ftp 24 Descriptor=20 25 Flags=9 26 Remote_address=24,2320 27 Alternative services= 28 Log_remote_user=YES 29 Writes_to_log=YES 30 31 tel
29、net server 32 Pid=5961 33 Start_time=Sat Apr 17 10:49:201999 34 Connection info: 35 State=CLOSED 36 Service=telnet 37 Descriptor=20 38 Flags=9 39 Remote_address=,35461 40 Alternative services= 41 Log_remote_user=YES 42 Writes_to_log=YES 43 44 Connection closed by foreign host 45 $ Services
30、項(xiàng) services特定項(xiàng)的目的是提供可用服務(wù)的列表。對(duì)services特定項(xiàng)來說,這是個(gè)有用的排除故障工具,但為了上述同樣的安全因素,可能不會(huì)去用它。盡管如此,還是要看一看它如何工作。 例5是 services項(xiàng)的一個(gè)示例。端口號(hào)的選擇也是任意的。也應(yīng)注意訪問限制于topcat,這是服務(wù)器自身的主機(jī)名。 例5 /etc/xinetd.conf中services項(xiàng)示例 Service services type = INTERNAL UNLISTED Socket_type = stream protocol = tcp port = 8099 wait = no Only_ from = t
31、opcat 對(duì)于servers服務(wù)來說,任何用戶可執(zhí)行telnet topcat 8099,并獲得來自services服務(wù)的輸出。例6給出了連接8099端口的實(shí)例信息信息。注意xinetd僅提供這條信息就退出,而不提供任何交互連接。 例6查詢services內(nèi)部服務(wù)的輸出 $ telnet topcat 8099 Trying 11 Connected to topcat. Escape character is ' Servers tcp 9997 Services tcp 8099 ftp tcp 21 telnet tcp 23 Shell tcp 514
32、Login tcp 513 Talk udp 517 Ntalk udp 518 Pop-2 tcp 109 Pop-3 tcp 110 Imap tcp 143 Linuxconf tcp 98 Connection closed by foreign host. $ Xadmin項(xiàng) 這個(gè)特定服務(wù)項(xiàng)提供以交互方式獲得 services特定服務(wù)所提供信息的方法。例7是/etc/xinetd.conf項(xiàng)的一個(gè)示例(端口號(hào)的選擇也是任意的),類似于services和 servers服務(wù),這項(xiàng)服務(wù)也沒有口令或其他保護(hù),所以要謹(jǐn)慎設(shè)置服務(wù)的only_from項(xiàng),以增強(qiáng)安全性。 例7 xadmin項(xiàng) S
33、ervice xadmin type = INTERNAL UNLISTED socket_type = stream protocol = tcp port = 9967 wait = no Only_from = topcat 對(duì)前兩個(gè)特定服務(wù)類型來說,你只需 telnet到所列端口上,即telnet topcat 9967。和前兩項(xiàng)服務(wù)不同,xadmin提供了一個(gè)交互環(huán)境。一旦連接到xadmin服務(wù)器上,就可執(zhí)行5個(gè)命令。它們是help,show, run,bye和exit。Help命令顯示其他命令以及一個(gè)簡(jiǎn)短的用法消息。Bye和exit命令都關(guān)閉這個(gè)連接。Show run和show a
34、vail命令分別提供servers和services提供的信息。 警告:像前3段中指出的一樣,這些特 定服務(wù)servers, services和xadmin產(chǎn)生的信息可用于攻擊系統(tǒng)。可能不需要一直運(yùn)行這些服務(wù),或許只當(dāng)你調(diào)試時(shí)才需要。在任何時(shí)候,如果的確運(yùn)行了這些服務(wù), 要確信用access_from和/或no_access配置了訪問控制。也可以為這些服務(wù)使用bind屬性以進(jìn)一步限制訪問。 配置實(shí)例 這節(jié)中將看到一些不同的例子,與之相關(guān)的行為以及它們產(chǎn)生的登記消息。 訪問控制 從一個(gè)簡(jiǎn)單的訪問控制例子開始。在例 10中,服務(wù)器topcat的login服務(wù)項(xiàng)允許IP地址以172開始但不以172.
35、19開始的任何系統(tǒng)訪問。這個(gè)例子包括了defaults部分。假 定這一項(xiàng)用于login服務(wù),且從客戶機(jī)上用rlogin命令激活,讓我們檢查成功和不成功企圖,以及它們產(chǎn)生的登記。 假定主機(jī)underdog和IP地址 是。那么當(dāng)Mary執(zhí)行rlogin登記topcat時(shí),會(huì)給予她訪問權(quán)。這相成功的登錄如例11 所示。盡管例11說明了Mary的動(dòng)作產(chǎn)生的log內(nèi)容。如例12所示,該例中的最后一項(xiàng)反映了當(dāng)Mary拆除登錄時(shí)的退出情況。可用PID跟蹤某次會(huì)話 的退出,只要你指明這個(gè)PID將在/etc/xinetd.conf中登記。登記項(xiàng)如下:每個(gè)xinetd登記項(xiàng)記錄日期和時(shí)間戳,之
36、后服務(wù)器主機(jī)名,然 后是xinetd,之后在括號(hào)中是xinetd的PID。例12中的第一條記錄以start關(guān)鍵字開始,表明這個(gè)會(huì)話的開始,之后識(shí)別的激活進(jìn)程 (login),然后激活進(jìn)程的PID,最后是客戶機(jī)地址。 例10在/etc/xinetd.conf中rlogin service項(xiàng)的示例 Defaults Log_type=SYSLOG loca14 info Log_on_success=PID HOST EXIT DURATION Log_on_failure=HOST instances=8 Service login Socket_type=stream protocol=tcp
37、 wait=no user=root flags=REUSE Only_from= No_access= Olg_on_success+=USERID Olg_on_failure+=USERID server=/usr/sbin/in.ftpd Server_args=-1 a 例11 成功的rlogin企圖 maryunderdog$ rlogin topcat password: last login:Wed Apr 14 17:45:02 from roadrunner marytopcat$ 例12和例11相關(guān)的登記項(xiàng) Apr 15 11:01:
38、46 topcat xinetd1402:START:login pid=1439 From= Apr 15 11:01:46 topcat xinetd1439:USERID:login OTHER:mary apr 15 11:39:31 topcat xinetd1402:EXIT:login status:1 pid=1439 dura-tion=2265(sec) 第2項(xiàng)以USERID關(guān)鍵字開始,表明成功地發(fā)出了RFC1413調(diào)用。之后是服務(wù)名(login),遠(yuǎn)程系統(tǒng)對(duì)RFC1413調(diào)用(此時(shí)為OTHER)的響應(yīng),最后遠(yuǎn)程用戶名(mary)。 這些log項(xiàng)的含義是
39、很清楚的,但表4提供了這些關(guān)鍵字(如START,USERID和EXIT)和其含義的解釋。 現(xiàn)在假定Joe想在主機(jī) (IP地址為)上使用rlogin。例13顯示了這一結(jié)果。看上去Joe連接被拒絕,或者可能他想強(qiáng) 入。讓我們看一看例14中的這三次企圖所產(chǎn)生的登記項(xiàng)。注意登記項(xiàng)不包括遠(yuǎn)程用戶名,盡管我們?cè)诶?0中用 log_on_failure屬性特別請(qǐng)求那個(gè)信息。這是因?yàn)檫h(yuǎn)程主機(jī)沒有運(yùn)行identd或類似進(jìn)程。因?yàn)橹鳈C(jī) 不在例10中的only_from表中,盡管在login服務(wù)項(xiàng)中增加了f
40、lags=IDONLY一項(xiàng),它不會(huì)記錄 沒有運(yùn)行identd的事實(shí)。僅當(dāng)主機(jī)得到許可時(shí),這樣一項(xiàng)登記記錄才會(huì)出現(xiàn)。 表4 xinetd登記項(xiàng)的描述 登記關(guān)鍵詞 格式和描述START START:service_idpid=PIDfrom=Ipaddress 當(dāng)啟動(dòng)一項(xiàng)服務(wù)時(shí)記錄該項(xiàng)。Service_id是服務(wù)名,像id屬性指定的一樣(如果不明確設(shè)置這個(gè)屬性,它采用該服務(wù)參數(shù)的值:參看表10.10);PID是被激活進(jìn)程的標(biāo)識(shí)符,或者如果沒有進(jìn)程被激活,就為0(僅不靈log_on_Success指定了PID時(shí)才記錄):Ipaddress是客戶機(jī)的IP地址(僅當(dāng)HOST
41、是log_on_success時(shí)才記錄) EXIT EXIT:service_idtype=spid=PIDduration=#(sec) 僅當(dāng)為log_on_success指定了EXIT時(shí),若進(jìn)程終止就記錄這項(xiàng)。Service_id和PID項(xiàng)和以前一樣。Type項(xiàng)記錄退出狀態(tài)或產(chǎn)生終止的信號(hào)。Duration捕獲會(huì)話時(shí)間(秒數(shù))且需要在log_on_success中說明DURATION選項(xiàng) FAILFAIL:service_id reasonfrom=Ipaddress 當(dāng)失敗的請(qǐng)求發(fā)生且至少為log_on_success屬性指定了一個(gè)值時(shí)生成該項(xiàng)。Service_id如前。Reason是一
42、個(gè)解釋失敗原因的簡(jiǎn)單詞或短語。Ipaddress是客戶機(jī)地址且需要為log_on_success屬性設(shè)置HOST值才出現(xiàn)。DATA DATA:service_id data 僅當(dāng)為log_on_failure指定了RECORD時(shí)才記錄。Service_id如前。記錄的data取決于服務(wù),但通常包括遠(yuǎn)程用戶名(如果可得到)和狀態(tài)信息 USERIDUSERID:service_id text 僅當(dāng)為log_on_success或log_on_failure或者指定了USERID時(shí),才記錄這個(gè)住處。Service_id如前。Text包括客戶機(jī)對(duì)RFC1413調(diào)用的響應(yīng)且特別是遠(yuǎn)程用戶名 NOID N
43、OID:service_id Ipaddress reason 僅當(dāng)為flags屬性設(shè)置了IDONLY值且至少為log_on_success或log_on_failure設(shè)置了USERID值時(shí)該項(xiàng)出現(xiàn)。Service_id如前。給出的Ipaddress是主機(jī)地址。Reason是失敗狀態(tài) 例13 來自未授權(quán)主機(jī)的失敗rlogin企圖 S $ rlogin topcat Topcat:Connection reset by peer S $ rlogin 1 paul topcat Topcat:Connection reset by pee
44、r S $ rlogin 1 mary topcat Topcat:Connection reset by peer S $ 例 14 和例10-50相關(guān)的登記項(xiàng) Apr 15 12:08:40 topcat xinetd1402:FAIL:login address from- Apr 15 12:08:52 topcat xinetd1402:FAIL:login address from- Apr 15 12:08:49 topcat xinetd1402:FAIL:login address
45、 from- 有一個(gè)最后登記項(xiàng)要檢查。注意例10中的instances屬性設(shè)置為8。對(duì)第9個(gè)登錄會(huì)話會(huì)發(fā)生什么?當(dāng)?shù)?個(gè)用戶試圖rlogin到topcat時(shí),那個(gè)用戶會(huì)看到下列錯(cuò)誤消息 rcmd:topcat:address already in use 并且topcat中為這一事件記錄的登記項(xiàng)是 Apr 15 13:37:33 topcat xinetd(1402):FAIL:login service_limit from-24 把這個(gè)記錄和表4中的描述相對(duì)照,F(xiàn)AIL關(guān)鍵字之后是服務(wù)名,然后是對(duì)失敗的解釋(此時(shí)為service_limit),最后
46、是客戶機(jī)地址。 使用bind屬性 bind屬性允許把一個(gè)特定接口的IP地址和一個(gè)特定的服務(wù)關(guān)聯(lián)。假定有一個(gè)內(nèi)部ftp服務(wù)器,它通過匿名ftp為公司職員提供只讀資源。再假定這個(gè) ftp服務(wù)器有兩個(gè)接口,一個(gè)連接在公司環(huán)境中,另一個(gè)連接到專用內(nèi)部網(wǎng),通常只有在那個(gè)特定組中工作的職員可訪問它。盡這個(gè)例子中只考慮基于接口提供兩 個(gè)不同ftp服務(wù)的需求。例15在/etc/xinetd.conf中說明了兩個(gè)ftp服務(wù)項(xiàng)。它可以實(shí)現(xiàn)所期望的功能。出于完整性再次提供了 defaults部分。 注意每個(gè)ftp服務(wù)項(xiàng)有一個(gè)唯一的 id屬性。對(duì)有相同名字的服務(wù)數(shù)目沒有任何限制,只要每個(gè)有唯一的標(biāo)識(shí)符。在
47、這個(gè)例子中,為內(nèi)部ftp服務(wù)器設(shè)置id屬性為ftp,為外部匿名服務(wù)器設(shè)置 id屬性為ftp_chroot。注意在后一種情況下,激活的進(jìn)程是/usr/sbin/anon/in.aftpd(對(duì) TCP_Wrappers來說是twist),這和以前的服務(wù)是不同的。 例15把服務(wù)綁定到特定地址上 Defaults Log_type=SYSLOG loca14 info Log_on_success=PID HOST EXIT DURATION Instances=8 Service ftp id=ftp Socket_type=stream protocol=tcp wait=no user=root
48、 Only_from= /20 bind= Log_on_success+=USERID Log_on_failure+=USERID server=/usr/sbin/in.ftpd Server_args=-1 a Service ftp id=ftp_chroot Socket_type=stream Service telnet Socket_type=stream Wait=no flags=REUSE user=root bind=11 server=usr/sbin/in.telnetd Log_o
49、n_success=PID HOST EXIT DURATION USERID Log_on_failure=RECORD HOST Service telnet Socket_type=stream protocol=tcp wait=no flags=REUSE user=root bind=9 redirect= 23 Log_on_success=PID HOST EXIT DURATION USERID LOG_ON_FAILURE=record host 例16 redirect的結(jié)果 $ telnet 9 Try
50、ing 9 Connected to 9 Escape character is' UNIX(r) System V Release 4.0 (foghorn) Login: 因?yàn)長(zhǎng)inux對(duì)每個(gè)物理端口最多支持256個(gè)邏輯接口,因此理論上可以為系統(tǒng)上的每個(gè)物理地址代理256個(gè)不同的地址。 盡管redirect機(jī)制可能是非常有用的,但實(shí)現(xiàn)它時(shí)要小心。要確保在代理服務(wù)器和終端系統(tǒng)上進(jìn)行登記。可是在高度受控的內(nèi)部網(wǎng)絡(luò)中,這個(gè)實(shí)現(xiàn)可能是方便的。 包含TCP_Wrappers /etc/xinetd.conf 中包含TCP_Wrappers功能是
51、如此簡(jiǎn)單,TCP_Wrappers的所有功能可通過xinetd包括進(jìn)去,就像通過inetd一樣。例17是 /etc/xinetd.conf文件的一個(gè)實(shí)例,它為許多服務(wù)使用了TCP_Wrappers。當(dāng)屬性服務(wù)器設(shè)置為/usr/sbin/tcpd后,那 個(gè)服務(wù)將被包裹。注意這樣的項(xiàng)總是把server_args屬性設(shè)置為要激活的進(jìn)程(全路徑)。載討論xinetd的編譯時(shí),用到了libwrap配置選 項(xiàng),但是無論是否用libwrap編譯,例17中的配置文件都能發(fā)揮作用。用libwrap編譯的作用是包含/etc/hosts.allow和 /etc/hosts.deny中的訪問限制。例7所示提供了TCP
52、_Wrappers的一組完整特征,banners,spawn,twist等。 例 17 在/etc/xinetd.conf中使用TCP_Wrappers Defaults Log_type=SYSLOG loca14 info Log_on_success=PID HOST EXIT DURATION Log_on_failure=HOST instances=8 Service ftp id=ftp Socket_type=stream protocol=tcp wait=no user=root Only_from= Log_on_success+=USERID Log
53、_on_failure+=USERID Access_times=8:00-16:30 server= /usr/sbin/tcpd Server_args= /usr/sbin/in.ftpd 1 a Service telnet Socket_type=stream wait=no flags=NAMEINARGS REUSE User=root Bind=11 server= /usr/sbin/tcpd Server_args= /usr/sbin/in.telnetd Log_on_success=PID HOST EXIT DURATION USERID Lo
54、g_on_failure=RECORD HOST Service telnet Socket_type=stream protocol=tcp wait=no flags=REUSE user=root bind=9 redirect= 23 Log_on_success=PID HOST EXIT DURATION USERID Log_on_failure=RECORD HOST xinetd進(jìn)程 xinetd 進(jìn)程接受若干參數(shù)。這些參數(shù)可被特定服務(wù)default中的屬性改寫,或在一個(gè)或多個(gè)服務(wù)的單個(gè)屬性項(xiàng)改寫。然而,這里給出的所有參數(shù)或它們的缺省值控制 xinetd自身的行為。例如,如果filelog標(biāo)記指定為xinetd,那么將在那里登記所有狀態(tài)轉(zhuǎn)換消息,盡管 /etc/xinetd.conf文件中為和服務(wù)相關(guān)消息指定了其他登記位置。可用參數(shù)列在表5中。 應(yīng)注意
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CNFA 020-2023綠色設(shè)計(jì)產(chǎn)品評(píng)價(jià)技術(shù)規(guī)范塑料家具
- T/CNCA 014-2022改性鎂渣基膠凝材料
- T/CHINABICYCLE 20-2023時(shí)尚產(chǎn)品指南自行車與電動(dòng)自行車
- T/CHINABICYCLE 1-2019租賃自行車技術(shù)規(guī)范
- T/CGCC 29-2019微商運(yùn)營(yíng)從業(yè)人員技術(shù)條件
- T/CECS 10237-2022綠色建材評(píng)價(jià)供暖空調(diào)輸配系統(tǒng)用風(fēng)機(jī)、風(fēng)管、水泵
- T/CECS 10037-2019綠色建材評(píng)價(jià)衛(wèi)生潔具
- T/CCSAS 048-2023危險(xiǎn)化學(xué)品電子標(biāo)簽選型技術(shù)規(guī)范
- T/CCSAS 044-2023化工過程本質(zhì)安全化評(píng)估指南
- T/CCOA 33-2020平房倉(cāng)氣密改造操作規(guī)范
- 《白龍馬》注音歌詞
- 二、問題解決型(指令性目標(biāo))QC成果案例
- 特種作業(yè)人員體檢表
- PCB制板要求模板-綜合版
- 集裝箱板房技術(shù)要求
- 瀝青與瀝青混合料教學(xué)課件
- 自身免疫病及檢驗(yàn)(免疫學(xué)檢驗(yàn)課件)
- 簡(jiǎn)單機(jī)械主題單元教學(xué)設(shè)計(jì)
- 部編版語文二年級(jí)下冊(cè)第八單元整體教學(xué)設(shè)計(jì)教案
- 2023-2024學(xué)年湖南省湘潭市小學(xué)語文六年級(jí)期末通關(guān)試卷附參考答案和詳細(xì)解析
- 大廈火災(zāi)自動(dòng)報(bào)警系統(tǒng)更換方案
評(píng)論
0/150
提交評(píng)論