TCP wrapper 概略說明

藍色泡泡 18 三月, 2008 10:44 系統安全 靜態連結網址 引用 (0) 預覽列印
TCP wrapper 概述說明

附註: 本篇文章為自己備忘用,網路上已有很多很多很多相關文件,請自行搜尋.

tcp wrapper是FreeBSD預設的tcp daemon防護措施,只要開啟 inetd 服務就可以了.
開機自動執行, 修改 /etc/rc.conf , 新增內容:
inetd_enable="YES"
手動執行:
/usr/sbin/inetd -wW -C 60
設定檔案: /etc/hosts.allow , 規則:
服務名稱 : 來源 : 參數

來源可以是 IP或 FQDN.
採用 first match first win 方式, 也就是遇到符合的規則就不在往下確認.
設定檔規則說明:

# 只要將最初的規則註解,tcp wrapper就開始運作.
#ALL : ALL : allow  # 所有服務,所有來源 ,允許.

# 限定服務存取來源
# 範例:允許192.168.0.0/24 使用 sshd服務.
# sshd : 192.168.0.0/255.255.255.0 : allow
# 若為區段請加上子網路遮罩,如 0/24 則為:  IP/255.255.255.0 , 其餘類推.
# 範例: 拒絕 某IP使用
#sshd : .evil.cracker.example.com : deny

# 常見範例1:
服務名稱 : localhost : allow # 允許本機使用
服務名稱 : ip.trustdomain.com : allow # 允許信任的IP連線
服務名稱 : all : deny # 拒絕其餘不信任的來源.

# 常見範例2: 使用 spawn 讓透過某些命令檢察此服務是否合宜.
# 至於spawn要執行哪些指令由您自行考量(可搭配shell語法).
#
# 當 所有來源  使用fingerd服務, 透過mail -s 發出警告信件 ,列出  並且拒絕.
# 信件結果: tcpd: 來源端使用者@來源端hostname[來源端ip] fingered  me !
fingerd : ALL \
: spawn (echo Finger. | \
/usr/bin/mail -s "tcpd\: %u@%h[%a] fingered me!" root) & \
: deny

# tcp wrapper預設將所有未在hosts.allow列入允許的服務保護,也就是全部拒絕.
# 並且回應 You are not welcome to use 服務名稱 form 來源IP
ALL : ALL \
: severity auth.info \
: twist /bin/echo "You are not welcome to use %d from %h."

# 若您不希望全部服務皆透過tcp wrapper管理,您可以將上述三行註解.
# 這樣將會導致沒有在hosts.allow表列拒絕的服務皆會開放.

# 實際範例:
#ALL : ALL : allow
sshd : 192.168.0.1 : allow
ALL : ALL \
: severity auth.info \
: twist /bin/echo "You are not welcome to use %d from %h."
#將會允許 192.168.0.1 進行 ssh 連線, 但其餘ip皆無法使用sshd服務.


提醒: 設定hosts.allow時,請務必留有一個連線的視窗,避免因為設定失敗而被踢出系統.

enjoy it!!

迴響

  1. 補充,開啟tcp wrapper之後,連線方的dns正反解名稱需要配合,不然會出現拒絕連線的狀況.

    實際範例: (記錄檔 /var/log/messages)
    Mar 28 11:42:42 sshd[81621]: warning: /etc/hosts.allow, line 24: host name/address mismatch: 210.202.113.21 != NK210-202-113-21.adsl.static.ebtnet.net

    作者 藍色泡泡 — 28 三月 2008, 12:42


發表迴響

發表迴響
 authimage

©2008 - Post by 藍色泡泡 (some rights reserved)