当前位置: 首页 > news >正文

使用openwrt搭建ipsec隧道

背景:最近同事遇到了个ipsec问题,做的ipsec特性,ftp下载ipv6性能只有100kb, 正面定位该问题也蛮久了,项目没有用openwrt, 不过用了开源组件strongswan, 加密算法这些也是内核自带的,想着开源的不太可能有问题,想着我帮他调试一下开源的,他继续正面定位。顺便学习一下怎么玩一下ipsec。ipsec和strongswanWan网上资料很多,这里我们不再做过多的介绍,我们主要先介绍一下针对同事的该问题,环境怎么搭建。

环境搭建:我们知道ipsec 主要是实现不同局域网网段之间的加密传输,实际对于现网用户的话需要服务器和客户端之间有公网ip,我们这里没有用公网ip也没有什么影响,环境top图如下:

ipsec编译:一开始想着能不能直接用opkg在线安装,发现安装之后会遇到各种各样的问题,解决一个又接着下一个,这条路暂时行不通。我们直接去编译一下带ipsec的openwrt的固件,遇到问题也好解决一点,这里我选择的lean大佬的openwrt源码,在国内我们玩openwrt的玩家基本都在用lean的代码,因为lean的代码适配了国内基本上常见的路由器固件,我们只需要make menuconfig开一下对应产品的宏就可以编译,非常简单上手。

我这里编译的路由器型号是gl.mt3000,lean帮忙我们适配了其它ipsec依赖的strongswan对应的宏,不需要我们去开,截图如下

我们可以看到lean的源码web界面适配了ipsec  ikev1版本,不支持ikev2

我们可以需要自己去改一下ipsec的配置文件ipsec.conf就可以让客户端和服务端连接,配置文件内容如下:

config setupconn %defaultikelifetime=28800keylife=20mrekeymargin=3mkeyingtries=1keyexchange=ikev2conn site_to_siteleft=192.168.250.40 #这里填当前路由器wan ipleftsubnet=192.168.1.0/24 #这里填当前路由器网段leftid=192.168.250.40 #这里填当前路由器wan ipleftauth=secretrightauth=secretright=192.168.250.94 #这里填对方路由器wan iprightsubnet=192.168.10.0/24 #这里填对方路由器网段rightid=192.168.250.94 #这里填对方路由器wan ipike=aes128-sha1-modp2048!esp=aes128-sha1!auto=start

ipsec.secrets配置psk,服务器和客户端psk要保存一致

root@OpenWrt:/etc# cat  ipsec.secrets 
# /etc/ipsec.secrets - strongSwan IPsec secrets file
: PSK "1"
mw : XAUTH "1"

另外一台路由器我们也需要这样配置,就是上面ipsec.conf里面填写ip地址的地方需要和上面反过来就可以了。

我们都编辑好之后,如果之前ipsec进程已经运行了,我们可以用执行命令ipsec restarts,如果之前没有运行,我们需要执行ipsec start, 然后我们可以执行ipsec statusall查看当前的转态,我们可以看到有个connecting,说明正在连接中,如果up前面不是0,那么说明我们ipsec 已经连接上了。

我们配置好ipsec.conf后,发现死活连接不上,up前面一直是0,然后做了一个尝试,把配置文件里面的ipsec.conf里面的ikv2改成了ikv1发现连接上了,之前一直怀疑加密算法有问题,看来加密算法是没有问题,此刻阻塞了。刚好手机拍下了日志,把日志往群里发了一下,细心的群友看出了问题点。

openssl制作证书的时候需要,这里不知道为啥ikv1可以ikv2不行,可以找一下提示的这个函数openssl_plugin_create在哪里定义,安装试一下

然后我搜了一下这个函数是在哪个地方定义的,只需要我们去开一下对应的宏就行

然后重新编译了一下版本,发现连接上去了。

我们简单测试一下:发现只能ping通网关,2台路由器下面的lan侧设备不能互相ping通,之前怀疑策略路由有问题,命令如下

可是不管怎么去改策略路由还是不行,还在页面上去配置了静态路由器,之前在bibi看到过有说需要配置一下静态路由,只能病急乱投医,做了很多尝试还是不行。又继续查询资料,说的是关闭防火墙,因为之前我已经做过了一个尝试,就是只关闭一台路由器的防火墙,没有关闭另外一台路由器的,这次我尝试2台路由器都关闭了,竟然都ping通了。

