2021-05-12 14:32:11
Linux中super daemon組態檔/etc/xinetd.d/
2020-06-16 17:14:35
在Linux系統中有一個用於管理其他服務的管理進程,它的作用是把某一些本身不具有管理機制或進程守護和防火牆管理的服務通過xinetd來管理。所以說xinetd是在Linux中舉足輕重的一個服務,在系統中xinetd的主要組態檔是:/etc/xinetd.conf,而一些系統自帶,或者是自定義的組態檔一般都放在/etc/xinetd.d/資料夾裡,通常組態檔的格式是這樣的:
service <service_name>
{
<attribute> <assign_op> <value> <value> ...
...
}
其中<service_name>是定義/etc/services檔案中相關的服務用來確定啟用那個埠,所以如果自行編譯安裝的軟體可以在/etc/services檔案中檢視下是否有相應的埠對應關係;<attribute>功能屬性引數;<assign_op>引數的設定方法,而<assign_op>支援普通的賦值運算,所以通常<assign_op>都是這些形式的:
=:直接賦值使用後面的引數
+=:後面的設定在原來的設定裡加入新的引數
-=:在原來的設定中刪除這裡賦值的引數
而xinetd中的常用的attribute和value如下:
attribute(功能屬性) | value說明 |
---|---|
disable(是否啟動) | [yes|no],預設是disable=yes,disable是禁用的意思 |
id(服務的名字) | [name]雖然在<service_name>中定義了服務的名字,不過在之後如果有重複使用,在這裡定義唯一標識 |
server(程式的檔名) | [PATH]在這裡需要寫上服務程式的二進位制檔案的絕對路徑 |
server_args(程式引數) | [argv]在這裡寫上二進位制檔案使用的引數與server配合使用 |
user(服務所屬的UID) | [UID]用於指定服務用哪個使用者啟動,不要要注意的是uid必需存在於/etc/passwd中 |
group(服務所屬的GID) | [GID]意思同上,GID必需存在於/etc/group中 |
socket_type(封包型別) | [stream|dgram|raw|seqpacket],stream為提供可靠的封包,即tcp封包;dgram為提供不可靠的封包,即udp封包;raw為直接使用ip互動的服務;seqpacket為使用連續可靠的封包連線 |
protocol(封包型別) | [tcp|udp]通常都用socket_type所指定,所以一般不用 |
wait(連線機制) | [yes(single)|no(multi)],用於確定服務啟動時單進程還是多進程,udp / dgram服務通常期望值為yes,而tcp / stream伺服器通常期望該值為no,用於防禦DDOS |
instances(最大連線數) | [number|UNLIMITED],用於控制服務的最大連線數 |
per_source(單使用者來源最大連線數) | [number|UNLIMITED],用於控制每個ip的最大連線數 |
cps | [2個數位],為避免短時間內大量連線導致的系統繁忙而定義的cps,其中第一個引數為一秒內能夠接受的最多連線請求,第二個數位則為若超過第一個數位則暫時關閉服務的秒數,預設第一個數位為50,第二個引數為10秒 |
log_type(紀錄檔檔案型別) | 這裡有2種格式一[SYSLOG {emerg,alert, crit, err, warning, notice, info, debug}]是用syslog的8個等級,預設是info;二是[FILE $PATH]定義紀錄檔檔案的絕對路徑 |
log_on_success log_on_failure (紀錄檔狀態) |
[PID,HOST,USERID,EXIT,DURATION,TRAFFIC,ATTEMPT],用於確定服務啟動成功或者失敗的紀錄檔,其中log_on_success中有[PID,HOST,USERID,EXIT,DURATION,TRAFFIC],而log_on_failure中有[HOST,USERID,ATTEMPT]。PID為服務啟動時的process ID;HOST為遠端主機的IP;USERID登入者的ID;EXIT為離開時的信號記錄,如果使用PID選項,則記錄進程ID;DURATION為session的持續時間,即使用者的使用時間;TRAFFIC為記錄重定向服務的總位元組數;ATTEMPT為連線失敗的記錄 |
env(定義額外變數) | [name=value]用於定義而外的環境變數 |
port(非正規埠) | [number]用於定義不在/etc/services檔案中的埠 |
redirect(服務地址) | [IP port]埠重定向轉發用戶端連線到伺服器上時轉發至別的伺服器上,這裡允許tcp的埠做轉發 |
includedir(呼叫外部設定) | [dirname]把所有的設定寫在某一個資料夾下,平時通過呼叫資料夾下的組態檔,就如/etc/xinetd.conf中的"includedir /etc/xinetd.d" |
bind(服務IP系結) | [IP]用於指定服務的唯一ip,其他IP無效 |
only_from(防火牆機制) | [address]可以用IP或者是某一個網段,hostname,domainname都可以登入,其中0.0.0.0表示允許任何主機 |
no_access(防火牆機制) | [address]同上,不過這裡是表示任何變數中的地址都不可登入 |
access_times(時間控制) | [00:00-23:59,HH:MM:-HH:MM]設定服務的啟動時間 |
umask(預設掩碼) | [umask]設定使用者建立新檔案或目錄時的umask,系統的建議值是022 |
總之xinetd在Linux系統中還是比較重要的一個服務,使用xinetd可以方便的管理程式,而它的存取控制、加強的紀錄檔和資源管理功能可以有效的阻止DDOS的攻擊當然如果需要更多的資料可以參看man xinetd.conf
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-05/144034.htm
相關文章