xinetd - Linux中的網路相關服務
1.什麼是xinetd?
??大家對被稱作超級伺服器的Inetd一定很熟悉,其實現控制對主機網路連線。當一個請求到達由Inetd管理的服務埠,Inetd將該請求轉發給名為tcpd的程式。Tcpd根據配置檔案hosts.{allow, deny}來判斷是否允許服務該請求。如果請求被允許則相應的伺服器程式(如:ftpd、telnetd)將被啟動。這個機制也被稱作tcp_wrapper.
??xinetd(eXtended InterNET services daemon)提供類似於inetd+tcp_wrapper的功能,但是更加強大和安全。它能提供以下特色:
支援對tcp、ucp、RPC服務(但是當前對RPC的支援不夠穩定)
基於時間段的訪問控制
功能完備的log功能,即可以記錄連線成功也可以記錄連線失敗的行為
能有效的防止DoS攻擊(Denial of Services)
能限制同時執行的同意型別的伺服器數目
能限制啟動的所有伺服器數目
能限制log檔案大小
將某個服務繫結在特定的系統介面上,從而能實現只允許私有網路訪問某項服務
能實現作為其他系統的代理。如果和ip偽裝結合可以實現對內部私有網路的訪問
??它最大的缺點是對RPC支援的不穩定性,但是可以啟動protmap,與xinetd共存來解決這個問題
2.編譯安裝
??可以從下載xinetd,當前最新的版本是xinetd 2.1.8.8p3。預設編譯和安裝xinetd是非常簡單的,按照如下的步驟進行:
??#./configure; make; make install
即可完成。
??在進行configure時,可以支援如下幾個有用處的選項:
--with-libwrap : 如果使用該選項xinetd將會察看tcpd配置檔案(/etc/hosts.{allow, deny})來進行訪問控制,但是如果要利用該功能,系統上必須安裝有tcp_wrapper和相關庫。
--with-loadavg : 使用該選項,xinetd將而已處理max-load配置選項。從而在系統負載過重時關閉某些服務程式,來實現某些DoS攻擊。
--with-inet6 : 使用該選項xinetd將支援IPv6。
??如果是是用redhat7.0,則其預設將安裝xinetd,而不需要自行安裝。
3.配置
??xinetd的預設配置檔案是/etc/xinetd.conf。其語法和/etc/inetd.conf完全不同且不相容。它本質上是/etc/inetd.conf和/etc/hosts.allow,/etc/hosts.deny功能的組合。/etc/xinetd.conf中的每一項具有下列形式
??service service-name
??{
?? ……。
??}
??其中service是必需的關鍵字,且屬性表必須用大括號括起來。每一項都定義了由service-name定義的服務。
??Service-name是任意的,但通常是標準網路服務名,也可增加其他非標準的服務,只要它們能透過網路請求啟用,包括localhost自身發出的網路請求。有很多可以使用的attribute,在下表中進行了詳細的說明。稍後將描述必需的屬性和屬性的使用規則。
??運算子可以是=,+=,或 -=。所有屬性可以使用=,其作用是分配一個或多個值,某些屬性可以使用+=或-=的形式,其作用分別是將其值增加到某個現存的值表中,或將其值從現存值表中刪除。表10.10中說明了可以用後一種形式的屬性。
??Value是為給定屬性設定的引數。
??表1 擴充套件的lnernet服務程式屬性
??Socket_type
??使用的TCP/IP socket型別,值可能為stream(TCP), dgram(UDP), raw和seqpacket(可靠的有序資料包)
??protocol
??指定該服務使用的協議,其值必須是在/etc/protocols中定義的。如果不指定,使用該項服務的預設協議。
??Server
??要啟用的程式,必須指定完整路徑
??Server_args
??指定傳送給該程式的引數,但是不包括服務程式名
??Port
??定義該項服務相關的埠號。如果該服務在/etc/services中列出,它們必須匹配
??Wait
??這個屬性有兩個可能的值。如果是yes,那麼xinetd會啟動請的程式並停止處理該項服務的請求直到該程式終止。這是個單執行緒服務。如果是no,那xinetd會為每個請求啟動的一個程式,而不管先前啟動的程式的狀態。這是個多執行緒服務
??User
??設定服務程式的UID,但是若xinetd的有效UID不是0,該屬性無效
??Group
??設定程式的GID。若xinetd的有效UID不是0,這個屬性無效
??Nice
??指定程式的nice值
??Id
??該屬性被用來唯一地指定一項服務。因為有些服務的區別僅僅在於使用不同的協議,因此需要使用該屬性加以區別。預設情況下服務id和服務名相同。如echo同時支援dgram和streama服務。設定id=echo_dgram和id=echo_streams來分別唯一標識兩個服務
??Type
??可以是下列一個或多個值:RPC(對RPC服務),INTERNAL(由由xinetd自身提供的服務,如echo),UNLISTED(沒有列在標準系統檔案如/etc/rpc或/etc/service中的服務)
??Access_time
??設定服務可用時的時間間隔。格式是hh:mm_hh:mm; 如08:00-18:00意味著從8A.M到6P.M.可使用這項服務
??Banner
??無論該連線是否被允許,當建立連線時就將該檔案顯示給客戶機
??Flags
??可以是以下一個或多個選項的任意組合:
REUSE:設定TCP/IP socket可重用。也就是在該服務socket中設定SO_REUSEADDR標誌。當中斷並重新啟動xinetd
INTERCEPT:截獲資料包進行訪問檢查,以確定它是來自於允許進行連線的位置。不能和INTERNAL服務和多執行緒服務不可使用該屬性值
NORETRY:如果fork失敗,不重試
IDONLY: 只有在遠端端識別遠端使用者時才接受該連線(也就是遠端系統必須執行ident伺服器),該標記只適用於面向連線的服務。若沒有使用USERID記錄選項則該標記無效log_on_success和/或log_on_failure屬性設定USERID值以使該值生效。僅用於多執行緒的流服務
NAMEINARGS:允許server_args屬性中的第一個引數是程式的完全合格路徑,以允許使用TCP_Wrappers
NODELAY:若服務為tcp服務,並且NODELAY標記被設定,則TCP_NODELAY標記將被設定。若服務不是tcp服務則該標記無效
??Rpc_version
??指定RPC版本號或服務號。版本號可以是一個單值或者一個範圍中如2-3
??rpc_number
??如果RPC程式號不在/etc/rpc中,就指定它
??Env
??用空格分開的VAR=VALUE表,其中VAR是一個shell環境變數且VALUE是其設定值。這些值以及xinetd的環境都在啟用時傳送給服務程式。這個屬性支援=和+=運算子
??Passenv
??用空格分開的xinetd環境中的環境變數表,該表在啟用時傳遞給服務程式。設定no就不傳送任何變數。該屬性支援所有運算子
??Only_from
??用空格分開的允許訪問服務的客戶機表。表2種給出客戶機語法。如果不為該屬性指定一個值,就拒絕訪問這項服務。該屬性支援所有運算子。
??No_access
??用空格分開的拒絕訪問服務的客戶機表。表2給出客戶機語法。該屬性支援所有運算子
??Instances
??接受一個大於或等於1的整數或UNLIMITED。設定可同時執行的最大程式數。UNLIMITED意味著xinetd對該數沒有限制。
??Log_type
??指定服務log記錄方式,可以為:
SYSLOG facility[level]:設定該工具為daemon,auth,user或loca10-7。設定level是可選的,可以的level值為emerg,alert,crit,err,warning,notice, info, debug,預設值為info
file[soft[hard]]:指定file用於記錄log,而不是syslog。限度soft和hard用KB指定(可選)。一旦達到soft限,xinetd就登記一條訊息。一旦達到hard限,xinetd停止登記使用該檔案的所有服務。如果不指定hard限,它成為soft加1%,但預設時不超過20MB.預設soft限是5MB
??Redirect
??該屬性語法為redirect=Ipaddress port。它把TCP服務重定向到另一個系統。如果使用該屬性,就忽略server屬性
??Bind
??把一項服務繫結到一個特定埠。語法是bind=Ipaddress。這樣有多個介面(物理的或邏輯的)的主機允許某個介面但不是其他介面上的特定服務(或埠)
??Log_on_success
??指定成功時登記的資訊。可能值是
PID:程式的PID。如果一個新程式沒被分叉,PID設定為0。
HOST:客戶機主機IP地址
USERID:透過RFC1413高用捕獲客戶機使用者的UID。只可用於多執行緒流服務。
EXIT:登記程式終止和狀態
DURATION:登記會話持續期
??預設時不登記任何資訊。該屬性支援所有運算子
??Log_on_failure
??指定失敗時登記的資訊。總是登記表明錯誤性質的訊息。
ATTEMPT:記錄一次失敗的嘗試。所有其他值隱含為這個值。
HOST:客戶機主機IP地址
USERID:透過RFC1413呼叫捕獲客戶機使用者的UID。可用於多執行緒流服務。
RECORD:記錄附加的客戶機資訊如本地使用者,遠端使用者和終端的型別。預設時不登記任何資訊。該屬性支援所有運算子。
??Disabled
??只可用於defaults項(參看本小節後面的defaults項),指定被關閉的服務列表,是用空格分開的不可用服務列表來表示的。它和在/etc/xinetd.conf檔案中註釋掉該服務項有相同的效果。
文章轉載自網管之家:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-679594/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python 網路服務相關 雜記Python
- Linux網路服務 ------------------ 瞭解網路設定與學習相關操作命令Linux
- 網路安全中,Web中介軟體/服務埠有哪些相關知識?Web
- 【linux】命令-網路相關Linux
- Linux網路相關命令Linux
- Nacos服務相關
- 在Linux中,如何進行網路服務的監控?Linux
- 『學了就忘』Linux服務管理 — 77、RPM包安裝基於xinetd的服務的管理Linux
- 面試中網路相關題目面試
- linux網路相關配置檔案Linux
- 網路相關
- 《Linux防火牆(第4版)》——2.6 私有網路服務VS公有網路服務Linux防火牆
- linux下重啟網路服務Linux
- Linux 程式和網路埠相關命令Linux
- 面試中必備的網路相關知識面試
- 工信部:2018年1-10月網際網路和相關服務業保持穩中向好
- Ubuntu關閉(重啟)網路服務命令Ubuntu
- 網路流相關
- 【linux】相關之網路IP地址與子網的劃分Linux
- DeepField:資料表示Google的相關服務佔據了北美網際網路流量的1/4Go
- Linux系統學習(四)Linux網路服務Linux
- 簡要介紹Linux網路服務的種類Linux
- Linux網路服務之部署YUM倉庫Linux
- 配置虛擬機器中的Linux系統與開啟網路服務虛擬機Linux
- 工信部:2021年1-11月份網際網路和相關服務業執行情況
- 中國信通院:2022年網際網路和相關服務業執行情況
- 網路著作權的相關法律
- iOS探索:網路相關iOS
- 網路相關知識
- 【Linux】Linux網路配置基礎1 網路相關命令與網路卡配置檔案Linux
- 快速上手Linux核心命令(八):網路相關命令Linux
- 工信部:2020年一季度網際網路和相關服務業執行情況
- 工信部:2020年1-4月網際網路和相關服務業執行情況
- 工信部:2019年一季度網際網路和相關服務業執行情況
- 工信部:2019年1-5月網際網路和相關服務業執行情況
- 工信部:2020年1-7月網際網路和相關服務業執行情況
- 工信部:2023年一季度網際網路和相關服務業執行情況
- 工信部:2020年1-8月網際網路和相關服務業執行情況