ローカル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
評判が低いのでコメントを付けられないので、ここにあります。
稼働中は、インターネットトラフィックを含むすべてのトラフィックがトンネルを通過します。
それはできません。サーバー '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は、すでにデフォルトルートが存在する場合、別のデフォルトルートを追加しません。