strongswan 搭建 IPSec 实验环境

使用两个CentOS7虚拟机,基于strongswan搭建IPSec VPN实验环境,通过是否配置加密算法,达到产生正常和非正常ESP数据包的目的。本篇为自己填坑记录。

目录

1、准备两个CentOS7虚拟机

2、安装strongswan

3、修改配置文件

4、配置NAT

5、 scp模拟大流量场景

6、修改配置文件去掉加密算法


1、准备两个CentOS7虚拟机

使其能相互ping通 (192.168.220.139 ping 通192.168.220.140)

实验拓扑如图:

strongswan 搭建 IPSec 实验环境_第1张图片

2、安装strongswan

(1)运行以下命令安装strongSwan。

[root@VM_2_2_centos ~]# yum install strongswan -y 

(2)运行以下命查看安装的软件版本。

[root@VM_2_2_centos ~]# strongswan version

3、修改配置文件

参考:https://cloud.tencent.com/developer/article/1505715

3.1.1配置 service 端的 ipsec.conf 文件

使用 vim 打开 ipsec.conf 文件

vim /etc/strongswan/ipsec.conf

添加以下内容

conn %default
        ikelifetime=1440m   
        keylife=60m
        rekeymargin=3m
        keyingtries=0
        keyexchange=ikev1   #ike版本
        authby=secret
 
conn n2n
      left=192.168.220.139
      leftid=192.168.220.139    #本端公网IP
      leftsubnet=192.168.142.0/24    #本端私有网络地址
      right=192.168.220.140      #对端公网IP
      rightsubnet=192.168.72.0/24     #对端私有网络地址
      auto=start   #进程主动时立即建立 IPsec 安全连接
      type=tunnel
      ike=3des-md5-modp1024
      esp=3des-md5

3.1.2 配置 service 端的 ipsec.secrets 文件

使用 vim 打开 ipsec.conf 文件

vim /etc/strongswan/ipsec.secrets

添加以下内容

#本地公网出口IP   #对端公网出口IP     #双方约定的秘钥
192.168.220.139 192.168.220.140 : PSK qcloud123

3.1.3 配置 转发

使用 vim 打开 sysctl.conf 文件

vim /etc/sysctl.conf

添加以下内容

net.ipv4.ip_forward = 1

使配置生效

sysctl -p

3.2.1配置 client 端的 ipsec.conf 文件

使用 vim 打开 ipsec.conf 文件

vim /etc/strongswan/ipsec.conf

添加以下内容

conn %default
        ikelifetime=1440m   
        keylife=60m
        rekeymargin=3m
        keyingtries=0
        keyexchange=ikev1   #ike版本
        authby=secret
 
conn n2n
      left=192.168.220.140
      leftid=192.168.220.140    #本端公网IP
      leftsubnet=192.168.72.0/24    #本端私有网络地址
      right=192.168.220.139      #对端公网IP
      rightsubnet=192.168.142.0/24     #对端私有网络地址
      auto=start   #进程主动时立即建立 IPsec 安全连接
      type=tunnel
      ike=3des-md5-modp1024
      esp=3des-md5

3.2.2 配置 client 端的 ipsec.secrets 文件

使用 vim 打开 ipsec.conf 文件

vim /etc/strongswan/ipsec.secrets

添加以下内容

#本地公网出口IP   #对端公网出口IP     #双方约定的秘钥
192.168.220.140 192.168.220.139 : PSK qcloud123

3.2.3 配置 转发

使用 vim 打开 sysctl.conf 文件

vim /etc/sysctl.conf

添加以下内容

net.ipv4.ip_forward = 1

使配置生效

sysctl -p

3.3.1 启动 service 端 ipsec服务

先关闭防火墙

永久关闭命令:systemctl disable firewalld

再在 /etc/strongswan 路径下输入以下命令

strongswan start

3.3.2 启动 client 端 ipsec服务

先关闭防火墙

永久关闭命令:systemctl disable firewalld

再在 /etc/strongswan 路径下输入以下命令

strongswan start

接着在 client 端输入以下命令建立隧道

strongswan up n2n

效果:

strongswan 搭建 IPSec 实验环境_第2张图片


3.4 查看当前建立的隧道

strongswan status

strongswan 搭建 IPSec 实验环境_第3张图片

4、配置NAT

直接客户端 ping 服务端(192.168.220.140 ping 192.168.220.139)相当于走的外网,不经过 ipsec 加密网关,所以需要 ping 内网的 ip 地址才会经过 ipsec 加密网关产生 ESP 的数据包。

4.1 VM添加网络

目前虚拟机上默认只有一个网卡,服务端和客户端都分别需要再添加一个网卡,但添加网卡之前需要在VM添加网络:(网络 -> 虚拟网络编辑器)

strongswan 搭建 IPSec 实验环境_第4张图片

 根据上面的网络拓扑添加了 142 网段的 vMent2 和 72 网段的 VMnet3 网络

strongswan 搭建 IPSec 实验环境_第5张图片

4.2 虚拟机添加网卡

虚拟机上:右键 -> 设置

strongswan 搭建 IPSec 实验环境_第6张图片

添加网络适配器  

strongswan 搭建 IPSec 实验环境_第7张图片

 虚拟机选择网络

strongswan 搭建 IPSec 实验环境_第8张图片

 4.3 添加后使用 ifconfig 命令查看

strongswan 搭建 IPSec 实验环境_第9张图片

添加完网卡之后可能没有ip地址,需要手动添加:

vim /etc/sysconfig/network-scripts/ifcfg-ens34

通过上面命令分别进入网卡文件后,根据拓扑中的ip地址完成配置

strongswan 搭建 IPSec 实验环境_第10张图片

配置完成后重启网络服务

systemctl restart network

重启完后再通过命令 ifconfig 查看网卡是否有ip地址

配置ip地址参考:https://www.cnblogs.com/yhongji/p/9336247.html


4.4.1 配置 service 端的 nat 转发

# 配置源地址142网段,目标地址220网段的地址转换,从ens33网卡出。
iptables  -t nat  -A POSTROUTING  -s 192.168.142.0/24 -d 192.168.220.0/24 -o ens33 -j  MASQUERADE
# 配置源地址220网段,目标地址142网段的地址转换,从ens34网卡出。
iptables  -t nat  -A POSTROUTING  -s 192.168.220.0/24 -d 192.168.142.0/24 -o ens34 -j  MASQUERADE
永久保存:iptables-save > /etc/sysconfig/iptables

4.4.2 配置 client 端的 nat 转发

# 配置源地址72网段,目标地址220网段的地址转换,从ens33网卡出。
iptables  -t nat  -A POSTROUTING  -s 192.168.72.0/24 -d 192.168.220.0/24 -o ens33 -j  MASQUERADE
# 配置源地址220网段,目标地址72网段的地址转换,从ens34网卡出。
iptables  -t nat  -A POSTROUTING  -s 192.168.220.0/24 -d 192.168.72.0/24 -o ens34 -j  MASQUERADE
永久保存:iptables-save > /etc/sysconfig/iptables

参考:https://blog.csdn.net/lemontree1945/article/details/80598242?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link


4.5 内网互 ping

配置完之后就可以 ping 内网看网路是否通畅了,(如果先用 service 端 ping client 端的内网,可能不通,那就先用 client 端 ping service 端的内网。反过来也一样,具体什么问题我也不清楚)

效果:

strongswan 搭建 IPSec 实验环境_第11张图片

5、 scp模拟大流量场景

ping 包的流量太小,所以使用 scp (security copy)命令传输文件来模拟大流量场景

创建一个有大量数据的TXT,然后使用以下命令,从一段发送到另一端的内网

scp  [本地文件地址] {目的ip}:[对端存储地址]
scp /test.txt 192.168.142.131:/

6、修改配置文件去掉加密算法

参考:https://blog.csdn.net/sinat_20184565/article/details/102923916

strongswan 搭建 IPSec 实验环境_第12张图片

 效果:

strongswan 搭建 IPSec 实验环境_第13张图片

你可能感兴趣的:(IPSec协议簇学习笔记,ipsec)