web-dev-qa-db-ja.com

StrongswanロードウォリアーにローカルLANへのアクセスを許可する

ローカルLinuxホストとリモートVPNゲートウェイの間にIPSecトンネルを正常に確立しました。ロードウォリアーであるため、ローカルLANサブネットが固定されていないため、ゲートウェイによって割り当てられた仮想IPを使用しています。

稼働すると、インターネットトラフィックを含むすべてのトラフィックがトンネルを通過します。ローカルサブネットがトンネルを介してルーティングするすべてのトラフィック以外です。 Strongswanのドキュメントを読んだり、読み直したりしましたが、その方法がわかりません。

私は何をする必要がありますか?

ローカルipsec.conf

config setup

conn %default
        ikelifetime=60m
        keylife=20m
        rekeymargin=3m
        keyingtries=1
        keyexchange=ikev2
        authby=secret


conn VPN
        left=%any
        leftsourceip=%config
        [email protected]
        leftfirewall=yes
        right=52.n.n.n
        rightsubnet=0.0.0.0/0
        [email protected]
        auto=add

サーバーipsec.conf

config setup

conn %default
    ikelifetime=60m
    keylife=20m
    rekeymargin=3m
    keyingtries=1
    keyexchange=ikev2


conn AWSVPN
    left=%any
    leftsubnet=172.31.38.36/32
    [email protected]
    leftfirewall=yes
    authby=secret
    right=%any
    rightsourceip=10.3.0.0/28
    auto=add

ゲートウェイ

IP:172.31.38.36サブネット:172.31.32.0/20

私のマシン

IP:192.168.1.150(変更可能)サブネット:192.168.1.0/24(変更可能)仮想IP:10.3.0.1(Strongswanゲートウェイによって割り当てられます)

編集:

これを追加してローカルネットワークを除外することができましたが、サブネットはハードコードされています:

conn local-net
    leftsubnet=192.168.1.0/24
    rightsubnet=192.168.1.0/24
    authby=never
    type=pass
    auto=route
2
Robin Elvin

評判が低いのでコメントを付けられないので、ここにあります。

稼働中は、インターネットトラフィックを含むすべてのトラフィックがトンネルを通過します。

それはできません。サーバー 'leftsubnet = 172.31.38.36/32'で指定するため、クライアントの 'rightsubnet = 0.0.0.0/0'はこの1つのホストのみに絞り込まれます。

すべてのトラフィックをVPNにルーティングするには、サーバーにも「leftsubnet = 0.0.0.0/0」が必要です。

デフォルトの構成では、Strongswanは表220のサーバーのサブネットにルートを追加します。サーバーのサブネット「0.0.0.0/0」の場合は次のようになります。

$ ip route list table 220
default via 192.168.2.9 dev wlan0  proto static  src 10.3.0.2

また、このテーブルは、デフォルトで使用される「メイン」ルーティングテーブルよりも優先されます。

$ ip rule list
0:      from all lookup local
220:    from all lookup 220
32766:  from all lookup main
32767:  from all lookup default

したがって、クライアントがローカルLANにパケットを送信すると、このパケットはテーブル220によってルーティングされます。このテーブルには、ローカルLANへのルートはなく、VPNサーバーへのデフォルトルートのみがあります。したがって、ローカルLANのパケットをVPNにルーティングしないようにするには、次のように、テーブル220でローカルLANにルートを追加するだけです。

$ ip route add table 220 192.168.1.0/24 dev wlan0

したがって、テーブル220は次のようになります。

default via 192.168.2.9 dev wlan0  proto static  src 10.3.0.2
192.168.2.0/24 dev wlan0  scope link

別の可能な解決策は、VPNサブネットのルーティングに「main」ルーティングテーブル(strongswan.confの「routing_table = 32766」)を使用することです。これは、ローカルLANへのルートがすでに存在するためです。ただし、その場合、現在のデフォルトルートが問題になります。strongswanは、すでにデフォルトルートが存在する場合、別のデフォルトルートを追加しません。

5