ProxmoxVE防火墙介绍

  • 格式:pdf
  • 大小:270.72 KB
  • 文档页数:5

ProxmoxVE防⽕墙介绍

Proxmox VE 防⽕墙提供了⼀种简单的⽅法来保护您的 IT 基础设施。您可以为集群内的所有主机设置防⽕墙规则,或为虚拟机和容器定义规则。防⽕墙宏、安全组、IP 集和别名等功能有助于简化该任务。

虽然所有配置都存储在集群⽂件系统上,但基于iptables的防⽕墙服务运⾏在每个集群节点上,从⽽在虚拟机之间提供完全隔离。该系统的分布式特性还提供⽐中央防⽕墙解决⽅案⾼得多的带宽。

防⽕墙完全⽀持 IPv4 和 IPv6。IPv6 ⽀持是完全透明的,默认情况下我们会过滤两种协议的流量。因此⽆需为 IPv6 维护⼀组不同的规则。

区域

Proxmox VE 防⽕墙将⽹络分组为以下逻辑区域:

主机进出集群节点的流量。

虚拟机

来⾃或到达特定虚拟机的流量。

对于每个区域,您可以为传⼊和传出流量定义防⽕墙规则。

配置⽂件

集群范围设置

集群范围的防⽕墙配置存储在:/etc/pve/firewall/cluster.fwGUI设置界⾯如下:

默认情况下防⽕墙是完全禁⽤的。如果启⽤防⽕墙,默认情况下会阻⽌所有主机的流量。只有来⾃本地⽹络的 WebGUI(8006) 和 ssh(22) 例外。

如果要从远程管理 Proxmox VE 主机,则需要创建规则以允许从这些远程 IP 到 Web GUI(端⼝ 8006)的流量。您可能还想允许 ssh(端⼝ 22),也可能是 SPICE(端⼝3128)。

在启⽤防⽕墙之前,请打开与您的 Proxmox VE 主机之⼀的 SSH 连接。这样,如果出现问题,您仍然可以访问主机。

为了简化该任务,您可以改为创建⼀个名为“management”的 IPSet,并在其中添加所有远程 IP。这将创建从远程访问 GUI 所需的所有防⽕墙规则。设置⽰例如下:

配置⽂件相关内容如下:[OPTIONS]enable: 1[ALIASES]management 10.0.0.0/24[IPSET management]management[RULES]GROUP managementIN ACCEPT -source +management -p tcp -dport 80 -log nologIN DROP -log nolog[group management]IN ACCEPT -source +management -p tcp -dport 3128 -log nologIN ACCEPT -source +management -p tcp -dport 22 -log nologIN ACCEPT -source +management -p tcp -dport 8006 -log nolog[group webserver]IN ACCEPT -p tcp -dport 443 -log nologIN ACCEPT -p tcp -dport 80 -log nolog

主机范围设置主机范围的防⽕墙配置存储在:/etc/pve/nodes//host.fwGUI设置界⾯如下:

虚拟机范围设置

虚拟机范围的防⽕墙配置存储在:/etc/pve/firewall/.fwGUI设置界⾯如下:

每个虚拟⽹络设备都有⾃⼰的防⽕墙启⽤标志。因此,您可以有选择地为每个接⼝启⽤防⽕墙。除了常规防⽕墙启⽤选项之外,这也是必需的。

虚拟机防⽕墙默认是禁⽤的。启⽤后,默认的输⼊策略是 DROP,默认的输出策略是 ACCEPT,不记录任何⽇志。

下⾯是⼀个GUI设置⽰例:

配置⽂件相关内容如下:[OPTIONS]log_level_in: nologenable: 1log_level_out: nolog[RULES]IN ACCEPT -p tcp -dport 22 -log nologIN ACCEPT -p tcp -dport 80 -log nolog防⽕墙规则

防⽕墙规则由⽅向(IN或OUT)和操作(ACCEPT、DENY、REJECT)组成。您还可以指定宏名称。宏包含预定义的规则和选项集。规则可以通过添加前缀“|”来禁⽤。

⽰例

[RULES]IN SSH(ACCEPT) -i net0IN SSH(ACCEPT) -i net0 # a commentIN SSH(ACCEPT) -i net0 -source 192.168.2.192 # only allow SSH from 192.168.2.192IN SSH(ACCEPT) -i net0 -source 10.0.0.1-10.0.0.10 # accept SSH for IP rangeIN SSH(ACCEPT) -i net0 -source 10.0.0.1,10.0.0.2,10.0.0.3 #accept ssh for IP listIN SSH(ACCEPT) -i net0 -source +mynetgroup # accept ssh for ipset mynetgroupIN SSH(ACCEPT) -i net0 -source myserveralias #accept ssh for alias myserveralias|IN SSH(ACCEPT) -i net0 # disabled ruleIN DROP # drop all incoming packagesOUT ACCEPT # accept all outgoing packages

安全组

安全组是在集群级别定义的规则集合,可以在所有 VM 的规则中使⽤。例如,您可以定义⼀个名为“webserver”的组,其中包含打开http和https端⼝的规则。

[group webserver]IN ACCEPT -p tcp -dport 443 -log nologIN ACCEPT -p tcp -dport 80 -log nolog

IP 别名

IP 别名允许您将⽹络的 IP 地址与名称相关联。然后您可以使⽤这些名称:

内部 IP 集定义在防⽕墙规则的源和⽬标属性中

IP Set

IP 集可⽤于定义⽹络和主机组。您可以在防⽕墙规则的源和⽬标 属性中使⽤“+name”来引⽤它们。

服务和命令防⽕墙在每个节点上运⾏两个服务守护进程:pvefw-logger:NFLOG 守护进程(ulogd 替换)。pve-firewall:更新 iptables 规则

还有⼀个名为pve-firewall的 CLI 命令,可⽤于启动和停⽌防⽕墙服务:# pve-firewall start# pve-firewall stop要获取状态使⽤:# pve-firewall status上述命令读取并编译所有防⽕墙规则,因此如果您的防⽕墙配置包含任何错误,您将看到警告。

如果要查看⽣成的 iptables 规则,可以使⽤:# iptables-save默认防⽕墙规则

以下流量由默认防⽕墙配置过滤:

数据中⼼传⼊/传出 DROP/REJECT

如果防⽕墙的输⼊或输出策略设置为 DROP 或 REJECT,集群中的所有 Proxmox VE 主机仍然允许以下流量:环回接⼝上的流量已经建⽴的连接

使⽤ IGMP 协议的流量

从管理主机到端⼝ 8006 的 TCP 流量,以允许访问 Web 界⾯

从管理主机到端⼝范围 5900 到 5999 的 TCP 流量允许 VNC Web 控制台的流量

从管理主机到端⼝ 3128 的 TCP 流量,⽤于连接到 SPICE 代理

从管理主机到端⼝ 22 的 TCP 流量以允许 ssh 访问

⽤于 corosync 的集群⽹络中到端⼝ 5404 和 5405 的 UDP 流量

集群⽹络中的 UDP 多播流量ICMP 流量类型 3(⽬标不可达)、4(拥塞控制)或 11(超时)以下流量被丢弃,但即使启⽤⽇志记录也不会记录:

连接状态⽆效的 TCP 连接

与 corosync ⽆关的⼴播、多播和任播流量,即不通过端⼝ 5404 或 5405

到端⼝ 43 的 TCP 流量UDP 流量到端⼝ 135 和 445

UDP 流量到端⼝范围 137 到 139

UDP 流量从源端⼝ 137 到端⼝范围 1024 到 65535

UDP 流量到端⼝ 1900

TCP 流量到端⼝ 135、139 和 445

来⾃源端⼝ 53 的 UDP 流量

其余的流量分别被丢弃或拒绝,并被记录下来。这可能会因防⽕墙→选项中启⽤的其他选项⽽异 ,例如 NDP、SMURFS 和 TCP 标志过滤。

请检查输出:# iptables-savesystem 命令以查看系统上活动的防⽕墙链和规则。此输出也包含在系统报告中,可通过 Web GUI 中节点的订阅选项卡或通过pvereport命令⾏⼯具访问。

VM 传⼊/传出 DROP/REJECT

这会丢弃或拒绝所有到 VM 的流量,但 DHCP、NDP、路由器⼴告、MAC 和 IP 过滤的⼀些例外情况取决于设置的配置。丢弃/拒绝数据包的相同规则是从数据中⼼继承的,⽽主机接受的传⼊/传出流量的例外情况并不适⽤。

同样,您可以使⽤iptables-save(见上⽂) 来检查所有应⽤的规则和链。

Proxmox VE 使⽤的端⼝

Web 界⾯:8006(TCP、HTTP/1.1 over TLS)

VNC Web 控制台:5900-5999(TCP、WebSocket)

SPICE 代理:3128 (TCP)

sshd(⽤于集群操作):22 (TCP)rpcbind: 111 (UDP)

发送邮件:25(TCP,传出)corosync 集群流量:5404、5405 UDP

实时迁移(VM 内存和本地磁盘数据):60000-60050 (TCP)