接続方法は公式に記載の通りで問題なし。
で、AWSのVPNクライアントだと色々設定が出来ないようなので、OpenVPNで接続するようにする。
やりたい事は下記。
- プロキシ通しての接続をしたい
- 宛先が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を自分で定義する必要ある。