接続方法は公式に記載の通りで問題なし。

で、AWSのVPNクライアントだと色々設定が出来ないようなので、OpenVPNで接続するようにする。


やりたい事は下記。

  1. プロキシ通しての接続をしたい
  2. 宛先がAWS側のプライベートIPの時のみVPNになるようにしたい

1. プロキシ
http-proxy 123.456.789.123 8080 stdin basic

通常は認証があると思いますが、この設定でプロキシ接続時にID/PASS入力のダイアログが出る。

2. 先がAWS側のプライベートIPの時のみVPN
route-nopull
route-metric 300
route 172.999.999.0 255.255.240.0 vpn_gateway 300

route-nopull がAWS提供のVPNClientだと対応してなくて、これが出来ない。

route-metricはとりあえずつけてますが、多分要らないと思う。

route *** で指定してるところが、このCIDRBlock宛ての時だけVPN使うようにする設定。

追記

インターネット向けはVPN通したくない場合はスプリットトンネル有効にするだけですね。というか↑の設定が要するにスプリットトンネルした時にサーバから送られてくる設定っぽかった。


あと、プロキシを利用する場合は ClientVPNGatewayを作る時に TCP にしておかないとダメ。デフォだとUDPが選ばれているので留意。


ここから、設定上で困ってた事。

AWS提供のVPNClientだと、接続すると 0.0.0.0をVPNGateway宛てにするルートテーブルが追加される。このせいで全ての宛先がVPNGateway宛てになっちゃう。

なので、まず試したこと。metric指定してこの追加されるルートの優先度を下げる。

指定したmetricにならない。

サーバから設定を強制されてるっぽいので、nopull入れる。

AWS VPNClientはno-pullディレクティブに対応してないエラーが出て設定できない。

という事で、OpenVPNでno-pullつけて、routeを自分で定義する必要ある。

タグ :
#AWS
#VPN
#ClientVPN
#OpenVPN
#特定IP