首页 程序笔记 如何在 Proxmox VE 上安装 OPNSense 防火墙

如何在 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 邮件网关

3

站心网

OPNSense 项目于 2015 年作为 pfSense 的一个分支启动。它是一个基于硬化 BSD 构建的纯开源解决方案,为家..

为您推荐

ASP.NET如何将Views文件夹从项目分离

将 Views 文件夹从 ASP.NET 项目中分离是一个常见需求,比如为了实现模块化或分层架构。以下是实现此功能的完整步骤,从项目中分离 Views 文件夹,将其移到另一个独立的文件夹或项目中,并确保视图渲染仍然正常。1. ..

如何让AI写出Google认可的文章?

让 AI 写出 Google 认可的文章,核心在于满足 Google 的搜索排名算法要求。这些要求通常围绕以下几个关键点展开:内容质量、用户体验 和 SEO 优化。以下是详细指导:一、内容质量确保文章原创且有价值避免抄袭:Goog..

最新CentOS7安装搭建shadowsocks服务端+客户端使用图文教程

使用的CentOS版本是7.9,其他版本也可以。超级推荐的是搭建shadowsocks服务端,安装配置都很简单,几分钟就搞定,客户端支持PC移动端,下面是安装shadowsocks的过程,只要复制粘贴命令就行了,文件夹路径都不需要改..

如何从.NET Framework迁移到.NET Core或.NET 6/7?

从 .NET Framework 迁移到 .NET Core 或 .NET 6/7 是一个提升性能和跨平台能力的关键过程。以下是迁移的主要步骤和注意事项:迁移步骤1. 评估当前项目依赖项检查:确保所有第三方库和NuGet包都有与 .NET Core/.NET 6..

如何优化ASP.NET Core应用的性能?

优化ASP.NET Core应用性能需要从代码、数据库、配置、服务器和部署等多个层面进行综合考虑。以下是一些优化ASP.NET Core应用性能的关键方法和技巧:1. 代码级优化使用异步编程:避免阻塞线程,通过async和await处理I..

sourcetree安装跳过注册方法

SourceTree下载提取码: ni9m 需翻墙或者破解注册当前只有Win的版本,Mac自行百度很多人用git命令行不熟练,那么可以尝试使用sourcetree进行操作。然鹅~~sourcetree又一个比较严肃的问题就是,很多人不会跳过注册或者..

chrome 开发者工具如何查看元素:hover时的样式

在 Chrome 开发者工具中查看元素的 :hover 样式,可以通过以下步骤实现:打开开发者工具:右键点击页面中的元素,然后选择“检查(Inspect)”或按下 F12 或 Ctrl + Shift + I (Windows) / Cmd + Option +..

如何防止web应用DOS攻击?

防止web应用DOS攻击的最好的方法是什么? 如何防止web应用DOS攻击? 与所有的拒绝服务(DOS)攻击相关的一件事是他们都不可能避免。最好的方法是把重点放在减少影响DOS攻击的方法上。如果你有一个网络,黑客想要玩一玩..

数据库SQL Server2014和SQL Server2019的区别和如何选择?

SQL Server 2014和SQL Server 2019是微软公司发布的两个版本的数据库管理系统,它们在性能、安全性以及可扩展性等方面各有特点。在选择这两个数据库版本时,需要根据系统需求、预算状况以及技术团队的熟悉程度等因素..

MySQL如何建数据库

MySQL是一款非常流行的关系型数据库管理系统。无论是在企业还是个人项目中,都经常使用MySQL数据库。在使用MySQL之前,需要先创建一个数据库。本文将介绍如何建立MySQL数据库。一、安装MySQL在开始建立MySQL数据库之..

jwt是什么?.NET Core API如何使用JwtBearer验证

JWT是JSON Web Token的缩写,是一种开放标准(RFC 7519),用于在网络上以安全和可靠的方式传输信息。它是一种被广泛使用的跨域身份验证解决方案,可以将用户信息、访问权限等加密后存储在Token中,然后通过网络传输..

CentOS7部署发布.NET Core网站Ngnix安装配置图文教程

Linux服务器部署.NET Core网站运行速度更快,最近打算把原来windows server上的网站迁到linux的云服务器上。 顺便记录一下CentOS7安装.NET运行环境,安装和配置Ngnix的过程。首先安装.NET运行时sudorpm-Uvhhttps://p..

什么是微服务架构?它与单体应用程序架构有什么区别?如何在.NET中实现微服务架构?

微服务架构是一种软件架构风格,通过将应用程序拆分为一组小型、自治的服务来构建应用程序。每个服务都专注于解决特定的业务功能,并通过轻量级的通信机制进行交互。这些服务可以独立开发、部署和扩展,可以使用不同..

winform如何隐藏边框和标题栏

在WinForms中,可以通过以下步骤来隐藏窗体的边框和标题栏:打开WinForms应用程序的窗体设计器。选择窗体控件,然后在属性窗口中找到FormBorderStyle属性。将FormBorderStyle属性设置为None,以指示窗体不显示边框。..

IIS使用Certify安装Let's Encrypt免费SSL证书

域名疑似被流量劫持,不仅被腾讯网址安全中心检测成危险网站,还间歇性出现访问域名被302重定向到Localhost。于是决定响应百度站长平台的号召,进行HTTPS改造。不用担心HTTPS后的SEO问题,百度站长平台官方已经表态..

程序员如何量化炒股?原理是什么?

作为程序员,可以运用编程技能和量化分析来帮助量化炒股。量化炒股有哪些步骤和方法?收集数据:需要收集有关股票市场的数据。可以从各种来源获取这些数据,如Yahoo财经、谷歌财经、股票交易所等。可以使用Python等..

如何让Google谷歌搜索引擎找到并收录网站

Google谷歌会使用大量计算机来抓取网络上数十亿的页面, 这个名为 Googlebot 的抓取工具基本上从以前抓取生成的网页 URL 列表开始,然后使用 Google Search Console 中提供的站点地图数据扩充这些页面。 在抓取过程..

如何把网站提交到Google谷歌搜索引擎google search console收录

发布新的网站后,它并不会立即被搜索引擎收录。为了让网站出现在搜索结果中,Google 需要“抓取”您的内容并“编制索引”。 这会在数天或数周内自动发生,但如果您是网站所有者,则可以在Google search console手动..

Kubernetes(k8s) Linux安装和配置

什么是Kubernetes(k8s)?Kubernetes(通常称为"k8s")是一种用于自动部署、扩展和管理容器化应用程序的开源平台。它提供了一个容器编排和管理系统,可以自动化应用程序的部署、管理和缩放,并确保它们的高可用性。在..

百度文心一言邀请码如何获得?

3月16日下午,百度于北京总部发布了新一代大语言模型、生成式AI产品文心一言。首批用户即可通过邀请测试码,在文心一言官网体验产品,后续将陆续开放给更多用户。邀请码申请方式请往下看。百度文心官网地址:https://..

发表回复

返回顶部