可以创建或数据中心(集群)防火墙、节点防火墙、VM/LXC防火墙
他们可以同时存在,并且若更下级的部分设置了防火墙则会在上级的防火墙基础之上做改动(没配置的沿用,与上级不同的覆盖,相同的不做改动)
在开启防火墙之前请注意先添加放行自己所使用的IP规则,否则可能无法进入PVE后台!!
示意图
Proxmox VE虚拟平台自带一个pve-firewall.service服务,其本质是调用iptables模块,当防火墙配置错误导致无法连接设备,可以使用systemctl stop pve-firewall.service或者pve-firewall stop停止其服务,只需要在WEB后台中进行简单的设置,就可以对流量进行控制。
请注意需要在虚拟机或者LXC容器的网卡中开启防火墙设置,否则将不生效。
若为虚拟机,需在“硬件”中“网络设备”选择所需的网卡勾选“防火墙”。
PVE中有一个默认防火墙安全策略组,其中允许内网(与该节点同局域网的所有设备)登陆pve的管理页面,可见pve自带一个防止自杀的防火墙规则,但是最好还是专门添加一个保命规则,以防止发神经了去改了pve节点的防火墙规则(一般直接默认——就是不手动更改或者添加规则,在“pve-防火墙”和“数据中心-防火墙”选项中不动或者干脆保持其为空白,沿用pve自带的默认规则,在虚拟机或者LXC中去单独设定虚拟机的防火墙规则)由于pve只是将物理硬件进行管理并提供给虚拟机和LXC,因此虚拟机和LXC能够使用分配的虚拟网卡独立于pve上网(用于独立的MAC),比如:即使pve无ipv6,虚拟机仍然能用有ipv6。但VM和LXC的防火墙规则仍然在集群于节点的基础上设置(虚拟机/LXC的规则比它们靠前)。综上所述,应该在pve处设置必要的少量防火墙规则或沿用默认设置,然后在虚拟机/LXC的防火墙界面去设置单独的规则(这样就不用担心pve失联了)
开启防火墙流程:
1.选择数据中心--防火墙--选项 双击并开启数据中心防火墙
数据中心防火墙没什么好说的,一般不动
(针对集群全局进行策略设置,别名/IPSet/安全组修改名称后防火墙规则会使用原来名称, 导致策略规则匹配失败)
有默认的规则,规则文件在 /etc/pve/firewall/cluster.fw
此时可以看到入站 == DROP , 出站 == ACCEPT , 转发 == ACCEPT
还有三个功能:
安全群组:(security group) 这是一组规则的集合,可以在防火墙规则设置里引用
别名:(alias) 这是一个 cidr 的别名,从名称上方便识别
IPSet: 是一组 cidr 的集合,可以引用 alias
(你可以通过提前设置IPSet或者是别名(就是填入ip或者ip集合),以方便在后续配置中引用)
举个栗子:
*CIDR 是一种简化 IP 地址和子网掩码表示的方法,通过 “IP地址/网络前缀位数” 的格式取代传统的“IP地址 + 子网掩码”组合。它的核心是用数字直接表示网络部分的位数,从而更灵活地划分网络。
(啊对,就是你习惯的写法,就爱几把讲专业名称)
2.选择pve--防火墙--选项 双击并开启pve防火墙
没什么好说的,可以直接下一步,或者添加你想要自定义的规则
比如说你希望让内网设备能ping通:
(这里顺手加了个保命规则)
(图上关于ping的规则没勾上,你希望启用就得勾上)
3.选择你要设置的虚拟机/LXC容器--防火墙--选项 双击并开启它的防火墙
一般就在虚拟机/LXC的防火墙界面去设置单独的规则,针对单个虚机/CT 节点设置的策略, 可以在数据中心防火墙里定义好安全组规则, 在虚机/CT 防火墙里直接引用即可
请注意需要在虚拟机或者LXC容器的网卡中开启防火墙设置,否则将不生效。
若为虚拟机,需在“硬件”中“网络设备”选择所需的网卡勾选“防火墙”。
防火墙配置:
选择防火墙,点击“添加”或者是“插入:安全群组”(你要在数据中心的防火墙--安全群组中提前配置这个规则集)
添加一条规则的方法:
1.方向:
in/out——入站/出站
IN(进)方向指的是数据从外部网络流入到内部网络,也称为入站流量。
OUT(出)方向指的是数据从内部网络流出到外部网络,也称为出站流量。
2.操作:
ACCEPT/REJECT/DROP
接受(ACCEPT)表示防火墙允许通过匹配的数据流进入或离开网络。
拒绝(REJECT)表示防火墙明确告知发送方数据流被拒绝,并发送错误消息给发送方。
丢弃(DROP)表示防火墙默默地丢弃匹配的数据流,不发送任何错误消息。
3.协议:
通信所使用的协议
防火墙可以根据协议类型来进行处理和控制,常见的有协议TCP、UDP、ICMP、IGMP、GGP等
*4.宏:
预设好的配置(比如SSH、HTTP、HTTPS、ping),使用后你无法自定义端口与协议
5.源端口和目的端口:
通常在传输层协议TCP和UDP中才具有端口号。
源端口(Source Port)是指发送数据的源端口号,用于标识数据的来源应用或服务。
目的端口(Destination Port)是指接收数据的目标端口号,用于标识数据的去向应用或服务。 防火墙可以根据源端口和目的端口来限制或允许特定的应用或服务通信。
6.备注:
顾名思义
7.日志级别:
高级功能,自定义保留日志的级别,默认不保留
你在允许所有网段web入站访问(80/443)时可能希望保留日志,这样就可以看到哪些ip发送了相关请求
##至于你咋配置具体防火墙规则:
1.入站DROP+出站ACCEPT——放在最后
2.根据需要(挨个开放回来,服务能跑动就好咯QWQ)开放入站端口比如web、ssh、ping…