ProxmoxVE_PVE防火牆_本機靜態路由_本機端口轉發_修改默認8006端口_旁路由VM


ProxmoxVE_PVE防火牆_本機靜態路由_本機端口轉發_修改默認8006端口_旁路由VM

轉載注明來源: 本文鏈接 來自osnosn的博客,寫於 2021-03-29.

以下內容基於 pve 版本為 6.2-4

PVE 自身設置靜態路由

  • 按 Debian 的設置來,pve 的網卡沒有使用 NetworkManager 管理。
    所以直接修改 /etc/network/interfaces,記得 up/down 要對應。
    在對應的 iface vmbr0 下面,添加靜態路由,使用 ip route 指令。

PVE 添加 nat 的 redirect 規則

  • pve 的管理 web 口 8006,是寫死在 perl5 的模塊中。
    /usr/share/perl5/PVE/Service/pveproxy.pm
    如果要修改的話,要改好多個地方。包括防火牆,issue,……,太復雜。
  • 所以還是考慮用 iptables 的 redirect 規則。重定向443端口。
  • pve 的防火牆,只能添加 filter 表的過濾規則。無法添加 nat 表的規則。
    為了不破壞 pve 的防火牆,就不另外安裝第三方防火牆服務了。
    pve 也沒有 rc.local 可以寫。
    只好寫在 /etc/network/interfaces 中了,用 iptables 命令。

示例

iface vmbr0 inet static
   address 10.123.123.99/24
   gateway 10.123.123.250
    ...
   up ip route add 10.0.0.0/8 via 10.123.123.1 proto static
   down ip route del 10.0.0.0/8 via 10.123.123.1
   post-up iptables -t nat -A PREROUTING -p tcp -d 10.123.123.99/32 --dport 443 -j REDIRECT --to-ports 8006
   post-down iptables -t nat -D PREROUTING -p tcp -d 10.123.123.99/32 --dport 443 -j REDIRECT --to-ports 8006

修改 interfacces 文件后,重啟就會生效。
如果不想馬上重啟,手工執行一下添加的命令即可。
pve的防火牆開/關,不影響 nat 表中的內容。

開啟 PVE 的防火牆

  • 集群 Datacenter -> Firewall -> Options -> Firewall 的值改為 Yes。 這個是防火牆總開關。
    防火牆總開關打開后,節點就不能被 ping 通了。這是正常現象。如需被ping,自行在節點添加一條允許規則即可。
  • 如果防火牆總開關為 No,下面的就不用做了。同時 VM 的防火牆也無法使用。
  • 節點 Node -> Firewall -> Options -> Firewall 的值改為 Yes
    • 節點 Node -> Firewall 中添加規則,允許全網訪問,允許從any地址到自身10.123.123.99,端口TCP/8006.
      因為,pve 缺省的防火牆規則,只允許 10.123.123.0/24 網段訪問 8006.
    • 或者,不添加規則,去改變管理的地址集ipset來實現。
      缺省只允許 local network 訪問 8006 和 22。其實是因為缺省的管理ipset僅包含本地局域網。
      可以參考文檔man pve-firewall中的說明,修改這個管理的ipset(地址集)。
      在文件/etc/pve/firewall/cluster.fw中,添加[IPSET management],寫入允許的ip和IP范圍。
      還能設置黑名單ipset [IPSET blacklist],不過黑名單是全局的,連vm都不能訪問。
  • 另外還有個地方限制管理的ip。(是應用層級的,非防火牆層級)。
    文檔man pveproxy中的說明,創建 /etc/default/pveproxy
    寫入配置項目 ALLOW_FROM=, DENY_FROM=, POLICY=
  • VM 客戶機的防火牆,按需使用。這里的規則只影響對應的 VM,不影響 pve 本身。

PVE 節點中有個旁路由器的 vm

  • PVE的防火牆總開關No,這個旁路由工作正常。沒有問題。
  • PVE的防火牆總開關Yes.
    • pve同節點中其他vm使用這個旁路由,沒問題。
    • pve節點外部的實體機,使用這個旁路由,可以ping通目標,但無法瀏覽目標網站。
      通過查看 iptables 的規則。發現是 filter 表 FORWARD 鏈中第一條規則,
      -A PVEFW-FORWARD -m conntrack --ctstate INVALID -j DROP限制的。
      這條規則在模塊/usr/share/perl5/PVE/Firewall.pm中,受配置項nf_conntrack_allow_invalid控制。
    • 解決辦法,在/etc/pve/nodes/<nodename>/host.fw中的[OPTIONS]中,
      加入nf_conntrack_allow_invalid: 1
      然后,重新開關一次pve的防火牆總開關即可。
  • Proxmox VE中虛擬機非對等路由出站數據包被丟的情況分析

PVE 節點中有個主路由器,且有ipv6

  • VM 客戶機(路由器)的防火牆如果Yes
    • 需要在/etc/pve/firewall/<VMID>.fw中,[OPTIONS]中,加入radv: 1。允許路由廣播。
  • pve節點 和 vm客戶機 兩個地方的 Firewal->Options 中 NDP 也要設置為 Yes。允許網絡鄰居發現協議。

轉載注明來源: 本文鏈接 來自osnosn的博客.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM