日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux超级服务器inetd详解

發布時間:2023/12/20 linux 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux超级服务器inetd详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.引言:

它可以為多種服務管理連接,當?inetd?接到連接時,它能夠確定連接所需的程序,啟動相應的進程,并把?socket?交給它?(服務socket?會作為程序的標準輸入、 輸出和錯誤輸出描述符)。 使用?inetd?來運行那些負載不重的服務有助于降低系統負載,因為它不需要為每個服務都啟動獨立的服務程序。
  一般說來,?inetd?主要用于啟動其它服務程序,但它也有能力直接處理某些簡單的服務, 例如?chargen、?auth, 以及daytime。

inetd?是通過rc系統啟動的。?inetd_enable?選項默認設為?NO,但可以在安裝系統時, 由用戶根據需要通過?sysinstall?來打開。

inetd.conf則是inetd的配置文件。?inetd.conf文件告訴inetd監聽哪些網絡端口,為每個端口啟動哪個服務。在任何的網絡環境中使用Linux?系統,第一件要做的事就是了解一下服務器到底要提供哪些服務。不需要的那些服務應該被禁止掉,最好卸載掉,這樣黑客就少了一些攻擊系統的機會。查看?“/etc/inetd.conf”文件,了解一下inetd提供哪些服務。用加上注釋的方法(在一行的開頭加上#號),禁止任何不需要的服務,再給?inetd進程發一個SIGHUP信號。

inetd提供一種簡單的方法是應用程序具有網絡功能?
  對于TCP服務器,inetd監聽在應用程序已知的端口上,監聽鏈接請求,接受連接,映射鏈接到標準輸入,標準輸出和標準錯誤輸出,啟動適當的服務器.
  對于UDP服務器,當UDP服務器的已知端口上數據可讀時,inetd要求操作系統通知他,知道inetd啟動的服務器中止,inetd再在已知端口上進行下一步操作。

2.超級服務器的工作原理:

由于服務器套接字初始化方式非常類似,所以可以設計一個專門的服務器負責初始化工作,并且它將根據接入端口不同調用相應的服務程序進行工作,這些服務程序在未被接入前都處于睡眠等待狀態。采用超級服務器的方式可以讓服務器程序采用統一方式管理。

?超級服務器將采用select的方式并發檢測在文件/etc/inetd.conf中說明的TCP/UDP端口,一旦發現有客戶接入就創建一個子進程。超級服務器inetd是服務接入者,它在創建字進程時候調用exec()載入具體的服務程序。在子進程中關閉傾聽套接字,父進程中關閉連接套接字,于是父進程繼續檢測,子進程開始為客戶端進行服務。對于wait服務程序,超級服務器inet載入它時候將其在檢測集合中刪除,等待該服務結束后才能接入下次服務。服務程序完畢后將發送SIGCHLD信號,超級服務器將其繼續加入檢測集合。當系統管理員修改超級服務器配置文件后將發送SIGHUP信號,超級服務器將重新初始化。

inetd是監視一些網絡請求的守護進程,其根據網絡請求來調用相應的服務進程來處理連接請求。

3./etc/inetd.conf配置文件:

Inetd.conf文件是Linux系統中的重要文件之一。它保存了系統提供internet服務的數據庫。通過這個文件,你可以對這些服務加以控制,如打開/關閉某項服務,使它們更為安全的運行等等很多。希望這篇文章能盡量解釋地完整。

1)域

在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”。

2)服務

現在來看一下不同的服務,以便加深理解。?

?telnet???stream???tcp??????;nowait???root?????/usr/sbin/tcpd???in.telnetd

*?服務名:???telnet

*?套接字類型:???stream

*?協議類型:???tcp

* Wait/Nowait[.max]: nowait

*?用戶名[.組]:???root

*?服務程序:???/usr/sbin/tcpd

*?參數:???in.telnetd

3) 開啟&?關閉 服務

非常簡單,只要在想要關閉的服務前面加上一個#,比如想要關閉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

4.?守護進程

有時候在服務程序參數域中,你會看到一些選項,如:

smtp stream???tcp??????nowait???root?????/usr/sbin/sendmail?????sendmail -bs

在上一行的末尾,有“-bs”!?,表明使用b和s參數,這同使用下面的命令有著同樣的效果:

hoodl um:~ # sendmail -bs

因此,如果你想為守護進程使用某項參數,只要把它們加入到服務程序參數域就可以了。具體的參數可以通過man進行查詢。

5. 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內含禁止訪問服務的主機。

總結

以上是生活随笔為你收集整理的linux超级服务器inetd详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。