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

L2TP客户端之Strongswan移植(三)

说明

上一篇已经移植完strongswan的全套工具,以及内核模块也做了支持。接下来就是移植的工具在开发板的部署了。

资源部署

1、文件放置

有了内核的支持,现在要做的就是把L2TP/IPsec的工具都部署到开发板。

只有正确部署,这些工具才能顺利跑起来。

前面交叉编译xl2tpd和strongswan的时候,都是以开发板的环境进行配置的,我这边的开发板是在/mnt/platform下运行的(bin/sbin/lib/libexec都是存放在这里目录下),所以前面的配置传参都是用/mnt/platform,不要交叉编译的时候随便配置一个路径,不然在部署到开发板的时候,让你头疼的问题会层出不穷。

接下来,我们需要把以下图片中的资源,都拷贝到开发板上的/mnt/platform目录下:

strongswan

其中,xl2tpd和xl2tpd-control也放到上图的sbin目录中。

另外,在etc目录下,创建一个xl2tpd的目录,在xl2tpd这个目录下创建一个xl2tpd.conf文件;

在etc目录下,创建一个ipsec.secrets文件;

在etc目录下,创建一个ppp的目录,把拨号相关的chap-secrets文件,拷贝到该目录下。

在ppp目录下,创建一个options.l2tp.conf文件(该文件名字随意,不过要与xl2tpd.conf里的参数对应上)。

所有配置文件如下图:

etc_strongswan

etc_xl2tpd

etc_ppp

2、配置修改

所有要修改的配置文件,都位于开发板的/mnt/platform/etc下,主要修改的配置文件有:ipsec.conf、ipsec.secrets、xl2tpd.conf、options.l2tp.conf。

  • ipsec.conf
conn %default
  ikelifetime = 60m
  keylife = 20m
  keyexchange = ikev2									//密钥交互协议版本
  rekeymargin = 3m
  keyingtries = 1
  authby = secret
  ike = aes256-sha256-modp2048!							//密钥交互算法
  esp = aes256-sha256-modp2048!							//数据传输算法

# Encryption of traffic to the L2TP server

conn eft-ipsec

  left = %defaultroute
  leftprotoport = 17/1701

  # set ip of l2tp server, default is "192.168.10.100"
  right = 192.168.10.100								//远程L2TP服务器ip
  rightprotoport = 17/%any

  # Auto start of encrytion if negotiation fails

  auto = start

  # Restarting encryption if negotiation fails

  dpdaction = restart

  # Restart encryption on unexpected close

  closeaction = restart

  # Reconnect unlimited number of times

  keyingtries = %forever
  authby = secret
  type = transport										//透传模式

这里的ike以及esp算法,要根据L2TP服务器的配置进行设置,算法不一致,加密认证是无法通过的。

  • ipsec.secrets
# <GATEWAY IP ADDRESS> <SERVER ADDRESS> : PSK "<PRE-SHARED KEY>"
%any 192.168.10.100 : PSK "123456"

192.168.10.100是L2TP远程服务器的IP,123456是预共享密钥的密码。

  • xl2tpd.conf
[lac eft-ipsec]
lns = 192.168.10.100
ppp debug = yes
pppoptfile = /mnt/platform/etc/ppp/options.l2tp.conf
length bit = yes
autodial = yes
redial = yes
redial timeout = 30

/mnt/platform/etc/ppp/options.l2tp.conf是options.l2tp.conf文件的绝对路径,根据自己开发板的实际环境进行设置。

  • options.l2tp.conf
ipcp-accept-local
ipcp-accept-remote
refuse-eap
require-mschap-v2
noccp
noauth
mtu 1280
mtu 1280
noipdefault
nodefaultroute
usepeerdns
connect-delay 5000
name test
password test-vpn

这里的test和test-vpn,是用于L2TP客户端登录的用户名和密码,不涉及IPsec。
而前面ipsec.secrets文件里的密码123456,是和IPsec相关的,用于预共享密钥。两者不冲突。

至此,环境部署完毕,全套配置文件存放到以下路径,有需要的下载自取:
https://download.csdn.net/download/weixin_44362642/86666005

七、启动L2TP

1、先确认板端已开启4G拨号模块,最好试下能否ping通百度,确保网络畅通(或者用有线网络也一样,只要能访问到百度就行)。

2、在板端敲下以下命令:

xl2tpd -C /mnt/platform/etc/xl2tpd/xl2tpd.conf -D

xl2tpd_start

l2tp服务器会分配一个IP给客户端,这里客户端得到的IP为10.199.12.203,通过ifconfig可以查看得到(此时是没有开启ipesc安全加密的):

xl2tpd_ip

xl2tpd_only

此时,服务器就可以访问到的你的开发板了。如果没有安全性的要求,那开发到这里就可以结束了。

而如果对安全性有要求,则继续往后看。

八、启动IPsec

1、在板端敲下以下命令:

ipsec start --nofork --debug-all

ipsec

图片中出现的ah4、esp4等not found可以不用理睬,我们已经把这些模块集成到了内核。因为不是动态装载,所以才会报错,但是不影响工具的运行。

最后结果我们可以从L2TP服务器端看到:

l2tp_ipsec

此时,l2tp/ipsec已成功和服务器建立安全连接,服务器可以访问到的你的开发板了。

(注意:本博客只在CSDN发布,原创不易,禁止抄袭,转载请标明出处和附上原文链接)

相关文章:

  • matplotlib入门之抛砖引玉
  • java-php-python-springboot携手助学助学交流平台计算机毕业设计
  • Android wifi sniffer log总结分析
  • 山东大学数字图像处理实验(二)
  • linux多个jdk时,java -version显示的版本有错误
  • 【论文笔记】An Image Patch is a Wave: Phase-Aware Vision MLP
  • 【前端升全栈】 五分钟了解Node.js
  • 部署若依springboot-vue前后端分离项目(Nginx反向代理 2022)
  • Kafka 优化问题
  • 【opencv-c++】windows10系统VisualStudio2022配置opencv_contrib-4.6.0
  • windows安装动力学仿真软件Frost并计算cassie机器人运动学和动力学
  • 使用 SolidJS 和 TypeScript 构建任务跟踪器
  • 【C++】list的模拟实现
  • 【Kotlin基础系列】第4章 类型
  • Vm虚拟机安装Linux系统教程
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • Angular2开发踩坑系列-生产环境编译
  • CentOS6 编译安装 redis-3.2.3
  • cookie和session
  • JavaWeb(学习笔记二)
  • Mybatis初体验
  • Nacos系列:Nacos的Java SDK使用
  • Protobuf3语言指南
  • tensorflow学习笔记3——MNIST应用篇
  • Vue学习第二天
  • webpack项目中使用grunt监听文件变动自动打包编译
  • Zepto.js源码学习之二
  • 阿里云应用高可用服务公测发布
  • 从重复到重用
  • 服务器从安装到部署全过程(二)
  • 使用Gradle第一次构建Java程序
  • 数据科学 第 3 章 11 字符串处理
  • 用jQuery怎么做到前后端分离
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • #1015 : KMP算法
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (二)JAVA使用POI操作excel
  • (二)linux使用docker容器运行mysql
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (一)插入排序
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • .aanva
  • .gitignore文件—git忽略文件
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .NET企业级应用架构设计系列之技术选型
  • .NET值类型变量“活”在哪?
  • @RequestBody与@ModelAttribute
  • []指针
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——
  • [AR Foundation] 人脸检测的流程
  • [AutoSar NVM] 存储架构