关闭防火墙命令如下:

etc/init.d/firewall stop

ipsec报文是加密的,我们抓包看一下,是否是这样的,用tcpdump抓了一下,然后报文没有加密,很疑惑,转念一想,不应该呀。可能是抓包点位的问题,我们tcpdump是在协议栈入口抓的,可能还没有经过ipsec加密的地方,然后我又抓了一下wan口的报文,这次对得上了。

我们用iperf3打流测试一下ipv4看一下性能怎么样,性能不是很高,只有20bps,不过规格说的是10bps, 也满足了要求。接下来我们看一下ipv6性能怎么样,直接ftp下载一下文件,速率和ipv4差不多,也是20bps左右。ipv6的配置文件如下:主要和ipv4的区别就是填写ipv4地址的地方都写ipv6的就行。

相关文章:

使用openwrt搭建ipsec隧道

背景:最近同事遇到了个ipsec问题,做的ipsec特性,ftp下载ipv6性能只有100kb, 正面定位该问题也蛮久了,项目没有用openwrt, 不过用了开源组件strongswan, 加密算法这些也是内核自带的,想着开源的不太可能有问题&#xff…...

大语言模型(LLM)模拟金融市场参与者行为

大语言模型(LLM)模拟金融市场参与者行为 研究背景 传统深度学习模型通过识别市场数据历史模式预测市场,但未捕捉个体决策过程。LLM 虽能学习人类对不同提示的反应,但在模拟金融市场参与者时面临挑战:个体投资者不总是理性决策,LLM 可能无法捕捉;LLM 数值和金融知识可靠…...

用一个例子详细说明python单例模式

单例模式是一种设计模式,它确保一个类只有一个实例,并提供一个全局访问点来访问该实例。这在需要控制资源(如数据库连接、文件系统等)的访问时非常有用。 下面是一个使用Python实现单例模式的例子: class Singleton:…...

第1章 量子暗网中的血色黎明

月球暗面的危机与阴谋 量子隧穿效应催生的幽蓝电弧,于环形山表面肆意跳跃,仿若无数奋力挣扎的机械蠕虫,将月球暗面的死寂打破,徒增几分诡异。艾丽伫立在被遗弃的“广寒宫”量子基站顶端,机械义眼之中,倒映着…...

LeetCode--84. 柱状图中最大的矩形【单调栈】

84. 柱状图中最大的矩形 正文 题目如下 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 这道题暴力很简单,但是时间复杂度是O(N^2)&#xf…...

网络工程师 (8)存储管理

一、页式存储基本原理 (一)内存划分 页式存储首先将内存物理空间划分成大小相等的存储块,这些块通常被称为“页帧”或“物理页”。每个页帧的大小是固定的,例如常见的页帧大小有4KB、8KB等,这个大小由操作系统决定。同…...

【Leetcode 每日一题】541. 反转字符串 II

问题背景 给定一个字符串 s s s 和一个整数 k k k,从字符串开头算起,每计数至 2 k 2k 2k 个字符,就反转这 2 k 2k 2k 字符中的前 k k k 个字符。 如果剩余字符少于 k k k 个,则将剩余字符全部反转。如果剩余字符小于 2 k…...

MSA Transformer

过去的蛋白质语言模型以单个序列为输入,MSA Transformer以多序列比对的形式将一组序列作为输入。该模型将行和列注意力交织在输入序列中,并在许多蛋白质家族中使用mask语言建模目标进行训练。模型的性能远超过了当时最先进的无监督学习方法,其…...

Vue.js组件开发-实现全屏焦点图片带图标导航按钮控制图片滑动切换

使用 Vue 实现全屏焦点图片带图标导航按钮控制图片滑动切换 步骤 创建 Vue 项目:可以使用 Vue CLI 快速创建一个新的 Vue 项目。设计组件结构:创建一个包含图片展示区域和导航按钮的组件。实现图片滑动切换逻辑:通过点击导航按钮切换图片。…...

Linux系统上安装与配置 MySQL( CentOS 7 )

目录 1. 下载并安装 MySQL 官方 Yum Repository 2. 启动 MySQL 并查看运行状态 3. 找到 root 用户的初始密码 4. 修改 root 用户密码 5. 设置允许远程登录 6. 在云服务器配置 MySQL 端口 7. 关闭防火墙 8. 解决密码错误的问题 前言 在 Linux 服务器上安装并配置 MySQL …...

