通路控制 tcpwrapper來實作 它是工作在傳輸層,對于進出本主機的通路某特定服務的連接配接基于規則進行檢查的通路控制工具 以庫檔案的形式來實作的 (libwrap.so) 某程序是否接受libwrap的控制取決于發起此程序的程式在編譯時是否針對libwrap進行編譯的。
使用ldd 檢視依賴關系 是否依賴于libwrap.so 例如ldd `which sshd` | grep libwrap
或者使用strings檢查這個二進制檔案編譯時編譯進來的屬性資訊 看是否把libwrap以靜态編譯進此程式 例如 strings `which portmap` | grep hosts
/etc/hosts.allow /etc/hosts,deny如果有着兩個檔案的話 說明受tcpwrapper控制
TCP WRAPPER兩個重要配置檔案 /etc/hosts.allow /etc/hosts.deny
格式:daemon_list: client_list: [:options]
預設規則是允許。 比對所有服務用ALL
daemon_list 要寫成二進制檔案的名字 例如 不能寫http 要寫httpd
client_list:接受ip位址 例表示網段可以寫成192.168.1. ; 接受基于網絡和掩碼的(不被允許192.168.1.0/24,允許192.168.1.0/255.255.255.0) ; 可以使用主機名稱來表示 例www.a.com,或者.a.com(很少用到) ; 基于NIS域的方式來實作 例@notexample
telnet基于tcp實作 監聽23端口 程序:in.telnetd, telnet-server
先啟動超級守護程序 xinetd 開啟某個服務chkconfig xinted on
所有接受超級守護程序管理的非獨立守護程序都在/etc/xinetd.d目錄下
接受的指令ALL LOCAL UNKNOWN KNOWN PARANOID EXCEPT除了
EXCEPT還可以表示嵌套 例如:hosts.deny中寫ALL EXCEPT192.168.1.0 EXCEPT192.168.1.1表示都被拒絕除了1.0網段但是除了1.1 說明1.1被拒絕
spawn twist 定義具體内容 severity 用于定義通路日志的級别
banners 建立個目錄在檔案中寫些資訊 用banners調用
超級守護程序 xinetd
xinetd 是個程序 代為管理一些不常通路的服務 以節省資源
telnet:23 提供telnet二進制程式在/usr/sbin/in.telnetd
xinetd也是個程序 主配置檔案在/etc/xinetd.conf
凡是寫在/etc/xinetd.d目錄下的檔案都被認為是配置檔案的一部分 因為在/etc/xinetd.conf中最後一行有includedir /etc/xinetd.d/* 每一個檔案都代表一個服務
啟動超級守護程序腳本 /etc/init.d/xinetd
service 後面定義服務 裡面一些選項
(disable 定義服務是否被啟用
socket_type 套接字類型 兩種:stream基于tcp的服務 dgram基于udp的連結
protocol 定義服務對應的協定
wait =no或者yes 用于确定目前服務是單線程還是多線程 yes表示單線程服務,必須基于tcp的協定 no表示多線程服務
user 啟動服務時以哪個使用者的身份運作并啟動它
server 用于啟動這個二進制的程式是誰
only_from 僅允許來自于哪些位址的用戶端來通路目前服務 不做限制預設允許所有
no_access 僅拒絕 做黑名單,明确定于哪些位址不允許通路
access_times 定義在什麼時間可以通路服務 格式:hour:min-hour:min
log_type 日志類型 log_on_success log_on_fail
bind 用于定義服務隻監聽在什麼位址上的 或者用interface來指定
banner 格式banner=某個檔案 用于啟動服務時顯示哪個檔案資訊
per_source 用于限制來源于同一個ip位址時最多能允許多少個并發連接配接 UNLIMITED表示無限制