用户工具

站点工具


pve:firewall

第十章:Proxmox VE防火墙

原文链接:https://pve.proxmox.com/pve-docs/chapter-firewall.html 最后更新:2026-02-25

概述

Proxmox VE防火墙提供了强大的网络安全功能,允许您在节点、虚拟机和容器级别实施网络访问控制。

防火墙架构

层级

* Datacenter级别 - 全局规则 * Node级别 - 节点规则 * VM/CT级别 - 虚拟机/容器规则

规则方向

* IN - 入站 * OUT - 出站

启用防火墙

全局启用

在Web界面: 1. 数据中心 → 防火墙 2. 启用防火墙 3. 保存

每节点启用

# /etc/pve/firewall/cluster.fw
[OPTIONS]
enable: 1

规则配置

基本规则

* 操作 - ACCEPT/DROP/REJECT * 协议 - TCP/UDP/ICMP * 源/目标端口 * 源/目标IP

创建规则

通过Web界面: 1. 选择防火墙选项卡 2. 点击“添加” 3. 配置规则 4. 保存

命令行

pvesh create /cluster/firewall/rules -pos 1 -action ACCEPT -protocol TCP -dport 22 -comment "SSH"

安全组

创建安全组

pvesh create /cluster/firewall/groups -group web-servers

添加规则到组

pvesh create /cluster/firewall/rules -group web-servers -pos 1 -action ACCEPT -protocol TCP -dport 80

使用安全组

将安全组应用到VM:

qm set 100 -firewall 1 -net0 virtio,bridge=vmbr0,firewall=1

常用规则示例

允许SSH

IN ACCEPT -p tcp --dport 22 -log nolog

允许HTTP/HTTPS

IN ACCEPT -p tcp --dport 80
IN ACCEPT -p tcp --dport 443

拒绝Ping

IN DROP -p icmp --icmp-type echo-request

限制SSH

IN ACCEPT -p tcp --dport 22 -s 10.0.0.0/8
IN DROP -p tcp --dport 22

IPv6支持

启用IPv6

# /etc/pve/firewall/cluster.fw
[OPTIONS]
enable: 1
ipv6: 1

IPv6规则

与IPv4类似,支持: * TCP/UDP/ICMPv6 * 源/目标地址 * 扩展规则

日志

日志级别

* nolog - 不记录 * log - 记录 * reject - 记录并拒绝 * drop - 记录并丢弃

查看日志

tail -f /var/log/pve-firewall.log

自动化规则

Proxmox内置

* 集群通信 - UDP端口 5404, 5405 * 迁移 - TCP端口 60000-60010 * VNC - 端口 5900-5999

防护

DDoS防护

* 连接限制 * 速率限制 * SYN cookies

恶意流量

* 端口扫描检测 * 异常流量检测

高级配置

MAC地址过滤

IN ACCEPT -mac XX:XX:XX:XX:XX:XX

连接跟踪

* 状态跟踪 * RELATED/ESTABLISHED * 允许已建立连接

故障排除

常见问题

* 规则不生效 * 无法连接 * 性能下降

诊断

# 查看规则
iptables -L -n -v

# 测试连接
telnet host port

# 查看日志
tail -f /var/log/pve-firewall.log

最佳实践

1. 默认拒绝所有 2. 最小权限原则 3. 记录重要操作 4. 定期审计规则

配置示例

数据中心规则

# /etc/pve/firewall/cluster.fw
[OPTIONS]
enable: 1
ebtables: 1

[RULES]
IN ACCEPT -p tcp -dport 8006 -s 192.168.1.0/24

虚拟机规则

# /etc/pve/qemu-server/100.fw
[INPUT]
IN ACCEPT -p tcp -dport 22
IN ACCEPT -p tcp -dport 80
IN ACCEPT -p tcp -dport 443

[FORWARD]
IN DROP -log nolog
OUT ACCEPT -log nolog
pve/firewall.txt · 最后更改: admin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki