Ubuntu KVM 主機上的防火牆配置
我有一個安裝了 KVM 虛擬化的 Ubuntu 9.10 伺服器(我稱之為 HOST)。它執行了三台虛擬機,一台安裝了 Apache(稱為 APACHE),一台安裝了 Mysql(稱為 MYSQL),一台安裝了 Jetty 在埠 8080 (JETTY) 上執行。主機有一個配置為提供對 VM 的訪問的網橋。
我想在主機上執行防火牆,但不是在每個 VM 上。防火牆應該阻止主機和虛擬機上所有不必要的埠。以下是我想配置的具體方式:
- HOST 應該只能從它的網路塊內通過 SSH 連接。
- HOST 不應打開 SSH 以外的任何其他埠。
- APAHCE、MYSQL 應該可以從任何地方通過 SSH 連接。
- MYSQL 應該只能從網路塊內通過埠 3306 連接。
- JETTY 應該可以通過 8080 埠連接(它以使用者身份執行,所以不能在 80 上執行),但是到埠 80 的流量也應該轉發到防火牆中的 8080,所以它可以顯示為正常的 http 伺服器。
我最近剛切換到 Ubuntu,所以我不確定最好的防火牆工具是什麼。我過去曾在 CentOS 上使用過 iptables,但 iptables 並沒有在我的主機系統上執行。我見過將 UWF 作為 ubuntu 的防火牆工具的參考嗎?看起來 UWF 已安裝,但未啟動。
關於如何進行的任何建議?我應該編輯哪些文件?有沒有我還沒有找到的關於這樣做的好方法?
我認為 UFW 只是 iptables 的前端。無論如何,您都可以使用它的圖形前端。
但我強烈建議你學習 iptables。Unbuntu 官方文件:https ://help.ubuntu.com/community/IptablesHowTo
對於您所描述的,我認為您不需要防火牆(即數據包過濾器)設置。只需確保禁用所有不需要的服務或僅在 localhost/127.0.0.1 上偵聽,並且必要的服務(SSH、MySQL 的 TCP 套接字)僅在特定介面或子網上偵聽。
對於 SSH,這是*/etc/ssh/sshd_config*
ListenAddress
中的指令,對於 MySQL,它是在*/etc/mysql/my.cnf中。在 Linux 系統上,還可以使用/etc/hosts.allow和/etc/hosts.deny*來增加安全性。bind-address
不要依賴數據包過濾器來提供您需要的所有安全性。更重要的是您確切地知道哪些服務正在執行以及它們在哪裡監聽。您不能只是在設置不良且安全的主機前安裝防火牆並希望完成它。這是非常糟糕的做法。