如何在 Proxmox VE 上安装 OPNSense 防火墙
OPNSense 项目于 2015 年作为 pfSense 的一个分支启动。它是一个基于硬化 BSD 构建的纯开源解决方案,为家庭用户和小型和大型公司提供防火墙和路由。 OPNSense 具有商业防火墙中的许多功能,但免费提供!尽管该项目发展很快,但它保留了 m0n0wall 和 pfSense 的熟悉方面。 OPNsense 已被中小企业采用。
OPNSense 防火墙的一些功能包括:
- 整个系统的双因素身份验证
- 强制门户
- DNS 服务器和 DNS 转发器
- 状态检测防火墙
- 转发缓存代理(透明),支持黑名单
- 虚拟专用网络(站点到站点和公路战士、IPsec、OpenVPN 和传统 PPTP 支持)
- 高可用性和硬件故障转移(具有配置同步和同步状态表)
- 入侵检测与预防
- DHCP 服务器和中继
- 内置报告和监控工具,包括 RRD 图表
- 网络流导出器
- 网络流量监控
- 支持插件
- 动态域名解析
- 802.1Q VLAN 支持
- 加密配置备份到 Google Drive
- 对状态表的精细控制
在本文中,我们假设您已经安装了可以正常工作的 Proxmox VE 服务器。请查看我们下面的文章。
- 如何在 Debian 12 上安装 Proxmox VE 8 (Bookworm)
- 如何从 Proxmox VE 7 升级到 Proxmox VE 8
配置 Proxmox 网络
OPNSense 或 pfSense 的默认安装需要连接两个网络接口。
- WAN – 用于路由所有互联网流量的网络。
- LAN – 供本地网络中的设备使用的网络。除非使用 NAT,否则不会暴露给外界。
我们将考虑两种网络设置。
1、标准基础网络(服务器带2块网卡)
打开网络配置文件
sudo vim /etc/network/interfaces
修改该文件以包含两个网络 - WAN 和 LAN。 Proxmox 服务器上的网络接口卡应预先配置。
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
iface lo inet6 loopback
# Used for WAN
auto eno1
iface eno1 inet manual
# Used for LAN
auto eno2
iface eno2 inet manual
#WAN
auto vmbr0
iface vmbr0 inet static
address <server-wan-ip>
netmask <server-wan-ip-netmask>
gateway <server-wan-ip-gateway>
bridge-ports eno1
bridge-stp off
bridge-fd 0
# LAN0
# Virtual switch for DMZ
# (connect your firewall/router KVM instance and private DMZ hosts here)
auto vmbr1
iface vmbr1 inet static
address <server-private-network-ip>
netmask <server-private-network-netmask>
gateway <server-private-network-gateway-ip>
bridge-ports eno2
bridge-stp off
bridge-fd 0
2、Hetzner根服务器组网(带1块网卡的服务器)
对于 hetzner 专用根服务器,我们首先请求额外的辅助 IP 地址。
请求额外的公共IP地址
对于 hetzner,您应该请求额外的公共 IP 地址,用于将流量从私有子网路由到外部世界。 Hetzner 提供的主要公共 IPv4 地址不支持将流量路由到外部网络。
这是通过服务器 > IP > 订购额外 IP/网络 来完成的
选择“一个额外 IP”,并在“使用目的”框中提供说明以配合此请求。
获得其他 IP 地址后,请求该 IP 地址的MAC 地址。 OPNsense 虚拟机将使用生成的 MAC 将流量路由到 WAN。
单击链接以请求 MAC 地址。
记下配置所需的以下网络信息。
- 分配给您的服务器的主要公共 IP 地址
- 主网络CIDR块
- 已订购辅助 IP 地址
- 您生成的辅助 IP 地址的 MAC 地址 - 我们会将此 MAC 分配给 OPNsense VM WAN 网络(MAC 字段)
- 默认网关
- 主网络网络掩码
使用辅助 IP 地址,编辑以下示例网络配置文件。
### Hetzner Online GmbH installimage
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
iface lo inet6 loopback
iface <interface-name> inet manual
up route add -net <Primary-Network> netmask <Primary-Subnet> gw <Primary-Gateway> dev vmbr0
up sysctl -w net.ipv4.ip_forward=1
up sysctl -w net.ipv4.conf.<interface-name>.send_redirects=0
up sysctl -w net.ipv6.conf.all.forwarding=1
up ip route add 192.168.0.0/16 via <Secondary-IP> dev vmbr0
up ip route add 172.16.0.0/12 via <Secondary-IP> dev vmbr0
up ip route add 10.0.0.0/8 via <Secondary-IP> dev vmbr0
iface <interface-name> inet6 static
address <IPv6-Address>
gateway <IPv6-Gateway>
auto vmbr0
iface vmbr0 inet static
address <Primary-IP>
netmask 32
gateway <Primary-Gateway>
bridge-ports <interface-name>
bridge-stp off
bridge-fd 0
pointopoint <Primary-Gateway>
# This serves as a virtual switch for your DMZ
# (VM instances and private DMZ hosts are connected to this network)
auto vmbr1
iface vmbr1 inet manual
bridge_ports none
bridge_stp off
bridge_fd 0
#LAN0
下载 OPNsense VM 映像
访问 OPNsense 版本下载页面并检查可供下载的最新可用版本,然后下载 x-nano-amd64.img.bz2
版本。
VER=24.1
wget https://mirror.ams1.nl.leaseweb.net/opnsense/releases/$VER/OPNsense-$VER-nano-amd64.img.bz2
使用 bunzip2
命令解压缩包。
bunzip2 -d OPNsense-*-nano-amd64.img.bz2
重命名提取的文件。
mv OPNsense-*-nano-amd64.img OPNsense-nano-amd64.img
让我们调整图像文件的大小,例如调整为 30G。
$ qemu-img resize -f raw ./OPNsense-nano-amd64.img 30G
Image resized.
使用下载的映像创建 OPNsense VM
为虚拟机创建提供变量。根据您的环境和所需的使用意图编辑它们。
VM_NAME=OPNsense
VM_ID=$(pvesh get /cluster/nextid)
RAM=4096
CORES=2
BRIDGE1=vmbr0
BRIDGE2=vmbr1
IMAGE=./OPNsense-nano-amd64.img
设置变量后,继续创建 VM 实例。
qm create --name $VM_NAME \
$VM_ID --memory $RAM \
--cores $CORES --cpu cputype=kvm64 \
--net0 e1000,bridge=$BRIDGE1 \
--net1 e1000,bridge=$BRIDGE2 \
--scsihw virtio-scsi-pci --numa 1
列出 Proxmox 服务器运行中的存储域。
root@Proxmox-VE ~ # pvesm status
Name Type Status Total Used Available %
local dir active 492392868 11379732
使用我们将使用的 ID 导入虚拟机的磁盘
# STORAGE=local
# qm importdisk $VM_ID $IMAGE $STORAGE
...
transferred 21.9 GiB of 30.0 GiB (72.92%)
transferred 22.2 GiB of 30.0 GiB (73.96%)
transferred 22.5 GiB of 30.0 GiB (75.00%)
transferred 22.8 GiB of 30.0 GiB (76.04%)
transferred 23.1 GiB of 30.0 GiB (77.08%)
transferred 23.4 GiB of 30.0 GiB (78.12%)
transferred 23.8 GiB of 30.0 GiB (79.17%)
transferred 24.1 GiB of 30.0 GiB (80.21%)
transferred 24.4 GiB of 30.0 GiB (81.25%)
transferred 24.7 GiB of 30.0 GiB (82.29%)
transferred 25.0 GiB of 30.0 GiB (83.33%)
transferred 25.3 GiB of 30.0 GiB (84.37%)
transferred 25.6 GiB of 30.0 GiB (85.42%)
transferred 25.9 GiB of 30.0 GiB (86.46%)
transferred 26.2 GiB of 30.0 GiB (87.50%)
transferred 26.6 GiB of 30.0 GiB (88.54%)
transferred 26.9 GiB of 30.0 GiB (89.58%)
transferred 27.2 GiB of 30.0 GiB (90.62%)
transferred 27.5 GiB of 30.0 GiB (91.67%)
transferred 27.8 GiB of 30.0 GiB (92.71%)
transferred 28.1 GiB of 30.0 GiB (93.75%)
transferred 28.4 GiB of 30.0 GiB (94.79%)
transferred 28.7 GiB of 30.0 GiB (95.83%)
transferred 29.1 GiB of 30.0 GiB (96.87%)
transferred 29.4 GiB of 30.0 GiB (97.92%)
transferred 29.7 GiB of 30.0 GiB (98.96%)
transferred 30.0 GiB of 30.0 GiB (100.00%)
transferred 30.0 GiB of 30.0 GiB (100.00%)
transferred 30.0 GiB of 30.0 GiB (100.00%)
Successfully imported disk as 'unused0:local:105/vm-105-disk-0.raw'
可以使用检查虚拟机配置。
qm config $VM_ID
导入镜像后,虚拟机磁盘将保持未使用状态。导航到虚拟机的硬件部分,然后双击以附加它。
# qm set $VM_ID --scsihw virtio-scsi-pci --virtio0 $STORAGE:$VM_ID/vm-$VM_ID-disk-0.raw
update VM 105: -scsihw virtio-scsi-pci -virtio0 local:105/vm-105-disk-0.raw
设置串行控制台和启动顺序优先级。
qm set $VM_ID --serial0 socket --vga serial0
qm set $VM_ID --boot c --bootdisk virtio0
将实例配置为在系统启动时启动。
qm set $VM_ID --onboot 1
启动虚拟机并配置 OPNsense
从命令行启动虚拟机
qm start $VM_ID
或者从网络界面。打开VM控制台查看启动过程。
等待启动完成,然后按任意键开始界面配置和分配。
OPNsense 服务器启动后,将检测到有效的网络接口。
显示接口的默认网络分配。您可以自定义,或者如果可以接受作业则继续。
默认情况下,分配的 LAN 网络为 192.168.1.0/24,但稍后可以更改。如果 WAN 上有 DHCP,服务器将获得分配的 IP 地址。
默认 LAN 网络为 192.168.1.0/24 ,但稍后可以更改。
登录以更改服务器 OPNsense 设置。默认凭据。
- 用户名:root
- 密码:opnsense
从显示的列表中选择配置选项
例如,要在 LAN 接口上配置静态 IP 寻址,请使用选项 2
在 LAN 上启用 DHCP 服务器是常见的情况。设置 DHCP 租约的起始和最后 IP 地址。
最终 LAN 网络设置。
在 LAN 网络上安装虚拟机
我们现在可以在 LAN 网络上安装虚拟机。流量将通过额外的公共 IP 地址进行路由以访问互联网。
您可以设置静态 IP 地址或允许 OPNsense DHCP 服务器 DHCP 分配 IP 地址。
通过使用 OPNsense LAN 上创建的虚拟机,访问 https://OPNsense_LAN_IP 上的 OPNsense Web 管理仪表板。使用默认凭据登录root /opnsense。
接下来重置 root 用户密码。旧密码是opnsense。 设置新的强root密码。
在本教程中,我们已经能够在 Proxmox VE 服务器上安装并执行 OPNsense 的基本配置。官方 OPNsense 文档页面中提供了更多使用指南和管理自定义。
查看有关 Proxmox 的更多指南
- 在 Proxmox VE 上创建 Rocky/AlmaLinux/CentOS 操作系统模板
- 将 Proxmox VM 和容器备份到 Proxmox 备份服务器
- 如何将 Proxmox VM 迁移到另一个 Proxmox 节点
- 在 Proxmox VE 上创建 Ubuntu 和 Debian 操作系统模板
- 在 Proxmox Hetzner 根服务器上安装 pfSense
- 使用 Let's Encrypt SSL 保护 Proxmox 邮件网关
更新于:4个月前
相关文章
- 【说站】Java如何在PDF添加注释
- 【说站】java软引用如何在浏览器使用
- 如何在 JavaScript 中使用正则表达式删除 HTML 标签?
- Centos7.x 防火墙
- linux的shell脚本中如何在一个字符串中查找指定字符串是否存在
- 你如何在 Python 中循环字典?
- 如何在 Anaconda 中安装 Python 包?
- 你如何在 Python 中编写自动售货机代码?
- 如何在 Python 中读取 .data 文件?
- 如何在 Python 中创建静态类数据和静态类方法?
- 如何在 Python 中使用 Matplotlib 创建一个空的 Figure?
- 如何在 seaborn 中创建三角相关热图?
- 如何在Python中创建AGE计算器Web App PyWebIO?
- 如何在 Python 中只删除空文件夹?
- 如何在 Pandas 中创建一个空的数据帧并向其附加行和列?
- 如何在 Django 中创建抽象模型类?
- 如何在 Python 中使用 Pillow 连接图像?
- 如何在 Python 中将嵌套的 OrderedDict 转换为 Dict?
- 如何在 Python 中将分类特征转换为数字特征?
- 如何在 Django 中使用 MVT 创建一个基本项目?