Vue 3 30天精进之旅:Day 10 - Vue Router

在现代单页面应用(SPA)中,路由管理是必不可少的一部分。Vue Router是Vue.js官方的路由管理库,它使得在Vue应用中实现路由变得简单而灵活。今天的学习将围绕以下几个方面展开: Vue Router概述安装和基本配置定义路由路…...

人工智能如何驱动SEO关键词优化策略的转型与效果提升

内容概要 随着数字化时代的到来,人工智能(AI)技术对各行各业的影响日益显著,在搜索引擎优化(SEO)领域尤为如此。AI的应用不仅改变了关键词研究的方法,而且提升了内容生成和搜索优化的效率&…...

keil5如何添加.h 和.c文件,以及如何添加文件夹

1.简介 在hal库的编程中我们一般会生成如下的几个文件夹,在这几个文件夹内存储着各种外设所需要的函数接口.h文件,和实现函数具体功能的.c文件,但是有时我们想要创建自己的文件夹并在这些文件夹下面创造.h .c文件来实现某些功能,…...

BMC PSL function(22)-printf()

printf() 含义:Print text formatted to the C library printf() routine specification Format printf(format,[arg1,......,argn]) Parameter ParameterDefinitionformattext, variable names, and control characters that specify the content and format of output t…...

【数据结构】_复杂度

目录 1. 算法效率 2. 时间复杂度 2.1 时间复杂度概念 2.2 准确的时间复杂度函数式 2.3 大O渐进表示法 2.4 时间复杂度的常见量级 2.5 时间复杂度示例 3. 空间复杂度 3.1 空间复杂度概念 3.2 空间复杂度示例 1. 算法效率 一般情况下,衡量一个算法的好坏是…...

pytorch实现循环神经网络

人工智能例子汇总:AI常见的算法和例子-CSDN博客 PyTorch 提供三种主要的 RNN 变体: nn.RNN:最基本的循环神经网络,适用于短时依赖任务。nn.LSTM:长短时记忆网络,适用于长序列数据,能有效解决…...

Java 16进制 10进制 2进制数 相互的转换

在 Java 中,进行进制之间的转换时,除了功能的正确性外,效率和安全性也很重要。为了确保高效和相对安全的转换,我们通常需要考虑: 性能:使用内置的转换方法,如 Integer.toHexString()、Integer.…...

力扣动态规划-14【算法学习day.108】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?建议灵神的题单和代码随想录)和记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关…...

数据结构day02

1 线性表的定义和基本操作 1.1 线性表的定义 分析: 1.1.1 问题一:我们为什么探讨线性表的定义和基本操作 在研究数据结构时,需要重点关注三个方面:逻辑结构、物理结构以及数据的运算。在本节内容里,我们首先来介绍线…...

随笔 | 写在一月的最后一天

. 前言 这个月比预想中过的要快更多。突然回看这一个月,还有点不知从何提笔。 整个一月可以总结为以下几个关键词: 期许,保持期许出现休息 . 期许 关于期许,没有什么时候比一年伊始更适合设立目标和计划的了。但令人惭愧的…...

idea大量爆红问题解决

问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下&#xff0c;限制某个 IP 的访问频率是非常重要的&#xff0c;可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案&#xff0c;使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

热烈祝贺埃文科技正式加入可信数据空间发展联盟

2025年4月29日&#xff0c;在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上&#xff0c;可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞&#xff0c;强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...

海云安高敏捷信创白盒SCAP入选《中国网络安全细分领域产品名录》

近日&#xff0c;嘶吼安全产业研究院发布《中国网络安全细分领域产品名录》&#xff0c;海云安高敏捷信创白盒&#xff08;SCAP&#xff09;成功入选软件供应链安全领域产品名录。 在数字化转型加速的今天&#xff0c;网络安全已成为企业生存与发展的核心基石&#xff0c;为了解…...

CVE-2023-25194源码分析与漏洞复现(Kafka JNDI注入)

漏洞概述 漏洞名称&#xff1a;Apache Kafka Connect JNDI注入导致的远程代码执行漏洞 CVE编号&#xff1a;CVE-2023-25194 CVSS评分&#xff1a;8.8 影响版本&#xff1a;Apache Kafka 2.3.0 - 3.3.2 修复版本&#xff1a;≥ 3.4.0 漏洞类型&#xff1a;反序列化导致的远程代…...