如何在我的 Mikrotik CCR2004 路由器和运行 Strongswan 的 Linux 主机之间建立使用 ipsec 加密的点对点 IPv6 GRE 隧道?

如何在我的 Mikrotik CCR2004 路由器和运行 Strongswan 的 Linux 主机之间建立使用 ipsec 加密的点对点 IPv6 GRE 隧道?

我需要将 IPv4 封装在 IPv6 中以用于路由目的。一端是运行 quagga 的 Linux 机器,另一端是 Mikrotik CCR2004。怎么做?

答案1

与 Falcom Momot 上面发布的内容类似,你可以在这里找到我制作的有关各种 VPN 程序的完整 wiki 页面,并在此处链接https://wiki.pttlink.org/wiki/VPN

我在 IPSEC 下有一个部分,涵盖了 strongSwan 到 MikroTik 的链接。

以下内容摘自本节:

strongSwan 配置


以下配置将在安装了 strongSwan 的 FreeBSD 或 Linux 系统上运行。

注意:您也可以使用此配置连接两个非 MikroTik 系统。只需为要连接的每个系统复制以下配置即可。

ipsec配置文件

/etc/ipsec.conf:

  conn <name>
            authby=secret
            auto=route
            keyexchange=ike
            left=<your local IP>
            right=<remote IP of Mikrotik system>
            leftikeport=500
            rightikeport=500
            type=transport
            ike=aes256-sha1-modp1024!
            esp=aes256-sha1!
            dpddelay=5
            dpdtimeout=20
            dpdaction=clear

ipsec.secrets

/etc/ipsec.secrets:

<your local IP> <remote IP of Mikrotik system> :  PSK "<Put your preshared key here>"

MikroTik 配置

最好从 MikroTik 设备上的终端完成以下配置。

注意:您可以使用以下配置连接两个 MikroTik 系统。只需在您想要连接的每个系统上复制以下配置即可。

 /ip ipsec policy
 add src-address=0.0.0.0/0 dst-address=<remote IP of strongswan system> proposal=ike2 ipsec-protocols=esp
 
 /ip ipsec proposal
 add name="ike2" auth-algorithms=sha256,sha1 enc-algorithms=aes-256-cbc,aes-128-cbc lifetime=30m pfs-group=none
 
 /ip ipsec peer
 add name="<name of strongswan system>" address=<local IP> profile=ike2 exchange-mode=main send-initial-contact=yes
 
 /ip ipsec identity
 add peer=<remote IP of strongswan system> auth-method=pre-shared-key secret="<Put your preshared key here>" generate-policy=no
 
 /ip ipsec profile
 add name="ike2" hash-algorithm=sha1 enc-algorithm=aes-256,aes-192,aes-128,3des,des dh-group=modp2048,modp1024 lifetime=8h proposal-check=obey nat-traversal=no dpd-interval=2m dpd-maximum-failures=5

答案2

我们将为此使用 PSK 身份,因为这是一个点对点链接,没有理由用证书使其复杂化。这适用于 Ubuntu 20.04 和 RouterOS 6.48.1。

在 Mikrotik 方面,只需这样做(真正的挑战是让 Strongswan 保持一致)。如果您将默认 IPSec 配置文件用于其他用途,则无法像我一样进行配置,除非每个人都可以使用相同的安全规范。

/ip ipsec proposal change 0 auth-algorithms=sha512 enc-algorithms=aes-256-cbc pfs-group=ecp521
/ip ipsec profile change 0 hash-algorithm=sha512 enc-algorithm=aes-256 dh-group=ecp521 nat-traversal=no
/interface gre6 add name=gre-whatever local-address=2002:1234::1 remote-address=2002:4321::1 ipsec-secret=changeme

在 Linux 中建立 GRE 隧道:

ip -6 tunnel add gre.wat remote 2002:1234::1 local 2002:4321::1

对于 strongswan,设置/etc/ipsec.secrets

2002:1234::1 2002:4321::1 : PSK changeme

为了/etc/ipsec.conf

conn sea1
        fragmentation=yes
        keyexchange=ike
        authby=secret
        ike=aes256-sha2_512-ecp521!
        esp=aes256-sha2_512-ecp521!
        left=2002:4321::1
        leftid=2002:4321::1
        leftsubnet=%dynamic[gre]
        right=2002:1234::1
        rightid=2002:1234::1
        rightsubnet=%dynamic[gre]
        auto=route
        type=transport

现在,您可以在隧道的任一端配置 IPv4 地址,并且它们将通过 1390 的 MTU 进行隧道传输(除非您启用 MTU=9000)。

相关内容