
讓我們假設以下設定:一個公佈 IP 子網路的路由器和一些基於 Proxmox 的 KVM 主機。每台基於 Proxmox 的虛擬化主機都運行多個由客戶管理的虛擬伺服器,並且每個虛擬伺服器都會分配一個或多個 IP。
如何防止(設定錯誤或惡意)虛擬伺服器宣布不屬於其伺服器的 IP?
我能想到的最好的想法是使用iptables
防火牆規則來阻止任何流量,除了具有正確目標位址的傳入流量和具有正確來源位址的傳出流量之外。這應該可行(但我猜也會阻止任何廣播流量,並認為這對於這種情況是可以接受的)。但是,有沒有更好的方法來做到這一點(無需更改路由器)?解決這個問題的常見做法是什麼?
答案1
IPTables 無法封鎖 DHCP 流量,因為它使用在防火牆之前綁定到 IP 堆疊的封包過濾器。這個連結講的是CentOS,不過原理是一樣的。
如果您是這些主機上的另一位客戶,請向您的提供者的 NOC 提出緊急支援票,指出網路上存在惡意 DHCP 伺服器,他們應該(如果他們正常工作)很快就採取行動。如果這是您運行這些虛擬機的硬件,並且您無權訪問虛擬機廣播,我會禁用網絡並讓客戶通過控制台連接來解決問題。
答案2
在發現這iptables
不適合之後,部分感謝 Christophers 上面對該資訊的回答,我做了一些閱讀ebtables
,只是為了弄清楚 Proxmox 已經內建了對防止 IP 欺騙的支援。
所需要做的就是將下列規則新增至 Proxmox 中的每個虛擬機器防火牆設定(請參閱/etc/pve/firewall/<VMID>.fw
檔案)並適用於 IPv4 和 IPv6:
[IPSET ipfilter-net0]
1.2.3.4
2f1:2:3:4::1
無論如何,這已經隱藏在官方文件中:參見部分IP 集>標準 IP 設定 ipfilter-net*