?最近要使用ipsec vpn 还要结合国密 而且在边缘端使用, 好像用这个库比较好~ 还有结合国密的 先弄个简单教程~

1. 背景
有关VPP以及VPP_SSWAN的内容自行百度吧。

感觉可能是第二个参考连接给的配置可能有问题,按照第一个连接的配置来。
这里同时也记载一下自己的配置。

 (1)  StrongSwan配置、运行及测试 


 (2) IP 安全与 IPsec 协议,实验A :使用Strongswan 建立两台 PC 间安全通信

 https://zhuanlan.zhihu.com/p/100535851

2. 环境
2.1. 版本


$ sudo vppctl # 或者make run
DBGvpp# show version
vpp v23.06-release built by XXX on XXX at 2023-08-02T07:37:51

$ lsb_release -r
Release:        20.04
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.


2.2. 拓扑
更新了下拓扑。


+--------+   +--------+   +--------+   +--------+   +--------+
|   H1   |---|   H3   |---|   H4   |---|   H5   |---|   H2   |
+--------+   +--------+   +--------+   +--------+   +--------+


复制 
# H3
sudo ip addr add 192.168.34.3/24 dev eth2
sudo ip addr add 192.168.13.3/24 dev eth3
sudo ip route add 192.168.45.0/24 via 192.168.34.4 dev eth2
sudo sysctl net.ipv4.ip_forward=1

# H4
## H4->H3
sudo ip addr add 192.168.34.4/24 dev eth3
## H4->H5
sudo ip addr add 192.168.45.4/24 dev eth2
sudo ip route add 192.168.25.0/24 via 192.168.45.5 dev eth2
sudo ip route add 192.168.13.0/24 via 192.168.34.3 dev eth3
sudo sysctl net.ipv4.ip_forward=1

# H5
sudo ip addr add 192.168.45.5/24 dev eth2
sudo ip addr add 192.168.25.5/24 dev eth3
sudo ip route add 192.168.34.0/24 via 192.168.45.4 dev eth2
sudo sysctl net.ipv4.ip_forward=1

# H1
sudo ip addr add 192.168.13.1/24 dev eth2
sudo ip route add 192.168.25.0/24 via 192.168.13.3 dev eth2

# H2
sudo ip addr add 192.168.25.2/24 dev eth2
sudo ip route add 192.168.13.0/24 via 192.168.25.5 dev eth2
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.


现在基本的路由的框架应该都搭起来了。不过如果并不能保证都能ping通,如果不能通,大概就是没有路由,或者地址掉了。总之,需要的是:H3 ping H5以及H1 ping H2都能通即可。后续需要使用到。

还是建议使用FRR-BGP或其他路由协议去搭建,这样自己手动配置有些麻烦。

上面仅是demo, 实际测试找俩个机器就可了

3. 安装strongSwan
先安装必须的库


sudo apt update
sudo apt install -y libpam0g-dev libssl-dev make gcc
  • 1.
  • 2.


使用二进制包也行,就是用sudo apt install strongswan strongswan-swanctl,还有没有需要安装的我不晓得。

考虑到我以后可能修改代码的需求,所以我得需要从源码安装。

我需要的隧道在H3=H5之间,所以只需要给他们安装strongSwan就行了。H4用于查看抓包,H1-H2用于通信。实质上应该H3\H4\H5三台机器也是可以的。


# 下载的目标目录
cd /usr/local/src
# 进行源码下载
wget --no-check-certificate https://download.strongswan.org/strongswan-5.9.6.tar.gz
# 解压软件
tar -zvxf strongswan-5.9.6.tar.gz

# 编译安装
cd strongswan-5.9.6
#配置安装 --prefix=你的安装目录 其他 --enable 为使能插件
## 不过这里建议不要使用--prefix改变默认安装位置。不过不改的话自己就不知道安装到哪里去了
## /usr/local/etc/下放置了配置文件,也是可以修改的。
## 在配置前,可以使用./configure -h查看下帮助命令
./configure --prefix=/usr/local/strongswan  --enable-eap-identity --enable-eap-md5 --enable-eap-mschapv2 --enable-eap-tls --enable-eap-ttls --enable-eap-peap --enable-eap-tnc --enable-eap-dynamic --enable-eap-radius --enable-xauth-eap --enable-xauth-pam  --enable-dhcp  --enable-openssl  --enable-addrblock --enable-unity --enable-certexpire --enable-radattr --enable-swanctl --enable-openssl --disable-gmp --enable-save-keys
make
sudo make install
# 这个要不要应该都行,不过都是仪式的一部分了
sudo ldconfig
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.


安装完毕,验证下版本:


$ ipsec version
Linux strongSwan U5.9.6/K5.15.0-78-generic
University of Applied Sciences Rapperswil, Switzerland
See 'ipsec --copyright' for copyright information.
  • 1.
  • 2.
  • 3.
  • 4.


4. 配置
按照那两个一开始的参考说的,现在使用的都是swanctl了,而不使用starter的方式了。

通用配置是指strongSwan的配置
ipsec.conf/ipsec.secret/ipsec.d的配置文件已经不再使用
swanctl的配置文件
** 请注意,如果按照我上面源码安装的,默认的配置文件是在/usr/local/etc中;但是我这里是在使用VPP的vpp_sswan插件安装的,改了默认配置文件地址,在/etc中。**,下面使用CONF_PREFIX替代目录。

我这里先用psk(preshared key,也就是没有使用证书以及IKE呗)测试一下。后面再学习IKE。

4.1. H3配置
打开${CONF_PREFIX}/swanctl/conf.d/h3.conf。需要使用你自己的地址。文件名不重要。
 


connections {
   h2h {
      local_addrs  = 192.168.34.3
      remote_addrs = 192.168.45.5
      local {
         auth = psk
         id = h3
      }
      remote {
         auth = psk
         id = h5
      }
      children {
         h2h {
            updown = /usr/libexec/ipsec/_updown iptables
            local_ts = 192.168.13.0/24
            remote_ts = 192.168.25.0/24
            rekey_time = 5400
            rekey_bytes = 500000000
            rekey_packets = 1000000
            esp_proposals = aes128gcm128-x25519
         }
      }
      version = 2
      mobike = no
      reauth_time = 10800
      proposals = aes128-sha256-x25519
   }
}

secrets {
  ike-h2h {
    id = h3
    secret = simplepsk
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.


4.2. H5配置
打开${CONF_PREFIX}/swanctl/conf.d/h5.conf。需要使用你自己的地址。文件名不重要。


connections {
   h2h {
      local_addrs  = 192.168.45.5
      remote_addrs = 192.168.34.3

      local {
         auth = psk
         id = h5
      }
      remote {
         auth = psk
         id = h3
      }
      children {
         h2h {
            updown = /usr/libexec/ipsec/_updown iptables
            local_ts = 192.168.25.0/24
            remote_ts = 192.168.13.0/24
            rekey_time = 5400
            rekey_bytes = 500000000
            rekey_packets = 1000000
            esp_proposals = aes128gcm128-x25519
         }
      }
      version = 2
      mobike = no
      reauth_time = 10800
      proposals = aes128-sha256-x25519
   }
}

secrets {
   ike-h2h {
     id = h5
     secret = simplepsk
   }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.


4.3. 说明
h2h是连接的名字,启动协商的时候需要使用到。
secrets 下是用于认证的密钥信息,本实验中使用 PSK,预共享方式。auth也要设置为psk
id就是标识,随便起,不冲突能够标识就行(当然要自己能看懂、有意义啊)
如果不配置local_ts和remote_ts字段,则对所有的ip报文加解密。如果指定上述字段,则是对指定的数据流进行加密。设置这个注意是成对的,两个配置是相反的。否则可能会报错:“Traffic Selectors Unacceptable”。不设置的情形没有测试。
5. 测试
5.1. 在H3和H5开启ipsec

 


# H3 和 H5
## 开启ipsec
$ sudo ipsec start
$ sudo ipsec status
Security Associations (0 up, 0 connecting):
  none

# 启动strongswan的后台(这里后面应该是需要的,还是起来吧)
$ sudo systemctl restart strongswan.service
$ sudo systemctl status strongswan.service
● strongswan.service - strongSwan IPsec IKEv1/IKEv2 daemon using swanctl
     Loaded: loaded (/lib/systemd/system/strongswan.service; disabled; vendor preset: enabled)
     Active: active (running) since Fri 2023-08-04 15:44:01 CST; 9min ago
    Process: 12141 ExecStartPost=/usr/sbin/swanctl --load-all --noprompt (code=exited, status=0/SUCCESS)
   Main PID: 12122 (charon-systemd)
     Status: "charon-systemd running, strongSwan 5.9.6, Linux 5.15.0-78-generic, x86_64"
      Tasks: 19 (limit: 18943)
     Memory: 2.8M
     CGroup: /system.slice/strongswan.service
             └─12122 /usr/sbin/charon-systemd


## 加载conf文件
$ sudo swanctl --load-all
loaded ike secret 'ike-h2h'
no authorities found, 0 unloaded
no pools found, 0 unloaded
loaded connection 'h2h'
successfully loaded 1 connections, 0 unloaded


# H3和H5有一个开启就行了
$ sudo ipsec up h2h
initiating IKE_SA h2h[2] to 192.168.45.5
generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(REDIR_SUP) ]
sending packet: from 192.168.34.3[500] to 192.168.45.5[500] (240 bytes)
received packet: from 192.168.45.5[500] to 192.168.34.3[500] (248 bytes)
parsed IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(CHDLESS_SUP) N(MULT_AUTH) ]
selected proposal: IKE:AES_CBC_128/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/CURVE_25519
authentication of 'h3' (myself) with pre-shared key
establishing CHILD_SA h2h{4}
generating IKE_AUTH request 1 [ IDi N(INIT_CONTACT) IDr AUTH SA TSi TSr N(MULT_AUTH) N(EAP_ONLY) N(MSG_ID_SYN_SUP) ]
sending packet: from 192.168.34.3[500] to 192.168.45.5[500] (256 bytes)
received packet: from 192.168.45.5[500] to 192.168.34.3[500] (208 bytes)
parsed IKE_AUTH response 1 [ IDr AUTH SA TSi TSr ]
authentication of 'h5' with pre-shared key successful
IKE_SA h2h[2] established between 192.168.34.3[h3]...192.168.45.5[h5]
scheduling reauthentication in 10331s
maximum IKE_SA lifetime 11411s
selected proposal: ESP:AES_GCM_16_128/NO_EXT_SEQ
CHILD_SA h2h{4} established with SPIs c3d933bf_i cb582e19_o and TS 192.168.13.0/24 === 192.168.25.0/24
connection 'h2h' established successfully

# 查看ipsec状态
$ sudo ipsec status
Security Associations (1 up, 0 connecting):
         h2h[2]: ESTABLISHED 82 seconds ago, 192.168.34.3[h3]...192.168.45.5[h5]
         h2h{4}:  INSTALLED, TUNNEL, reqid 1, ESP SPIs: c3d933bf_i cb582e19_o
         h2h{4}:   192.168.13.0/24 === 192.168.25.0/24
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.


5.2. 在H1 ping H2


ping 192.168.25.2 -I 192.168.13.1
  • 1.


5.3. 在H4抓包
查看H4抓包,可以看到抓的包已经经过了ESP的处理,且使用的是隧道的地址。


$ sudo tcpdump -nvvv -i any esp -xxx
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked v1), capture size 262144 bytes
15:01:06.860259 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ESP (50), length 140)
    192.168.34.3 > 192.168.45.5: ESP(spi=0xcb582e19,seq=0x86f), length 120
        0x0000:  0000 0001 0006 a036 9f10 4702 0000 0800
        0x0010:  4500 008c 0000 4000 4032 69e7 c0a8 2203
        0x0020:  c0a8 2d05 cb58 2e19 0000 086f 8e3b a3f7
        0x0030:  4220 aae0 cde9 d6d3 53c8 b01e d5a1 2695
        0x0040:  832b e2bb 44ad bc81 5819 42dc 3295 14c2
        0x0050:  bfc8 e2e5 7ddb 257d 1481 a1f6 442d 0347
        0x0060:  10c0 c308 adba d2f2 dc8e 8f22 478b 636d
        0x0070:  26df c54b 612c 948a 8883 df8b fc76 d72d
        0x0080:  8398 f606 c57c 975b 0e8a 352a 1a8c 4b8f
        0x0090:  e776 7d6b 07f9 bb3f fb95 3041
