• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            旅途

            如果想飛得高,就該把地平線忘掉

            用TCP Wrappers和xinetd使系統(tǒng)安全

            當(dāng)一個系統(tǒng)被用作公開網(wǎng)絡(luò)的服務(wù)器時,這個系統(tǒng)就成為被攻擊的目標(biāo).對網(wǎng)絡(luò)服務(wù)進(jìn)行訪問控制 是一個服務(wù)器管理員面臨的最重要的安全任務(wù)之一.紅帽企業(yè)Linux為這種訪問控制提供了一些工具.例如,內(nèi)核使用一個基于iptables的防火墻來將 不受歡迎的網(wǎng)絡(luò)數(shù)據(jù)包過濾在內(nèi)核網(wǎng)絡(luò)之外.對于使用這種防火墻的網(wǎng)絡(luò)服務(wù),TCP Wrappers又增加了一層保護(hù),這層保護(hù)通過定義哪些主機允許或不允許連接到"wrapped"網(wǎng)絡(luò)服務(wù)上來實現(xiàn).TCP Wrappers為多種不同的服務(wù)提供訪問把關(guān)的功能.大多數(shù)現(xiàn)代網(wǎng)絡(luò)服務(wù)系統(tǒng),像SSH,Telnet和FTP,都利用TCP Wrappers在外來進(jìn)入系統(tǒng)的請求和被請求的服務(wù)器之間設(shè)立防范.

                    xinetd超級服務(wù)器就是這樣的一個wrapped network(會繞網(wǎng)絡(luò))服務(wù).這項服務(wù)被稱為一個超級服務(wù)器,是因為它可以控制連接到網(wǎng)絡(luò)服務(wù)的一個子集的連接,還能進(jìn)一步精致地進(jìn)行訪問控制.如果 TCP Wrappers和xinetd一起聯(lián)合使用,TCP Wrappers的功能就會增強,因為xinetd作為超級服務(wù)器可以為系統(tǒng)就訪問,登錄,捆綁,重定向和資源利用方面提供額外的服務(wù)享有權(quán)控制.

                    1.TCP Wrappers

                    在默認(rèn)情況下會安裝TCP Wrappers軟件包(tcp_wrappers),該軟件包提供基于主機的,到網(wǎng)絡(luò)服務(wù)的訪問控制.這個軟件包中最重要的組成部分是/usr/lib /libwrap.a庫.通常來說,使用libwrap.a庫進(jìn)行編譯的服務(wù)就是一個TCP Wrappers.

                    當(dāng)一個客戶試圖與一個TCP-wrapped服務(wù)進(jìn)行連接時,這個服務(wù)首先會檢查主機的訪問文件(/etc/hosts.allow和 /etc/hosts.deny)來決定這個客戶是否被允許連接到這個服務(wù).在大多數(shù)情況下,這個服務(wù)還會使用syslog守護(hù)進(jìn)程(syslogd)把 這個發(fā)出請求的客戶用戶名以及所要求訪問的服務(wù)寫入/var/log/secure或/var/log/messages文件中.如果一個客戶被允許進(jìn)行 連接,TCP Wrappers會釋放它對所請求服務(wù)的連接控制權(quán),然后將不再在這個客戶與服務(wù)器間的通信過程中起任何作用.除了可以控制訪問和記錄日志信息外,TCP Wrappers還可以在允許或拒絕到網(wǎng)絡(luò)服務(wù)的連接請求之前來執(zhí)行相關(guān)的命令與客戶進(jìn)行交流.

                    因為TCP Wrappers是系統(tǒng)管理員所使用的安全工具庫的一個很有價值的補充,紅帽企業(yè)Linux中的多數(shù)網(wǎng)絡(luò)服務(wù)都與libwrap.a庫相連.這樣的應(yīng)用程序包括/usr/sbin/sshd,/usr/sbin/sendmail等.

                   

                    1.1.TCP Wrappers的優(yōu)勢

                    TCP Wrappers擁有以下其它網(wǎng)絡(luò)控制技術(shù)不具備的優(yōu)勢:

                            A.對客戶和wrapped(會繞的)網(wǎng)絡(luò)服務(wù)的透明性.連接的客戶和wrapped網(wǎng)絡(luò)服務(wù)都不需要知道TCP Wrappers在使用中.合法用戶會被記錄到日志中,并獲得所需要的服務(wù),而非法用戶則無法獲得要求的服務(wù).

                            B.中央化管理多項協(xié)議.TCP Wrappers獨立運行于它們所保護(hù)的網(wǎng)絡(luò)服務(wù),這就允許多個服務(wù)器應(yīng)用程序共享一組通用的訪問控制配置文件,從而簡化了管理任務(wù).

             

                    1.2.TCP Wrappers配置文件

                    要決定一個客戶是否被允許連接一項服務(wù),TCP Wrappers會參考以下兩個文件,這兩個文件通常被稱為主機訪問文件:

                            /etc/hosts.allow

                            /etc/hosts.deny

                    當(dāng)一個TCP Wrappers接收到一個客戶請求時,它會運行以下幾個步驟:

                            A.檢查/etc/hosts.allow.TCP會繞服務(wù)會循序地解釋/etc/hosts.allow文件并應(yīng)用第一個為這個服務(wù)所指定的規(guī)則.如果找到了一個匹配的規(guī)則,則允許連接.如果找不到匹配的規(guī)則,就會進(jìn)行下一個步驟.

                            B.檢查/etc/hosts.deny.TCP會繞的服務(wù)會循序地來解釋/etc/hosts.deny文件.如果找到一個匹配的規(guī)則,則拒絕這個連接.如果找不到匹配的規(guī)則,則允許連接到這個服務(wù).

                    在使用TCP Wrappers保護(hù)網(wǎng)絡(luò)服務(wù)時應(yīng)該考慮以下幾個要點:

                            A.因為hosts.allow中的規(guī)則會首先被應(yīng)用,所以比hosts.deny中指定的規(guī)則有優(yōu)先權(quán).因此,如果訪問一項服務(wù)在hosts.allow中設(shè)置為允許,那么在hosts.deny中同一項服務(wù)的拒絕訪問設(shè)置則被忽略.

                            B.每個文件中的各項規(guī)則是由上到下被讀取的,第一個匹配的規(guī)則是唯一被應(yīng)用的規(guī)則.因此,規(guī)則的排列順序極其重要.

                            C.如果在這兩個文件中都沒有找到匹配的規(guī)則,或這兩個文件都不存在,那么就授予訪問這項服務(wù)的權(quán)限.

                            D.TCP會繞的服務(wù)并不緩存主機訪問文件中的規(guī)則,因此對hosts.allow或hosts.deny的配置改變都無需重新啟動網(wǎng)絡(luò)服務(wù)便會馬上起作用.

             

                    1.3.格式化訪問規(guī)則

                    /etc/hosts.allow和/etc/hosts.deny文件的格式是完全相同的.每個規(guī)則都必須位于其正確的行位.空行或以井字號(#)開始的行會被忽略.

                    每條規(guī)則都使用以下基本格式來對網(wǎng)絡(luò)服務(wù)的訪問進(jìn)行控制:

                            <daemon list>: <client list> [: <option>: <option>: ...]

                    字段解釋如下:

                            <daemon list>,一個由逗號分隔的進(jìn)程名(不是服務(wù)名)列表,或ALL通配符.守護(hù)進(jìn)程列表也接受運算符來提供更大的靈活性.

                            <client list>,一個由逗號分隔的主機名,主機IP地址,特殊模式或通配符列表,該列表用來識別受這項規(guī)則影響的主機.客戶列表也接受運算符來允許更大的靈活性.

                            <option>,這項規(guī)則被觸發(fā)時要運行一個動作選項或由冒號分隔開動作列表.選項領(lǐng)域支持?jǐn)U展式,發(fā)布shell命令,允許或拒絕訪問以及修改日志記錄.

                    下面是一個基本的主機訪問規(guī)則示例:

                            vsftpd : .example.com

                    這條規(guī)則指示TCP Wrappers監(jiān)測在example.com域內(nèi)的任何主機向FTP守護(hù)進(jìn)程(vsftpd)發(fā)出的連接.如果這條規(guī)則出現(xiàn)在hosts.allow 中,連接則被接受.如果這條規(guī)則出現(xiàn)在hosts.deny中,連接則被拒絕.

                    下面的主機訪問規(guī)則比較復(fù)雜,而且使用兩個選項領(lǐng)域:

                            sshd : .example.com  \ :spawn /bin/echo `/bin/date` access denied>>/var/log/sshd.log \ :deny

                    請注意每個選項領(lǐng)域前面都有反斜線(\).使用反斜線可以防止由于規(guī)則太長而造成失敗.

                    這個范例規(guī)定如果example.com中的某個主機試圖向SSH守護(hù)進(jìn)程(sshd)發(fā)出連接請求,那么執(zhí)行echo命令來將這次嘗試添加到一個專用日 志文件里,并且拒絕該連接.因為使用了命令選項 deny,這一行拒絕訪問,即使它出現(xiàn)在 hosts.allow 文件里.

             

                    1.4.通配符

                    通配符使TCP Wrappers更容易匹配各種守護(hù)進(jìn)程或主機.使用通配符最頻繁的是在訪問規(guī)則的客戶列表領(lǐng)域內(nèi).

                    以下是可以被使用的通配符:

                            ALL,完全匹配,可以用在守護(hù)進(jìn)程列表和客戶列表中.

                            LOCAL,與任何不包括圓點(.)的主機匹配,如localhost.

                            KNOWN,與任何帶有已知主機名和主機地址或已知用戶的主機匹配.

                            UNKNOWN,與任何帶有未知主機名和主機地址或未知用戶的主機匹配.

                            PARANOID,與任何帶有主機名和主機地址不相匹配的主機匹配.

             

                    1.5.模式

                    模式可以用在訪問規(guī)則的客戶領(lǐng)域里,從而更準(zhǔn)確地給客戶主機指定分組.

                    下面是一個常用模式列表:

                            A.主機名以圓點(.)開始,如果在一個主機名的開始放置一個圓點,那么就與所有共享這個主機名中列出的相同組成部分的主機匹配.如:.example.com適用于example.com域內(nèi)的任何主機.

                            B.IP地址以圓點(.)結(jié)束,如果在一個IP地址的末尾放置一個圓點,那么就與所有共享一個IP地址的起始數(shù)值組的主機匹配.如:192.168.適用于192.168.x.x網(wǎng)絡(luò)內(nèi)的任何主機.

                            C.IP地址/網(wǎng)絡(luò)掩碼對,網(wǎng)絡(luò)掩碼表達(dá)式也可以作為一個模式用來控制對某一組特定的IP地址的訪問.如:192.168.0.0 /255.255.254.0適用于地址區(qū)間從192.168.0.0到192.168.1.255的任何主機.

                            D.[IPv6地址]/前綴長度對,[網(wǎng)]/前綴長度對也可以作為一種模式用來控制對某一組特定的IPv6地址的訪問.如: [3ffe:505:2:1::]/64適用于地址區(qū)間從3ffe:505:2:1::到 3ffe:505:2:1:ffff:ffff:ffff:ffff的任何主機.

                            E.星號(*),星號可以用來匹配整個不同組別的主機名或IP地址,只要在含有其它模式類型的客戶列表中這些組不混雜在一起的話.如:*.example.com適用于example.com域內(nèi)的任何主機.

                            F.斜線(/),如果一個客戶列表以斜線開始,這個列表就被當(dāng)作一個文件名對待.若是需要指定很大數(shù)量主機的各種規(guī)則的話,這一點就很有用處.

                    更多TCP Wrappers所接受的其它用到的模式.可參閱hosts_access man 5 page.

                    1.6.Portmap(端口映射器)和TCP Wrappers

                    實施TCP Wrappers的Portmap不支持主機查找,也就是說portmap命令不能用主機名來識別相應(yīng)的主機.因此,在hosts.allow或 hosts.deny中對portmap的訪問控制規(guī)則必須使用IP地址來特指某主機,或用關(guān)鍵詞ALL.

                    對portmap訪問控制規(guī)則的修改可能不會立即起作用.可能得重新啟動portmap服務(wù).

                    像NIS和NFS一樣的被廣泛使用的服務(wù)都有賴于portmap來進(jìn)行運作,所以要了解這些局限性.

             

                    1.7.算子(Operators)

                    目前,訪問控制規(guī)則接受一個算子EXCEPT,這個算子可以用在一個規(guī)則的守護(hù)程序列表中,也可以用在客戶列表中.

                    這個EXCEPT算子允許特定的例外以用來在同一個規(guī)則中拓寬匹配的范圍.

                    下面的例子來自一個hosts.allow文件,除cracker.example.com之外,允許所有example.com主機連接所有的服務(wù)

                            ALL: .example.com EXCEPT cracker.example.com

                    hosts.allow文件內(nèi)的另一個例子中,來自192.168.0.x網(wǎng)絡(luò)的所有客戶都可以使用除FTP之外的所有服務(wù)

                            ALL EXCEPT vsftpd: 192.168.0.

                    從組織結(jié)構(gòu)上來說,避免使用EXCEPT算子更簡易一些.因為這樣可以讓其他的系統(tǒng)管理員能很快地掃描相關(guān)的文件以便查看哪些主機被允許或被拒絕訪問服務(wù),而無須通過EXCEPT算子來進(jìn)行排序.

             

                    1.8.選項領(lǐng)域

                    除了允許和拒絕訪問的基本規(guī)則外,紅帽企業(yè)Linux對TCP Wrappers的實施支持通過option fields對訪問控制語言的擴展式.通過在主機訪問規(guī)則中使用選項領(lǐng)域,系統(tǒng)管理員可以完成多種不同的任務(wù),比如像修改日志動作,加強訪問控制以及發(fā)出 shell命令.

             

                    1.9.記錄日志

                    通過使用severity命令,其選項領(lǐng)域讓系統(tǒng)管理員能夠很容易地改變一個規(guī)則的日志設(shè)施和優(yōu)先級別.

                    在下面的例子中,example.com域內(nèi)的任何主機向SSH守護(hù)進(jìn)程發(fā)出的各種連接會登錄到默認(rèn)的authprivsyslog設(shè)施內(nèi)(因為沒有具體指明設(shè)施參數(shù)值),并且以emerg優(yōu)先:

                            sshd : .example.com : severity emerg

                    使用severity選項也可以指定某個設(shè)施.下面的例子將來自example.com 主機的任何SSH連接意圖登錄到local0設(shè)施,并以alert優(yōu)先.

                            sshd : .example.com : severity local0.alert

                    實際操作中,這個例子直到syslog守護(hù)進(jìn)程(syslogd)被配置為登錄到local0設(shè)施才會起作用.

             

                    1.10.訪問控制

                    選項領(lǐng)域也允許系統(tǒng)管理員通過添加allow或deny作為命令的最后選項來明確地以單個規(guī)則方式允許或拒絕主機.

                    例如,下面的兩個規(guī)則允許來自client-1.example.com的SSH連接但卻拒絕來自client-2.example.com的連接

                            sshd : client-1.example.com : allow

                            sshd : client-2.example.com : deny

                    訪問控制以每個規(guī)則為基礎(chǔ),這樣選項領(lǐng)域就允許系統(tǒng)管理員把所有訪問規(guī)則寫成一個單一文件,要么是hosts.allow,要么是hosts.deny.有些系統(tǒng)管理員認(rèn)為這樣組織訪問規(guī)則更容易一些.

             

                    1.11.Shell命令

                    選項領(lǐng)域允許訪問規(guī)則通過下面兩個指令發(fā)出shell命令:

                            spawn,作為子進(jìn)程發(fā)出一個shell命令.這個命令可以使用/usr/sbin/safe_finger來獲取發(fā)出請求客戶的更多信息,或使用 echo命令來創(chuàng)建專用日志文件.在下面的例子中,試圖訪問來自example.com 域的Telnet服務(wù)的客戶被俏俏地登錄到一個專用文件.

                                    in.telnetd : .example.com \

                                            : spawn /bin/echo `/bin/date` from %h>>/var/log/telnet.log \

                                            : allow

                            twist,把要求進(jìn)行的服務(wù)轉(zhuǎn)換成特定的命令.這個命令經(jīng)常用來給外侵者設(shè)立陷阱(也叫"蜜罐兒").也可以用來向預(yù)連接的客戶發(fā)送信息.這個 twist命令必須出現(xiàn)在該規(guī)則命令行的末尾.在下面的例子中,試圖訪問來自example.com域的FTP服務(wù)的客戶接收到用echo命令發(fā)送的一個 訊息.

                                    vsftpd : .example.com \

                                            : twist /bin/echo "421 This domain has been black-listed. Access denied!"

             

                    1.12.擴展式

                    擴展式命令與spawn和twist命令一起使用時,可以提供關(guān)于客戶/服務(wù)器以及相關(guān)進(jìn)程的信息.

                    下面是一個支持?jǐn)U展式的命令列表:

                            %a,返回用戶的IP地址.

                            %A,返回服務(wù)器的IP地址.

                            %c,返回大量的客戶信息,比如用戶名和主機名,或用戶名和IP地址.

                            %d,返回守護(hù)進(jìn)程的名稱.

                            %h,返回客戶的主機名(或IP地址,如果主機名沒有提供的話).

                            %H,返回服務(wù)器的主機名(或IP地址,如果主機名沒有提供的話).

                            %n,返回客戶的主機名.如果主機名沒有提供的話,屏幕上會顯示unknown.如果客戶的主機名和主機地址不匹配的話,屏幕上會顯示paranoid.

                            %N,返回服務(wù)器的主機名.如果主機名沒有提供的話,屏幕上會顯示unknown.如果服務(wù)器的主機名和主機地址不匹配的話,屏幕上會顯示paranoid.

                            %p,返回守護(hù)進(jìn)程的進(jìn)程ID.

                            %s,返回各種不同類型的服務(wù)器信息,比如守護(hù)進(jìn)程的進(jìn)程和服務(wù)器的主機或IP地址.

                            %u,返回客戶的用戶名.如果沒有提供的話,屏幕上會顯示unknown.

                    下面用來示范的規(guī)則與spawn命令一起使用了一個擴展式來在一個定制的日志文件中確認(rèn)客戶主機.

                    當(dāng)來自example.com域的一個主機向SSH守護(hù)進(jìn)程(sshd)發(fā)出連接意圖時,執(zhí)行echo命令來把這次包括客戶主機名(通過使用%h擴展式)的連接嘗試信息記錄到一個專用文件中.

                            sshd : .example.com  \

                                    : spawn /bin/echo `/bin/date` access denied to %h>>/var/log/sshd.log \

                                    : deny

                    同樣的,擴展式也可以用來把個性化的訊息返回給客戶.在下面的例子中,試圖訪問來自example.com域的FTP服務(wù)的客戶們得到通知,他們的訪問被服務(wù)器取締了.

                            vsftpd : .example.com \

                                    : twist /bin/echo "421 %h has been banned from this server!"

                    有關(guān)可用擴展式的更完全的解釋,以及對附加的訪問控制選項的更完全的解釋,可參閱man page的第五部分,查看hosts_access(man 5 hosts_access)和hosts_options.

             

                    1.13.連接旗幟(Connection Banners)

                    當(dāng)用戶連接到服務(wù)器時,用合適的旗幟標(biāo)示顯示其連接是一種很好的方式,可以讓潛在的襲擊者知道本系統(tǒng)管理員很有警惕性.同時也可以控制關(guān)于系統(tǒng)什么樣的信 息可以呈現(xiàn)給用戶.要想為一項服務(wù)設(shè)置一個TCP Wrappers旗幟標(biāo)示,可使用banner選項。

                    這個例子為vsftpd設(shè)置一個旗幟標(biāo)示.首先,創(chuàng)建一個旗幟標(biāo)示文件,可以儲存在系統(tǒng)的任何地方,但必須與其守護(hù)進(jìn)程同名.例如,該文件命名為/etc/banners/vsftpd并包含下面一行:

                            220-Hello, %c 220-All activity on ftp.example.com is logged. 220-Inappropriate use will result in your access privileges being removed.

                    %c權(quán)標(biāo)可提供客戶的多種信息,比如用戶名和主機名,或用戶名和IP地址,也許這樣會使該連接更讓人覺得有脅迫感。

                    要想使該旗幟在有外來連接進(jìn)入時顯示,可在/etc/hosts.allow文件上加上下面一行:

                            vsftpd : ALL : banners /etc/banners/

                    2.xinetd

                    xinetd控制對一個流行網(wǎng)絡(luò)服務(wù)子集的訪問,該子集包括FTP,IMAP和Telnet.同時這種服務(wù)還對訪問控制,增強的日志記錄功能,捆綁,重定向以及資源使用控制提供特定化服務(wù)配置選項.

                    當(dāng)一個用戶試圖連接由xinetd控制的一個網(wǎng)絡(luò)服務(wù)時,這種超級服務(wù)會接到請求并且查看是否有任何相匹配的TCP Wrappers訪問控制規(guī)則存在.如果連接被允許,xinetd則檢驗該連接在其個性化的規(guī)則下對那項服務(wù)來說是被允許的.同時也檢查該項服務(wù)是否還有 足夠的資源份額以及這項服務(wù)是否與任何定義好的規(guī)則相沖突.如果所有條件都得到滿足,(也就是:訪問這項服務(wù)的請求被允許,這項服務(wù)還有足夠的資源份額, 以及這項服務(wù)不與任何定義好的規(guī)則相沖突),那么xinetd就開始進(jìn)行被請求的服務(wù)并且讓其通過對連接的訪問控制.連接建立后,xinetd就不再參與 客戶和服務(wù)器之間的通訊交流.

             

                    2.1.xinetd的配置文件

                    xinetd的配置文件如下:

                            /etc/xinetd.conf,全局xinetd配置文件.

                            /etc/xinetd.d/,包含所有具體化服務(wù)文件的目錄.

                    /etc/xinetd.conf文件包含一般的配置設(shè)定,這種設(shè)定影響xinetd控制下的每一項服務(wù).當(dāng)xinetd服務(wù)第一次啟動時,其設(shè)定信息就 被讀取,所以要想使改變后的配置起作用,你需要重新啟動xinetd服務(wù).下面是一個/etc/xinetd.conf文件的示范:

                            defaults

                            {

                                    instances  =  60       

                                    log_type  =  SYSLOG  authpriv

                                    log_on_success  =  HOST PID

                                    log_on_failure  =  HOST

                                    cps  =  25 30

                            }

                            includedir /etc/xinetd.d

                    這些行控制xinetd以下的各個方面:

                            instances,指定xinetd可以處理同時間進(jìn)入系統(tǒng)的請求的最大數(shù)值.

                            log_type,配置xinetd來使用authpriv日志設(shè)施,該設(shè)施將日志條目寫入/var/log/secure文件.如果加上一個像FILE /var/log/xinetdlog一樣的命令,就會在/var/log/目錄下創(chuàng)建一個叫作xinetdlog的定制日志文件.

                            log_on_success,配置xinetd來記錄成功的連接嘗試.默認(rèn)情況下,遠(yuǎn)程主機的IP地址和服務(wù)器處理這個請求的處理ID都要被記錄.

                            log_on_failure,配置xinetd來記錄失敗的連接嘗試,或被拒絕的連接嘗試.

                            cps,配置xinetd來設(shè)定對任何一項服務(wù)來說每秒鐘最多允許25個連接.如果超過這個限制,該服務(wù)就會隱退30秒.

                            includedir/etc/xinetd.d/,包含位于/etc/xinetd.d/目錄下的并且在具體化特定服務(wù)配置文件中聲明的各種選項.

                    /etc/xinetd.d/目錄含有xinetd管理下的每一項服務(wù)的配置文件以及與該服務(wù)相關(guān)連的各文件的名稱.就xinetd.conf來說,該目 錄只有當(dāng)xinetd服務(wù)啟動時才被讀取.要使改變的配置起作用,系統(tǒng)管理員必須重新啟動xinetd服務(wù).

                    /etc/xinetd.d/目錄下的文件格式使用與/etc/xinetd.conf相同的常規(guī)格式.各項服務(wù)的配置都儲存在一個獨立的文件中,其主要原因是這樣做使得個性化定制更容易一些,一項服務(wù)影響其它服務(wù)的可能性也更小一些.

                    要想了解這些文件是如何組構(gòu)在一起的,可參考以下/etc/xinetd.d/krb5-telnet文件:

                            service telnet

                            {

                                    flags  =  REUSE

                                    socket_type  =  stream

                                    wait  =  no

                                    user  =  root

                                    server  =  /usr/kerberos/sbin/telnetd

                                    log_on_failure  +=  USERID

                                    disable  =  yes

                            }

                    這些行控制telnet服務(wù)的多個不同側(cè)面:

                            service,指定服務(wù)名稱,通常是/etc/services文件中服務(wù)列表中的一項.

                            flags,設(shè)定連接的一系列屬性中任何一個屬性.REUSE指示xinetd來重新使用這個插座進(jìn)行Telnet連接.

                            socket_type,設(shè)定該網(wǎng)絡(luò)插座類型為stream.

                            wait,指定這項服務(wù)是單線程(yes)還是多線程(no).

                            user,指定該進(jìn)程運行在哪個用戶 ID 下.

                            server,指定要發(fā)射哪個二進(jìn)制可執(zhí)行文件.

                            log_on_failure,為log_on_failure指定登錄參數(shù),在xinetd.conf中已經(jīng)定義好的除外.

                            disable,指定這項服務(wù)是要被中止(yes)還是不被中止(no).

                    可參閱xinetd.conf man page來獲取關(guān)于這些選項及其用途的更多信息.

             

                    2.2.日志記錄選項

                    下面的日志記錄選項可用于/etc/xinetd.d/目錄下的/etc/xinetd.conf和各種具體化特定服務(wù)配置文件.

                            ATTEMPT,日志記錄每次連接嘗試失敗的事實(log_on_failure).

                            DURATION,日志記錄這項服務(wù)被遠(yuǎn)程系統(tǒng)使用的時間長度(log_on_success).

                            EXIT,日志記錄退出狀態(tài)或這項服務(wù)的中止信號(log_on_success).

                            HOST,日志記錄遠(yuǎn)程主機的IP地址(log_on_failure 和 log_on_success).

                            PID,日志記錄該服務(wù)器接到連接請求時進(jìn)行處理的處理ID(log_on_success).

                            USERID,日志記錄遠(yuǎn)程用戶使用為所有多線程主流服務(wù)而在RFC 1413中規(guī)定的方法(log_on_failure andlog_on_success).

                            如果需要一個日志記錄的完整列表,可參閱xinetd.conf man page.

             

                    2.3.訪問控制選項

                    xinetd服務(wù)的用戶們可以選擇使用TCP Wrappers主機訪問規(guī)則,也可以通過xinetd配置文件提供訪問控制,或二者混合使用.

                    下面是一些xinetd支持的主機訪問控制選項:

                            only_from,只允許特別指定的主機使用這項服務(wù).

                            no_access,阻斷列出的主機使用這項服務(wù).

                            access_times,指定某一特定服務(wù)可能需要的時間段.該時間段的表達(dá)必須用24時的符號格式,即:HH:MM-HH:MM.

                    only_from和no_access選項可以使用很多IP地址或主機名,或者可以指定整個網(wǎng)絡(luò).與TCP Wrappers類似,將xinetd訪問控制與增強的日志記錄配置相結(jié)合可以提高安全性,這樣可以阻斷被禁止主機的請求同時又詳細(xì)記錄每一次的連接嘗 試.

                    例如,下面的/etc/xinetd.d/telnet文件可以用來阻斷來自某特定網(wǎng)絡(luò)群體的Telnet訪問,也用來限制允許用戶們登錄的總體時間段.

                            service telnet

                            {

                                   disable         = no

                                   flags           = REUSE

                                   socket_type     = stream

                                   wait            = no

                                   user            = root

                                   server          = /usr/kerberos/sbin/telnetd

                                   log_on_failure  += USERID

                                   no_access       = 172.16.45.0/24

                                   log_on_success  += PID HOST EXIT

                                   access_times    = 09:45-16:15

                            }

                    在這個例子中,當(dāng)一個來自10.0.1.0/24網(wǎng)絡(luò)的用戶系統(tǒng),比如10.0.1.2,試圖訪問Telnet服務(wù)時,連接由外連主機關(guān)閉.

                    另外,他們的登錄試圖會記錄在/var/log/messages中.

                    當(dāng)TCP Wrappers和xinetd連用來進(jìn)行訪問控制時,了解這兩種訪問控制機制之間的關(guān)系是很重要的.

                    當(dāng)一個客戶請求連接時, xinetd控制下的事件發(fā)生順序如下:

                            1.xinetd守護(hù)進(jìn)程通過使用libwrap.a庫呼叫來訪問TCP Wrappers主機訪問規(guī)則.如果一個拒絕規(guī)則匹配這個客戶,那么連接就被放棄.如果一個允許規(guī)則匹配這個客戶的話,該連接就被傳遞給xinetd.

                            2.xinetd守護(hù)進(jìn)程檢查其本身的訪問控制規(guī)則,這種檢查既為xinetd服務(wù),也為被請求的服務(wù).如果一個拒絕規(guī)則匹配這個客戶,那么連接就被放棄.否則,xinetd 就啟動這項被請求的服務(wù),并讓連接連到那項服務(wù)上.

                   

                    2.4.捆綁和重定向選項

                    xinetd服務(wù)配置文件支持將這項服務(wù)捆綁到一個IP地址上,并且把那項服務(wù)的外來請求重定向到另外一個IP地址,主機名或端口.

                    捆綁服務(wù)用特定化服務(wù)配置文件中的bind選項來控制,并把該服務(wù)鏈接到系統(tǒng)上的一個IP地址.捆綁配置好后,bind選項只允許到合法IP地址的請求來訪問該服務(wù).你可以使用這種方法把不同服務(wù)根據(jù)要求捆綁到不同的網(wǎng)絡(luò)接口.

                    這對擁有多重網(wǎng)絡(luò)適配器或多個IP地址的系統(tǒng)尤其有用.在這樣的系統(tǒng)內(nèi),不安全的服務(wù)(比如Telnet)可以配置成只用來偵聽連接到某專用網(wǎng)的接口而不偵聽連接到互聯(lián)網(wǎng)(Telnet)的接口.

                    redirect選項接受后面帶有端口號的IP地址或主機名,并配置這項服務(wù)來把連接到這項服務(wù)的任何請求都重定向到指定的主機和端口號.重定向的這一特 征可以用來把請求改向到同一個系統(tǒng)上的另一個端口,重定向到同一臺機器上的一個不同IP地址,或轉(zhuǎn)移到一個完全不同的系統(tǒng)和端口號,以及這些選項的任何結(jié) 合.因此,一個系統(tǒng)上要連接到某項服務(wù)的用戶可能會被路由到另外一個系統(tǒng),而無須中斷目前的系統(tǒng).

                    xinetd守護(hù)進(jìn)程要完成這樣的重定向需要不斷復(fù)制這樣一個過程:發(fā)出請求的客戶主機和實際提供這項服務(wù)的主機在連接期間要保持活動狀態(tài)并且兩個系統(tǒng)之間不斷要有數(shù)據(jù)的傳輸轉(zhuǎn)移.

                    bind和redirect選項一起使用時,其優(yōu)勢最為明顯.如果把一項服務(wù)捆綁到一個系統(tǒng)的某特定的IP地址,然后再把對該服務(wù)的請求重定向到只有第一 個機器可以看見的第二個機器上,那么可以使用內(nèi)部系統(tǒng)來為一個完全不同的網(wǎng)絡(luò)提供這些服務(wù).還有其它用途,比如這些選項可以用來限制在一個多處為家的機器 上某特定服務(wù)與一個已知IP地址的連接時間,也可以用來把對那項服務(wù)的任何請求重定向到另外一臺專門為那項服務(wù)配置的機器.

                    例如,考慮這樣一個系統(tǒng),一個為其Telnet服務(wù)而設(shè)定的被用作防火墻的系統(tǒng):

                            service telnet

                            {

                                    socket_type             = stream

                                    wait                    = no

                                    server                  = /usr/kerberos/sbin/telnetd

                                    log_on_success          += DURATION USERID

                                    log_on_failure          += USERID

                                    bind                    = 123.123.123.123

                                    redirect                = 10.0.1.13 23

                            }

                    這個文件中的bind和redirect選項保證那臺機器上的Telnet服務(wù)被捆綁到外部IP地址(123.123.123.123),面向互聯(lián)網(wǎng)的那 個地址.另外,任何發(fā)送到123.123.123.123的Telnet服務(wù)請求都會通過第二個網(wǎng)絡(luò)適配器重定向到一個內(nèi)部IP地址 (10.0.1.13),這個地址只有防火墻和內(nèi)部系統(tǒng)可以訪問.這個防火墻就傳輸這兩個系統(tǒng)之間的通訊交流,可是該連接系統(tǒng)卻認(rèn)為連接的是 123.123.123.123,而實際上連接的是一個不同的機器.

                    這一特征對使用寬帶連接又只有一個固定的IP地址的用戶尤其有用.使用NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換)時,網(wǎng)關(guān)機器背后的使用內(nèi)部專用IP地址的各系統(tǒng)在該網(wǎng)關(guān)系 統(tǒng)以外是不能被使用的.然而,當(dāng)由xinetd控制的某些服務(wù)用bind和redirect選項配置時,該網(wǎng)關(guān)機器可以被用作外部系統(tǒng)和某特定被配置好來 提供該服務(wù)的內(nèi)部機器之間的服務(wù)代理.另外,多種不同的xinetd訪問控制和日志選項也可以接受額外的保護(hù).

             

                    2.5.資源管理選項

                    xinetd守護(hù)進(jìn)程可以增加一層基本的不受DoS(服務(wù)拒絕)攻擊的保護(hù).

                    下面是一個可以幫助限制類似攻擊成效的命令列表:

                            cps=,限制外來連接的速度.這個命令有兩個參數(shù):

                                    第一個參數(shù),每分鐘能夠處理的連接數(shù)目.如果處理外來連接的速度高于這個數(shù)目,該服務(wù)就會暫時中斷,默認(rèn)值是50.

                                    第二個參數(shù),服務(wù)中斷幾秒中之后才能重新啟動該服務(wù),其默認(rèn)間隙是10秒鐘.

                            instances,指明一項服務(wù)所能允許的連接總數(shù).這項命令接受任何整數(shù)數(shù)值或UNLIMITED.

                            per_source,指明一臺主機所能允許的一項服務(wù)的連接總數(shù).這項命令接受任何整數(shù)數(shù)值或UNLIMITED.

                            rlimit_as,以千字節(jié)或MB為單位指明該服務(wù)所占用的內(nèi)存空間.這項命令接受任何整數(shù)數(shù)值或UNLIMITED.

                            rlimit_cpu,以秒為單位指明一項服務(wù)所占用 CPU 的時間總量.這項命令接受任何整數(shù)數(shù)值或UNLIMITED.

                            max_load,定義CPU用量或一項服務(wù)負(fù)載平均限量值.它接受一個非固定點的數(shù)值參數(shù).負(fù)載平均是對某一時間內(nèi)系統(tǒng)有多少進(jìn)程處于活動狀態(tài)的一個大 體測量.請參閱 uptime、who 和 procinfo 命令來獲取關(guān)于負(fù)載平均的更多信息.

                    還有很多可以使用的資源管理選項可以用來管理xinetd.可參閱xinetd.conf man page來獲取更多信息.

             

                    2.6.有用的網(wǎng)站

                            http://www.xinetd.org/,xinetd 的主頁,含有配置文件示例,配置文件特點的詳細(xì)列表和一個很有用的FAQ.

                            http://www.macsecurity.org/resources/xinetd/tutorial.shtml,一部詳細(xì)的學(xué)習(xí)指南,討論多種不同方式來優(yōu)化xinetd默認(rèn)配置文件以滿足特定的安全需要.

            posted on 2009-08-20 12:51 旅途 閱讀(1167) 評論(5)  編輯 收藏 引用 所屬分類: LINUX基礎(chǔ)、管理

            Feedback

            # re: 用TCP Wrappers和xinetd使系統(tǒng)安全 2010-06-09 12:00 Jannie19Russo

            Do you exactly know that you could have a good job in <a href="http://www.topdissertations.com">dissertation service</a> or essay writers, because different people are willing to know the smashing news connecting with this good post or <a href="http://www.topdissertations.com">custom thesis</a> so, they buy research papers online.   回復(fù)  更多評論   

            # re: 用TCP Wrappers和xinetd使系統(tǒng)安全 2013-04-09 01:32 home loans

            Houses and cars are not cheap and not every person is able to buy it. But, mortgage loans are invented to support different people in such kind of cases.   回復(fù)  更多評論   

            国产精品九九久久精品女同亚洲欧美日韩综合区 | 久久精品国产亚洲αv忘忧草| 久久久久久久97| 精品久久久久久中文字幕大豆网| 久久久久久国产a免费观看不卡| 91精品国产高清久久久久久91 | 99久久国产主播综合精品| 久久er99热精品一区二区| 无码日韩人妻精品久久蜜桃| 亚洲国产成人精品91久久久| 亚洲国产香蕉人人爽成AV片久久 | 国内精品伊人久久久久网站| 国产成人精品久久综合| 精品一久久香蕉国产线看播放| 久久se这里只有精品| 久久久久女教师免费一区| 日日狠狠久久偷偷色综合免费| 亚洲成av人片不卡无码久久| 久久国产劲爆AV内射—百度| 久久无码人妻一区二区三区| 女人香蕉久久**毛片精品| 精品无码久久久久久国产| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 亚洲色欲久久久综合网| 国产精品久久久久久久| 国产伊人久久| 久久这里只有精品首页| 国产精品一区二区久久精品| 久久精品无码一区二区三区日韩| 久久久国产99久久国产一| 亚洲狠狠婷婷综合久久蜜芽| 狠狠色丁香婷婷久久综合不卡| 欧美精品福利视频一区二区三区久久久精品 | 人妻无码精品久久亚瑟影视 | 久久精品中文字幕大胸| 99久久无色码中文字幕| 午夜精品久久久久成人| 久久综合九色综合97_久久久| 亚州日韩精品专区久久久| 国产精品久久一区二区三区| 伊人久久亚洲综合影院|