訪問控制 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表示無限制
cps 限制對這個服務的訪問速率的 格式:cps=50 10 表示在某個時刻 只允許50個進來,再進來的需要等候10秒鐘 )