使用 Strongswan 進行站點到站點 VPN 和遠端存取 VPN

使用 Strongswan 進行站點到站點 VPN 和遠端存取 VPN

我最近在兩個不同的網站和兩個不同的 ubuntu 伺服器上部署了 Strongswan IKEv2 遠端存取 VPN。一切都很好,但現在我想使用站點到站點 VPN“合併”這兩個站點,這樣我就可以只留下一個遠端訪問 VPN 並訪問兩個子網路。問題是如何做?我的想法是在兩個站點之間使用 Strongswan 並在兩個站點路由器上使用靜態路由來管理流量的 IPSec 隧道。

這些站點配置如下:

A) 
Only One Public IP : x.x.x.x
Subnet : 10.5.5.0/24

B)
One Usable Public IP : x.x.x.x
Subnet : 192.168.5.0/24

問題是:

  1. 我可以在同一個 Strongswan 實例上執行這兩個服務(IKEv2 遠端存取和 IPSec 隧道)嗎?我對此的回答是否定的,如果是這種情況,我準備使用另外兩個 ubuntu 伺服器作為網關來新增一個新的 Strongswan 實例。
  2. 但是,如果我在網站中使用兩台不同的伺服器,則會出現另一個問題,每個網站只有一個公用 IP,我如何消除 IPSec 和 IKEv2 的衝突,因為兩者都應該使用相同的連接埠?我可以更改 IPSec 隧道使用的連接埠嗎?或者也許我不需要 IPSec 隧道的連接埠轉送?

這是我對 IPSec 隧道的參考。 https://www.howtoing.com/setup-ipsec-vpn-with-strongswan-on-debian-ubuntu/

關於如何解決這個混亂的問題有什麼想法嗎?我是否總是需要兩個不同的 IP 位址來運行兩個 VPN 伺服器?開源 DMVPN 可以提供協助嗎?

提前致謝。

答案1

回答你的問題

  1. 是的,您可以在同一個 StrongSwan 實例上執行遠端存取(又稱 Roadwarrior)和站點到站點隧道。
  2. 您可以透過身份驗證方法區分網站到網站連線和遠端存取連線。

這是一個工作設置

connections {
  site {
    pools = ipv4, ipv6

    local {
      auth = pubkey
      certs = site1.example.com.pem
      id = site1.example.com
    }

    remote {
      auth = pubkey
      cacerts =  MyCA.cer
      id = "CN=site2.example.com"
    }

    children {
        site {
            local_ts  = 10.218.2.0/24, ::/0
            remote_ts = 10.218.1.0/24, 2001:470:ffff::/64
        }
    }
  }

  win {
    pools = ipv4, ipv6

    local {
      auth = pubkey
      certs = site1.example.com.pem
      id = site1.example.com
    }
    remote {
      auth = pubkey
      cacerts =  LloydsCertificateAuthorityG2.cer
    }
    children {
      win {
        local_ts = 0.0.0.0/0, ::/0, 10.218.1.0/24, 2001:470:ffff::/64
      }
    }
  }
}

pools {
  ipv4 {
    addrs = 10.218.2.3-10.218.2.254
    dns = 10.218.1.99
    netmask = 255.255.255.0
    subnet = 10.218.2.0/24,10.218.1.0/24
  }

  ipv6 {
    addrs = 2001:470:ffff:2::3-2001:470:ffff:2::ffff
    dns = 2001:470:ffff::99/64
    subnet = 2001:470:ffff:2::/64,2001:470:ffff::/64
  }
}

網站 2 使用 IKEv2 協定和機器憑證連接 CN=site2.example.com

憑證儲存在網站 1 的

/etc/swanctl/rsa/site1.example.com.pem (private key)
/etc/swanctl/x509/site1.example.com.pem (public key)
/etc/swanctl/x509ca/MyCa.cer (Root CA)

重新載入配置swanctl --load-all

為遠端存取用戶端啟用 NAT

iptables -t nat -A POSTROUTING -s 10.218.2.0/24,10.218.1.0/24 -o eth0 -m policy --dir out --pol ipsec -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.218.2.0/24,10.218.1.0/24 -o eth0 -j MASQUERADE

相關內容