15:01:06.860264 IP (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto ESP (50), length 140)
    192.168.34.3 > 192.168.45.5: ESP(spi=0xcb582e19,seq=0x86f), length 120
        0x0000:  0004 0001 0006 a036 9f10 32ba 0000 0800
        0x0010:  4500 008c 0000 4000 3f32 6ae7 c0a8 2203
        0x0020:  c0a8 2d05 cb58 2e19 0000 086f 8e3b a3f7
        0x0030:  4220 aae0 cde9 d6d3 53c8 b01e d5a1 2695
        0x0040:  832b e2bb 44ad bc81 5819 42dc 3295 14c2
        0x0050:  bfc8 e2e5 7ddb 257d 1481 a1f6 442d 0347
        0x0060:  10c0 c308 adba d2f2 dc8e 8f22 478b 636d
        0x0070:  26df c54b 612c 948a 8883 df8b fc76 d72d
        0x0080:  8398 f606 c57c 975b 0e8a 352a 1a8c 4b8f
        0x0090:  e776 7d6b 07f9 bb3f fb95 3041
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.


6. 问题记录
使用swanctl --load-all,有时候无法连接上,即便使用了ipsec start也不行,会显示


connecting to 'unix:///var/run/charon.ctl' failed: Connection refused
failed to connect to stroke socket 'unix"//var/run/charon.ctl'
  • 1.
  • 2.


具体原因不知道,怎么解决也不知道。

可以使用下面的这个命令,


$ sudo /usr/libexec/ipsec/charon
  • 1.


但是这个命令启动之后,可能还是无法解决问题,查看journalctl -xe会找到


charon too long to start... - kill kill
  • 1.


这个时候就只能等着了,等过一会儿它自己就好了。怀疑是我配置有问题,但是不知道到底哪里有问题。所以每次修改了配置重启都很痛苦。

最后排查发现,可能就是差了一个sudo systemctl restart strongswan.service,所以还是把这个服务给启动吧,然后上述解决步骤应该就不需要了。

以上原文:  https://blog.51cto.com/basilguo/6963463

/# 直接下载 可能木有~~

试试能不能从 pool/universe/s/strongswan/ 下载 就不用编译了~ http://ftp.sjtu.edu.cn/ubuntu/pool/universe/s/strongswan/

原版的命令安装

直接yum 和apt也可

/# 编译

[有点恶心啊 编译报错] <编译带国密版本-- 关闭也不行 >  ===但是我 docker 18.04 没有问题~~ 桌面版本报的这个错~~

