【DevOps】什么是 pfSense?免费构建SDWAN
目录
一、详细介绍pfSense
1、 什么是 pfSense?
2、原理
3、 特点
4、 优点
5、 缺点
6、应用场景
7、 典型部署
二、pfSense实战:免费构建企业SD-WAN
1、拓扑图
2、准备工作
3、安装和基本配置pfSense
4、配置VPN
配置IPsec VPN
配置OpenVPN(可选)
5、配置动态路由(可选)
6:测试和优化
一、详细介绍pfSense
1、 什么是 pfSense?
pfSense 是一个基于 FreeBSD 的开源防火墙和路由平台。它被设计用于提供企业级防火墙、路由、VPN、流量管理和很多其他网络功能。pfSense 是由 Netgate 维护和开发的,并且有社区版本和商业支持版本。
2、原理
pfSense 使用 FreeBSD 操作系统作为基础,并利用其强大的网络功能。它通过 Web 界面进行管理,用户可以通过浏览器进行配置和管理。pfSense 支持多种网络协议和服务,能够通过插件(Package)扩展其功能。
3、 特点
- 开源和免费:pfSense 的社区版本是完全免费的,源代码开放。
- 丰富的功能集:包括防火墙、路由、VPN、流量整形、负载均衡、入侵检测和防御(IDS/IPS)等。
- 灵活的配置:通过 Web 界面进行配置,支持命令行访问。
- 高度可扩展:支持安装许多插件,如 Snort(入侵检测系统)、Squid(代理服务器)、pfBlockerNG(广告拦截和地理封锁)等。
- 多种VPN支持:包括 IPsec、OpenVPN、L2TP、PPTP 等,便于构建安全的远程访问和站点间连接。
- 多WAN支持:可以配置多个WAN连接,实现负载均衡和故障切换。
4、 优点
- 高性能:由于基于 FreeBSD,pfSense 的网络性能非常强大,能够处理高流量。
- 高度可定制化:用户可以根据需要安装和配置各种插件和服务。
- 社区支持:有一个活跃的社区,提供丰富的文档和支持。
- 安全性:定期更新和补丁,且支持多种安全功能,如IDS/IPS、VPN等。
- 易用性:Web 界面简洁直观,配置相对简单。
5、 缺点
- 学习曲线:对于初学者来说,全面掌握pfSense的所有功能可能需要一些时间。
- 硬件依赖:虽然pfSense可以在虚拟机上运行,但为了获得最佳性能,通常需要专用硬件。
- 复杂配置:对于一些高级功能,如动态路由协议,配置可能较为复杂。
6、应用场景
- 企业网络防火墙:提供防火墙、NAT、VPN等功能,保护企业网络安全。
- 中小企业路由器:作为企业的主要路由设备,提供多WAN支持、负载均衡和故障切换。
- 远程办公:通过VPN实现安全的远程访问。
- 数据中心:用于数据中心之间的安全连接和流量管理。
- 家庭网络安全:高级用户可以在家庭网络中使用pfSense,以获得更高的安全性和控制。
7、 典型部署
- 边缘防火墙:部署在企业网络的边缘,提供防火墙和VPN服务。
- 内部网络分段:通过 VLAN 和防火墙规则,将不同部门或服务分隔开,提升内部安全。
- VPN 集中器:用于集中管理多个站点间的VPN连接,确保安全通信。
- 负载均衡和高可用性:配置多WAN连接,实现网络负载均衡和高可用性。
pfSense 是一个功能强大且灵活的网络安全解决方案,适用于各种规模的网络环境。从家庭用户到大型企业,pfSense 都能提供可靠的网络安全和管理功能。
二、pfSense实战:免费构建企业SD-WAN
1、拓扑图
互联网|------------------| VyOS (阿里云) | 10.10.10.0/24------------------| IPsec VPN (隧道1)|------------------| VyOS (办公室) | 10.10.20.0/24------------------| IPsec VPN (隧道2)|------------------| VyOS (亚马逊云) | 10.10.30.0/24------------------
要使用pfSense构建SD-WAN(软件定义广域网)以连接三个不同区域的子网络(本地办公室、阿里云和亚马逊云),你可以按照以下步骤进行:
2、准备工作
-
硬件和软件准备:
- 确保每个子网络都有一台pfSense设备或虚拟机。
- 确保每个子网络都有稳定的互联网连接。
-
网络配置:
- 每个子网络应该有唯一的子网范围,以避免IP冲突,请参考上面拓朴中列出的IP地址范围 。
3、安装和基本配置pfSense
-
安装pfSense:
- 下载pfSense ISO并在每个子网络的设备上安装。
-
基本配置:
- 配置每个pfSense设备的WAN接口,使其能够访问互联网。
- 配置LAN接口,使其能够与本地网络设备通信。
- 配置基本的防火墙规则,允许必要的流量。
4、配置VPN
为了建立安全的连接,可以使用VPN(如IPsec或OpenVPN)来连接不同的子网络。
配置IPsec VPN
-
在本地办公室的pfSense上配置IPsec:
- 导航到
VPN > IPsec
。 - 添加一个新的Phase 1条目,配置Remote Gateway为阿里云的公共IP地址。
- 配置Phase 1的身份验证方法(例如预共享密钥)。
- 添加一个Phase 2条目,配置本地网络和远程网络。
- 导航到
-
在阿里云的pfSense上配置IPsec:
- 类似步骤,配置Remote Gateway为本地办公室的公共IP地址。
- 确保Phase 1和Phase 2的配置与本地办公室的配置匹配。
-
在本地办公室的pfSense上添加另一个IPsec配置:
- Remote Gateway为亚马逊云的公共IP地址。
- 配置Phase 1和Phase 2。
-
在亚马逊云的pfSense上配置IPsec:
- 配置类似的Remote Gateway为本地办公室的公共IP地址。
- 确保Phase 1和Phase 2的配置匹配。
-
在阿里云和亚马逊云之间配置IPsec:
- 重复上述步骤,确保阿里云和亚马逊云之间也有VPN连接。
配置OpenVPN(可选)
-
在本地办公室的pfSense上配置OpenVPN服务器:
- 导航到
VPN > OpenVPN
,选择添加服务器。 - 配置服务器模式、证书、加密设置等。
- 配置客户端网络范围。
- 导航到
-
在阿里云和亚马逊云的pfSense上配置OpenVPN客户端:
- 导航到
VPN > OpenVPN
,选择添加客户端。 - 配置服务器地址为本地办公室的公共IP。
- 导入客户端证书,匹配服务器的加密设置。
- 导航到
5、配置动态路由(可选)
为了实现更复杂的路由和冗余,可以使用动态路由协议如BGP或OSPF。
-
安装FRR路由包:
- 导航到
System > Package Manager
,安装FRR(一个支持BGP、OSPF等协议的路由软件包)。
- 导航到
-
配置FRR:
- 导航到
Services > FRR
,根据需要配置BGP或OSPF协议。 - 配置网络和邻居关系,以便不同子网络之间可以动态路由。
- 导航到
6:测试和优化
-
测试连接:
-
使用ping、traceroute等工具测试不同子网络之间的连接。
-
确保所有子网络之间的流量都能够正常通过VPN传输。
-
-
优化配置:
-
根据实际需求调整防火墙规则。
-
优化VPN和路由配置以提高性能和可靠性。
-
通过上述步骤,你可以使用pfSense构建一个连接本地办公室、阿里云和亚马逊云的SD-WAN网络。根据实际需求,你可以进一步调整和优化配置。
相关文章:
【DevOps】什么是 pfSense?免费构建SDWAN
目录 一、详细介绍pfSense 1、 什么是 pfSense? 2、原理 3、 特点 4、 优点 5、 缺点 6、应用场景 7、 典型部署 二、pfSense实战:免费构建企业SD-WAN 1、拓扑图 2、准备工作 3、安装和基本配置pfSense 4、配置VPN 配置IPsec VPN 配置OpenV…...
elementui table超出两行显示...鼠标已入tip显示
elementui el-table超出两行显示…鼠标已入tip显示 方式一 <el-table-column label"描述"prop"note"class-name"myNoteBox"><template slot-scope"scope"><!-- tips悬浮提示 --><el-tooltip placement"to…...
空白服务器安装系统
一、准备工作 确定服务器的硬件配置,包括处理器、内存、硬盘等信息。选择合适的操作系统镜像文件,可以从官方网站或者第三方网站下载。 二、制作启动盘或镜像 如果服务器支持从光盘启动,可以使用光盘制作软件(如UltraISO&#…...

【车载音视频电脑】嵌入式AI分析车载DVR,支持8路1080P
产品特点 采用H.265 & H.264编解码,节约存储空间、传输流量; 高分辨率:支持8路1080P*15FPS/4路1080P*30FPS、720P、D1等编解码; 支持1张SATA硬盘,取用方便,满足大容量存储要求; 支持1个…...
Java实现Mysql批量插入与更新
第一、批量插入语句 Insert({"<script>","INSERT INTO TABLE_NAME (" "ID," "IS_DELETE," "GMT_CREATE," "GMT_MODIFIED" ")VALUES","<foreach collection list item item separator …...

李沐团队发布Higgs-Llama-3-70B,角色扮演专用模型
前言 近年来,大语言模型(LLM)在各个领域都展现出强大的能力,尤其是其在对话、写作、代码生成等方面的应用越来越广泛。然而,想要让 LLM 真正地融入人类社会,扮演各种角色,还需要具备更强大的角…...
2024年护网行动全国各地面试题汇总(4)作者:————LJS
面试过程及回答 自我介绍这里就如实回答的工作经历,参与的项目,尽量简短的把你参与的项目和成果说出来就行 使用过哪些设备,出现误报怎么办 天眼、EDR、全流量告警、态势感知、APT、蜜罐设备先去查看设备的完整流量日志等信息确认是否为误报&…...
秋招突击——6/11——复习{(树形DP)树的最长路径、电话号码的字母组合}——新作{重复序列中前最小的数字}
文章目录 引言复习树形DP——树的最长路径电话号码的字母组合 新作重复序列中前最小的数字个人实现参考实现 总结 引言 这两天可能有点波动,但是算法题还是尽量保证复习和新作一块弄,数量上可能有所差别。 复习 树形DP——树的最长路径 这道题是没有…...
Lua与C交互API接口总结
Lua与C交互 1. 常见Lua相关的C API压入元素查询元素获取元素检查元素栈的相关数据操作 2. C调用Lua核心调用函数示例 3. Lua调用C1. C函数注册到Lua(lua_register)示例2. 批量注册(luaL_Reg)示例 1. 常见Lua相关的C API 压入元素…...

DT浏览器很好用
简单的浏览器,又是强大的浏览器,界面简洁大方,操作起来非常流畅😎,几乎不会有卡顿的情况。 搜索功能也十分强大👍,能够快速精准地找到想要的信息。 而且还有出色的兼容性,各种网页都…...

RabbitMQ实践——在管理后台测试消息收发功能
在《RabbitMQ实践——在Ubuntu上安装并启用管理后台》中,我们搭建完RabbitMQ服务以及管理后台。本文我们将管理后台,进行一次简单的消息收发实验。 赋予admin账户权限 登录到管理后台,进入到用户admin的管理页面 点击“set permission”&a…...

vscode卡顿问题处理(vue-official插件)
vue官方扩展由volar升级为vue-official,部分人的ide会变得非常卡顿,这是由于vscode本身一些问题导致,如下图作者解释: 解决方式: 通过禁用Hybrid模式,不使用tsserver来接管语言支持,卡顿会缓解…...
使用Kube-Bench对Kubernetes进行安全检测
使用Kube-Bench对Kubernetes进行安全检测 1. 工具介绍 Kube-Bench是一个开源的Go语言工具,用于自动化检查Kubernetes集群是否符合CIS Kubernetes基准。这些基准包括一系列关于Kubernetes配置和部署安全性的建议和最佳实践。 Kube-Bench执行了一系列针对Kubernete…...

STM32开发过程中碰到的问题总结 - 1
文章目录 前言1. 怎么生成keil下可以使用的文件和gcc下编译使用的makefile2. STM32的时钟树3.怎么查看keil5下的编译工具链用的是哪个4. Arm编译工具链和GCC编译工具链有什么区别吗?5. 怎么查看Linux虚拟机是x86的还是aarch646. 怎么下载gcc-arm的编译工具链7.怎么修…...
hiberfil.sys文件在Windows系统作用
hiberfil.sys文件在Windows系统中起着关键的作用,主要涉及到计算机的休眠功能。以下是关于hiberfil.sys的详细解释: 定义与功能: hiberfil.sys是Windows休眠功能(Windows Hibernation)将内存数据与会话保存至硬盘所需…...

智能制造前沿:ARMxy工控机在机器人控制中
机器人控制系统正逐步成为现代制造业的核心引擎。在这个过程中,ARMxy工业计算机以其独特的优势,成为了驱动这一变革的关键力量。本文将以自动化装配线机器人为例,探讨ARMxy如何通过其低功耗、高性能特性,以及高度灵活性的设计&…...

【CS.AI】AI引领编程新时代:深度探索GitHub Copilot
文章目录 引言0. TOP TAKEAWAYS 重要要点1. Copilot的基本功能2. 技术原理3. 优势与局限优势局限 4. 使用体验4.1 初次使用4.2 在 JetBrains 全家桶中使用 GitHub Copilot1. 安装插件2. 配置插件3. 使用 GitHub Copilot 4.3 日常开发4.4 体验与反馈 5. 对开发者生态系统的影响5…...

Java:爬虫htmlunit抓取a标签
如果对htmlunit还不了解的话可以参考Java:爬虫htmlunit-CSDN博客 了解了htmlunit之后,我们再来学习如何在页面中抓取我们想要的数据,我们在学习初期可以找一些结构比较清晰的网站来做测试爬取,首先我们随意找个网站如下ÿ…...

电池包断路单元DBU的预充电电阻应用案例
当电池组接触器闭合到电机和逆变器上时,逆变器电容器中会有电流涌入。这种非常高的电流至少可能会使接触器老化,并可能永久损坏接触器。 因此,当我们关闭电池组上的接触器时,我们分三个步骤执行此操作: 1.关闭主负极…...

车载网络安全指南 系统层面开发阶段(六)
返回总目录->返回总目录<- 目录 前言 一、统层面产品开发启动 二、系统层面漏洞分析 三、网络安全策略具体化 四、确定网络安全技术需求 五、系统设计 六、系统集成与测试 七、网络安全验证 八、系统层面网络安全评估 九、系统层面产品开发阶段检查 十、产品发…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...

【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...

3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...

热烈祝贺埃文科技正式加入可信数据空间发展联盟
2025年4月29日,在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上,可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞,强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...
深度解析:etcd 在 Milvus 向量数据库中的关键作用
目录 🚀 深度解析:etcd 在 Milvus 向量数据库中的关键作用 💡 什么是 etcd? 🧠 Milvus 架构简介 📦 etcd 在 Milvus 中的核心作用 🔧 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…...
简单介绍C++中 string与wstring
在C中,string和wstring是两种用于处理不同字符编码的字符串类型,分别基于char和wchar_t字符类型。以下是它们的详细说明和对比: 1. 基础定义 string 类型:std::string 字符类型:char(通常为8位)…...