Linux:如何在 /etc/hosts.allow 中為手動啟動的程序配置 TCP 包裝器?
我工作的公司的一台內部伺服器受到了威脅,我想加強組織中的 CentOS 機器,以避免將來發生任何事件,所以我一直在閱讀有關保護你的 CentOS 機器的資訊,我遇到了各種各樣的保護您的作業系統的方法。
我們沒有在域中使用 SELinux 或 IPtables。
我計劃做的一件事是通過使用 TCP 包裝器(編輯 /etc/hosts.allow/ 和 hosts.deny)將域內伺服器的訪問限制為特定服務。
來自CentOS 官方文件站點:
使用 TCP 包裝器
TCP 包裝器可以提供一種快速簡便的方法來控制對連結到它們的應用程序的訪問。TCP Wrapper 感知應用程序的範例是 sshd 和 portmap。下面是一個限制性範例。此範例阻止除 ssh 之外的所有內容。
迴聲“全部:全部”>>/etc/hosts.deny
echo “sshd:ALL” >> /etc/hosts.allow
我的問題是:
我需要伺服器能夠在埠上提供請求:
1099 (Java RMI) 5666 (NRPE) 22 (SSH)
Java RMI 是手動啟動的,而不是由守護程序啟動的,它在以下內容中正確指定
/etc/services
:[root@srv4 scripts]# grep 1099 /etc/services rmiregistry 1099/tcp # RMI Registry
此外,NRPE 被配置為在 xinetd 下工作,而不是手動守護程序
那麼我的
hosts.allow
線條會是什麼樣子呢?
CentOS 5 文件為xinetd *. 就像是
hosts.allow
xinetd: .example.com
主機拒絕
xinetd: ALL
應該允許 example.com 中的所有主機並拒絕對 xinetd 控制的程序的其他所有內容的訪問。順序很重要,文件按照允許、拒絕和第一場比賽獲勝的順序進行掃描。
快速查看
ldd /usr/bin/java
顯示 java 不支持 libwrap 的輸出,因此您不能直接使用 tcpwrappers。也許將它包裝在 xinetd 中會起作用。您絕對應該考慮內部防火牆和 SELinux,因為它們將有助於限制妥協後的橫向移動。
*以後的版本也可能有一個,但不太可能有很大不同