inetd.conf文件淺析
1、前言
Inetd.conf文件是Linux系統中的重要文件之一。它保存了系統提供internet服務的數據庫。通過這個文件,你可以對這些服務加以控制,如打開/關閉某項服務,使它們更為安全的運行等等很多。希望這篇文章能盡量解釋地完整。
2、域
在inetd.conf文件中每項有效的條目中都應該包含以下的域。
*服務名
* 套接字類型
* 協議類型
* wait/nowait[.max]
* 用戶名[.組]
* 服務程序
* 服務程序的參數
當然如果你要定義Sun-RPC服務,在inetd.conf文件則需要以下的類型域:
* 服務名/版本
* 套接字類型
* rpc/協議類型
* wait/nowait[.max]
* 用戶名[.組]
* 服務程序
* 服務程序的參數
服務名是在/etc/services文件中經過定義的有效服務名稱(如telnet,echo等)。如果服務被用來定義Sun-RPC服務,它就必須在/etc/rpc文件中定義。
套接字類型域包含以下幾種:
* stream - stram
* dgram - datagram
* raw - raw
* rdm - reliabl! y delivered message
* seqpacket - sequenced packet
此域取決於使用何種的套接字類型.
協議類型域必須是已經在/etc/protocols文件中定義過的類型。最常見的是tcp和udp,Sun-RPC服務要在協議前加上“rpc/”(如rpc/tcp或者rpc/udp)
Wait/nowait域只用於數據報套接字,其它的都使用nowait參數。如果服務是多線程的,意味著在與對端建立連接後將釋放套接字,
inetd進程可以通過些套接字接收更多的消息,這時些用“nowait”條目。如果服務是單線程,表示服務將在同一個socket中處理所有的外來數據
報,直到超時,這種情況下使用“wait”條目。Max參數,用一個點與wait/nowait隔開,定義了inetd進程在一分鐘之內最大產生的實例數
目。
用戶域定義了服務的使用者。組參數,通過點與用戶名隔開,定義了除/etc/passwd文件中之外的可以運行服務的組ID。
服務程序是在套接字請求時執行的程序的完整路徑。如果是inted進程內置的服務,此處應為“internally”。
服務程序參數提供程序運行的所需的參數,同樣的,如果是內置服務,此處也為“internally”。
3、服務
現在來看一下不同的服務,以便加深理解。 telnet stream tcp ;nowait root /usr/sbin/tcpd in.telnetd
* 服務名: telnet
* 套接字類型: stream
* 協議類型: tcp
* Wait/Nowait[.max]: nowait
* 用戶名[.組]: root
* 服務程序: /usr/sbin/tcpd
* 參數: in.telnetd
echo dgram udp wait root internal
* 服務名: echo
* 套接字類型: dgram
* 協議類型: udp
* Wait/Nowait[.max]: wait
* 用戶名[.組]: root
* 服務程序: internal
rstatd/1-3 dgram rpc/udp wait root /usr/sbin/tcpd rpc.rstatd
* 服務名: rstatd/1-3
* 套接字類型: dgram
* 協議類型: rpc/udp
* Wait/Nowait[.max]: wait
* 用戶名[.組]: root
* 服務程序: /usr/sbin/tcpd
*&nb! sp;參數: rpc.rstatd
4、開啟& 關閉 服務
非常簡單,只要在想要關閉的服務前面加上一個#,比如想要關閉23端囗,被telnet使用,只要象下面這樣。
#telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
這時,telnet服務已經關閉了,以後,如果我想讓朋友通過telnet訪問我的計算機,我只需要把#去掉,就象這樣。
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
這時,telnet服務又被開啟,就是這麼簡單。重新啟動inetd進程讓改動生效,用下面的命令。
james:~ # killall -HUP inetd
5、守護進程
有時候在服務程序參數域中,你會看到一些選項,如:
smtp stream tcp nowait root /usr/sbin/sendmail sendmail -bs
在上一行的末尾,有“-bs”! ,表明使用b和s參數,這同使用下面的命令有著同樣的效果:
hoodl um:~ # sendmail -bs
因此,如果你想為守護進程使用某項參數,只要把它們加入到服務程序參數域就可以了。具體的參數可以通過man進行查詢。
6、TCP Wrappers
TCP Wrappers是保護網絡服務的應用,通常用在第6列-服務程序域。
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
TCP Wrappers使用兩個文件,/etc/hosts.allow和/etc/hosts.deny,限制某項服務的使用。Hosts.allow文件內是允許訪問服務的主機列表,hosts.deny內含禁止訪問服務的主機。