../../libtool: eval: line 7963: unexpected EOF while looking for matching `"'
../../libtool: eval: line 7964: syntax error: unexpected end of file
Makefile:1744: recipe for target 'libstrongswan.la' failed
make[5]: *** [libstrongswan.la] Error 2
make[5]: Leaving directory '/media/root/Disk21/strongswan-master/src/libstrongswan'
Makefile:2057: recipe for target 'install-recursive' failed
make[4]: *** [install-recursive] Error 1
make[4]: Leaving directory '/media/root/Disk21/strongswan-master/src/libstrongswan'
Makefile:2214: recipe for target 'install' failed
make[3]: *** [install] Error 2
make[3]: Leaving directory '/media/root/Disk21/strongswan-master/src/libstrongswan'
Makefile:536: recipe for target 'install-recursive' failed
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory '/media/root/Disk21/strongswan-master/src'
Makefile:593: recipe for target 'install-recursive' failed
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory '/media/root/Disk21/strongswan-master'
Makefile:890: recipe for target 'install' failed
make: *** [install] Error 2

//# x86编译, 按代码里的指南~~  已完成

//# arm 交叉编译, 有一丢丢不一样~~  已完成

//# 带国密版本的代码库

 https://github.com/zhangke5959/strongswan

 https://github.com/highland0971/strongswan-gmalg-merge

感谢大佬的代码

//# 配置可是太烦了 

参考1  https://help.aliyun.com/zh/vpn/configure-strongswan?utm_content=g_1000230851

//# 关于使用 ( 我主要是在arm中 ,所以总结的问也是arm中的 )

命令:

charon  ( ipsec start看不出个对错 , 所以用这个起看下  )

应该这俩个导致启动失败, 其实都是一个原因arm没tun, 但一般内核是有的就是没开启 需要重新编译一下了, 每个平台不一样 ,所以自己搞吧  <最后更新了系统内核okay了, strongswan正常启动了>

//1 ( 建个文件去就行,不过正常应该自己能生成啊 不用手动建,建完了 后面还是报错 )

00[LIB] failed to open /dev/net/tun: No such file or directory
00[KNL] failed to create TUN device


//2 ( 系统里没tun的问题上面也是~~ )

00[LIB] failed to configure TUN device: Inappropriate ioctl for device
00[KNL] failed to create TUN device

ipsec start

之前都用这个命令

ipsec status 

成功 :

Security Associations (0 up, 0 connecting):
  none

不成功  : 无返回 

swanctl --load-all

没启动成功时:

connecting to 'unix:///var/run/charon.vici' failed: Connection refused
Error: connecting to 'default' URI failed: Connection refused

ipsec up xxx

[ 背景是自己连自己测试  ] < 错误细节看 var/log/syslog >

错误1:

控制台

received NO_PROPOSAL_CHOSEN notify, no CHILD_SA built

failed to establish CHILD_SA, keeping IKE_SA

log

[ESP] xxxxx

看出算法不对

解决

秘钥协商不对 , 好纳闷 不明觉厉 修改配置( proposals  都删了 想使用默认也不行 ) 换个算法 , 用3des吧 果然这个问题过了

esp_proposals =3des-sha1

proposals =3des-sha1-modp1536

esp_proposals =aes128-sha1

proposals = aes128-sha256-modp3072,aes128-sha1-modp2048

再或 这俩结合

错误2:

控制台

failed to install SAD entry: already installed

failed to install SAD entry: already installed

unable to install inbound and outbound IPsec SA (SAD) in kernel

failed to establish CHILD_SA, keeping IKE_SA

parsed INFORMATIONAL response 2 [ D ]

log

[ESP] error: IPsec SA is not inbound 

[ESP] failed to install SAD entry: already installed 

[IKE] unable to install inbound and outbound IPsec SA (SAD) in kernel 

[IKE] failed to establish CHILD_SA, keeping IKE_SA 

但是 ipsec statusall 看着好像成功了, 看来1台机器有点费劲 <好像就不能这样啊,1台自己连自己>

Connections:
         h2h:  192.168.0.232...192.168.0.232  IKEv2
         h2h:   local:  uses pre-shared key authentication
         h2h:   remote: uses pre-shared key authentication
         h2h:   child:  192.168.0.0/24 === 192.168.0.0/24 TUNNEL
Security Associations (2 up, 0 connecting):
xxxx 省略

两台机器的测试 - 连接是成了 

看是否真用到了ipsec传输哈 - 用 tcpdump -i ipsec0  看下能接收到数据就是连通

错误1: ssh崩了 关了ipsec ssh恢复~~ 不知道哪里配置错误 <因为我俩个ip一个网段下的 一个 0.1 一个0.2>[  这个太恶心了 只有在arm时这样, linux时可以正常 ]

错误2: 错误描述: 用strongswan建立ipsec连通后,互Ping内网地址不通

[ 原因 应该还是路由没配好 影响了 所有流量都加密所以不行,应该是配置错误 ]

---- linux 成功,带国密, ssh正常

国密国际密码都可以一个版本都可以跑

用ping测试 ( 两边都通正确, 配置错误时ping不通但另一边也可收到 )

tcpdump -i ipsec0    虚拟网卡看未加密数据, 连接成功

tcpdump -i enp6s18 port 4500    主网卡看加密数据, 证明真的通了  (主网卡的名都变了)

注意1: 一定要给虚拟网卡设置ip 和加路由 ,在启动后,up前

也可以在/opt/ss-gmalg/libexec/ipsec/_updown (脚本文件)中加 , 要是不会 就手动吧~ 只不过重启ipsec就没了~

ifconfig ipsec0 172.16.0.2 netmask 255.255.255.0 或 ip addr add 172.16.0.1/24 dev ipsec0

ip r a 172.16.0.1 dev ipsec0 ( 经测试应该没用 ,否则iptables save应该有东西)

注意2:

虚拟ip的网段哦~

 local_ts = 192.168.25.0/24
 remote_ts = 192.168.13.0/24

---- arm 不带国密正常,ssh也不影响拉,带国密的待研究

国密报错:  load插件时 并没有gmalg

日志 configured DH group CURVE_SM2 not supported 

最后通过配置修改,可以了 但是国密能用国际密就不行了(暂时俩种分开编译使用),插件显示有,但好多算法用不了

--- 说到这里来个算法汇总描述

encryption: AES_CBC[aes] AES_ECB[aes] 3DES_CBC[des] DES_CBC[des] DES_ECB[des] RC2_CBC[rc2] CAMELLIA_CBC[openssl]
              CAST_CBC[openssl] BLOWFISH_CBC[openssl] NULL[openssl]
  integrity:  HMAC_MD5_96[openssl] HMAC_MD5_128[openssl] HMAC_SHA1_96[openssl] HMAC_SHA1_128[openssl]
              HMAC_SHA1_160[openssl] HMAC_SHA2_256_128[openssl] HMAC_SHA2_256_256[openssl] HMAC_SHA2_384_192[openssl]
              HMAC_SHA2_384_384[openssl] HMAC_SHA2_512_256[openssl] HMAC_SHA2_512_512[openssl] CAMELLIA_XCBC_96[xcbc]
              AES_XCBC_96[xcbc] AES_CMAC_96[cmac]
  aead:       AES_GCM_16[openssl] AES_GCM_12[openssl] AES_GCM_8[openssl] CHACHA20_POLY1305[openssl]
  hasher:     HASH_SHA1[sha1] HASH_MD5[md5] HASH_SHA2_224[sha2] HASH_SHA2_256[sha2] HASH_SHA2_384[sha2]
              HASH_SHA2_512[sha2] HASH_MD4[md4] HASH_SHA3_224[openssl] HASH_SHA3_256[openssl] HASH_SHA3_384[openssl]
              HASH_SHA3_512[openssl] HASH_IDENTITY[openssl]
  prf:        PRF_KEYED_SHA1[sha1] PRF_HMAC_MD5[openssl] PRF_HMAC_SHA1[openssl] PRF_HMAC_SHA2_256[openssl]
              PRF_HMAC_SHA2_384[openssl] PRF_HMAC_SHA2_512[openssl] PRF_FIPS_SHA1_160[fips-prf] PRF_AES128_XCBC[xcbc]
              PRF_CAMELLIA128_XCBC[xcbc] PRF_AES128_CMAC[cmac]
  xof:        XOF_MGF1_SHA1[mgf1] XOF_MGF1_SHA224[mgf1] XOF_MGF1_SHA256[mgf1] XOF_MGF1_SHA384[mgf1]
              XOF_MGF1_SHA512[mgf1] XOF_SHAKE128[openssl] XOF_SHAKE256[openssl]
  drbg:       DRBG_CTR_AES128[drbg] DRBG_CTR_AES192[drbg] DRBG_CTR_AES256[drbg] DRBG_HMAC_SHA1[drbg]
              DRBG_HMAC_SHA256[drbg] DRBG_HMAC_SHA384[drbg] DRBG_HMAC_SHA512[drbg]
  dh-group:   ECP_256[openssl] ECP_384[openssl] ECP_521[openssl] ECP_224[openssl] ECP_192[openssl] ECP_256_BP[openssl]
              ECP_384_BP[openssl] ECP_512_BP[openssl] ECP_224_BP[openssl] MODP_3072[openssl] MODP_4096[openssl]
              MODP_6144[openssl] MODP_8192[openssl] MODP_2048[openssl] MODP_2048_224[openssl] MODP_2048_256[openssl]
              MODP_1536[openssl] MODP_1024[openssl] MODP_1024_160[openssl] MODP_768[openssl] MODP_CUSTOM[openssl]
              CURVE_25519[openssl] CURVE_448[openssl]
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.

ifconfig 

看看链接成功了吗 , 成功 rx tx 都有数据哦~~

//# 使用模式

直接下载命令安装的 应该是不带tun的 用内核态的xfm的 ,自己编译的话国密版本的 应该是默认带了--enable-libipsec 这个就是用了tun 但性能肯定不如xfm哈~

//# 单片机上的vpn

顺便问一下单片机上的ipsec还有wireguard有人搞过吗?

======

-------

  whaosoft aiot