tcpd、inetd/rinetd 和 iptables
這些程序之間的相關性是什麼? tcpd和inted / rinetd非常古老,但儘管如此,它們仍然存在於許多發行版中……為什麼?而且tcpd之間也有相關性
hosts.allow
,hosts.deny
但我注意到即使沒有安裝tcpd ,這些文件也存在……(嘗試使用命令****dpkg也注意到這不對應於沒有包)……好吧.. a混亂。誰幫我澄清一下?hosts.allow/deny
謝謝
傳統的設置是用來
inetd
打開監聽套接字,類似於 systemd 現在對套接字啟動所做的事情,僅在那之前的 30 年。inetd
當連接進來時,將無條件地啟動守護程序。對於一些基本的訪問控制,您可以配置
inetd
為啟動tcpd
而不是真正的伺服器。hosts.allow
該程序會根據and文件檢查是否允許連接hosts.deny
,如果是則執行真正的服務。這比
iptables
基於主機的防火牆解決方案或類似的防火牆解決方案要老得多,因此它也可以在根本沒有防火牆的堆棧上工作,例如 AmigaOS 上的 AmiTCP 或 Miami。另一個好處是檢查源地址的配置是服務啟動的一部分,所以一旦配置好,就沒有辦法通過刷新防火牆規則意外暴露服務。
缺點是該埠最初是打開的,因此網路掃描會顯示它,並且連接在建立後立即關閉。
和文件不再提供,因為“失去”文件意味著“允許所有連接”,因此這些文件本身就構成了一個有效的配置,任何仍在使用它們的人都可能知道他們在做什麼
hosts.allow
。hosts.deny
請注意,當您
tcpd
用於訪問控制時,您將失去 中的wait
選項的好處inetd
,其中服務通過偵聽器套接字啟動並負責在啟動後接受進一步的連接(即,您只有一個實例用於多個並行連接)。沒有
udpd
,因為無法驗證 UDP 數據包的來源。