雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

如何在 Proxmox VE 上安装 OPNSense 防火墙

2024-07-19 206

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个月前
赞一波!3

文章评论

评论问答