一、xinetd簡介
1、什麼是xinetd
xinetd:eXtended InterNET Daemon 擴充的網際網路守護程式
xinetd是新一代的網絡守護程序服務程式,又叫超級守護程序,常用來管理多種輕量級Internet服務。xinetd提供類似于inetd + tcp_wrapper的功能,但是更加強大和安全。
2、Xinetd的缺點
目前最大的缺點是對RPC支援的不穩定,但是可以啟動protmap,使它與xinetd共存來解決這個問題。
3、使用xinetd啟動守護程序
原則上任何系統服務都可以使用xinetd,然而最适合的應該是那些常用的網絡服務,同時,這個服務的請求數目和頻繁程度不會太高。像DNS和Apache就不适合采用這種方式,而像FTP、Telnet、SSH等就适合使用xinetd模式。
二、xinetd的使用
xinetd為接收使用者請求較少的服務專門提供監聽功能,有請求時,xinetd臨時地啟動相應服務并響應請求,結束後又關掉相應的服務。
這種被xinetd管理的服務叫非獨立守護程序又被稱為瞬時守護程序:他們無需定義在運作級别下,隻需要一次性地定義xinetd的運作級别
能自我管理,無需xinetd提供監聽服務的程序叫獨立(standalone)守護程序
1、那如何啟動基于xinetd的服務?
例如,我想啟動rsync服務
在/etc/inetd.d/目錄下每個被xinetd管理的服務都有一個配置檔案:
我們可以總結出:
非獨立守護程序和獨立守護程序不一樣,非獨立守護程序使用chkconfig既然設定開機是否運作,也設定服務目前開啟和關閉,而獨立守護程序chkconfig是僅設定開機在哪些運作級别下是否運作
瞬時守護程序依賴于xinetd監聽端口,當xinetd服務沒啟動時,非獨立守護程序啟動着也沒用
二、tcp_wrapper
1、tcp_wrapper簡介
tcp_wrapper tcp包裝器,
是一種通路控制工具,類似于iptables,可以作通路控制。
tcp_wrapper隻能對基于tcp協定的服務作通路控制,但并不是所有基于tcp協定的服務都能實作用tcp wraper作通路控制。
2、tcp_wrapper工作機制
守護程序:tcpd,也可以說tcp_wrapper是一個庫,程式依賴于tcp_wrapper就表明接受tcp_wrapper控制
配置檔案:/etc/hosts.allow,/etc/hosts.deny
注意:
并非所有服務均能由tcp_wrapper控制
判斷某服務程式是否能由tcp_wrap控制
動态編譯:
ldd指令檢測其是否連結至libwrap庫上即可
libwarp.so.0 =>/lib64/libwarp.so.0
靜态編譯:
string /path/to/program
如果出現以下某項說明也接受tcp_wrapper控制
hosts.allow
hosts.deny
tcp_wrapper實作通路控制主要依靠兩個檔案,一個是/etc.hosts.allow檔案,另一個是/etc/hosts.deny檔案從檔案的名字上可以了解:一個是定義允許的,一個是定義拒絕的。那這兩個檔案生效的次序是怎樣的呢?
說明:如圖所示,N表示沒有比對的規則,Y表示有比對的規則,OK表示允許通路,DENY表示拒絕通路。
比對機制:
1.先檢查/etc/hosts.allow,如果被允許,則直接放心
2.如果/etc/hosts.allow沒有比對項,則檢查/etc/hosts.deny,如果被拒絕,則禁止通路;
3.如果二者均無比對,則放行
3、tcp_wrapper配置
配置檔案文法格式:
daemon_list:client_list [:options]
程序清單:用戶端清單
daemon_list的格式:
應用程式名稱(不是程序名),如果有多個,用逗号分隔即可
ALL:比對所有的清單
client_list:
ip位址:172.16.100.100
主機名:www.magedu.com
網絡位址/子網路遮罩:掩碼僅允許使用長格式,不允許使用CIDR格式
172.16. 表示172.16.0.0/255.255.0.0
[:options]
在hosts.allow檔案中使用deny選項:表示在hosts.allow檔案中定義拒絕規則
在hosts.deny檔案中使用allow選項:表示在hosts.deny檔案中定義放行規則
tcp_wrapper有幾個内置的宏:
用于client_list的有:ALL,KNOWN(主機名能正常解析的),UNKNOWN(主機名不能正常解析),PARANOID(主機名正反項解析不比對的)
用于daemon_list的有:ALL
EXCEPT:可以使用者client和daemon之中,起到排除功能
例子:
spawn
發起執行一條指令的意思,可以用來記錄日志
%c:user@host
%s:server@host
%h:用戶端主機名
%p:伺服器上的程序PID
man 5 hosts_access:擷取其完整幫助資訊
注意:
spaw要定義在用戶端被哪個檔案拒絕的那個檔案裡才生效
echo的資訊無需加引号,否則,指令替換可能不會進行
練習:
使用tcp_wrapper控制vsftp服務僅允許172.16.0.0網絡中的主機通路,但要拒絕172.16.200.中的所有主機,對所有的拒絕通路嘗試使用記錄日志