全てのクライアント・トラフィックをVPN経由させたいが、うまくいかない

1,940 views
Skip to first unread message

Controlling CSL

unread,
Jul 30, 2019, 4:11:02 AM7/30/19
to OpenVPN Japan Users Group
クライアントが外部に要求するトラフィックを、全てVPNサーバを経由させようとしていますが、うまく行きません。
server.confに下記の一行を追加しているので、うまく行くはずなのですが…
push "redirect-gateway bypass-dhcp"

ところが、クライアントでVPNに接続する際に、下記のメッセージが出ます(ログに残っている)。
クライアントが自動的に"def1"のフラグを追加しているようです。

Tue Jul 30 14:46:21 2019 PUSH: Received control message: 'PUSH_REPLY,route 10.1.0.0 255.255.255.0,redirect-gateway bypass-dhcp,dhcp-option DNS 208.67.222.222,dhcp-option DNS 208.67.220.220,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5,peer-id 0,cipher AES-256-GCM'

Tue Jul 30 14:46:21 2019 Flag 'def1' added to --redirect-gateway (iservice is in use)

実際、VPNクライアントをオンにした時の、クライアント側の"route print"の結果を見ると、VPNオフの際に使っているクライアント・ローカルのゲートウェイ経由のルーティングがまだ残っています(一行目)。
"def1"のフラグが追加されたためだと思うのですが、なぜこうなってしまうのでしょうか?

ログ中にある"iservice"というものは、クライアント・アプリの権限を管理者に昇格させるもののようですが、何が行われているのか不明です…

ご存じの方、是非ともご教示願います。

PS: OpenVPNの英語版forumに投稿しようとしましたが、スパムチェックに引っかかって投稿できません(「連絡先が含まれる」と)。
  回避方法をご存知の方がおられましたら、こちらもご教示いただけると幸いです。

---------------------------------------------------------------------------------------------------
[Server}
  • Ubuntu 18.04 LTS
  • OpenVPN v2.4.4
[Client]
  • Windows 10 Pro 64bit
  • OpenVPN GUI Client v2.4.7
クライアントのルートテーブル (VPN ON時)
注記:
[10.0.0.0/24 = クライアントのローカルサブネット]
    • 10.0.0.1:   クライアントのローカル・デフォルト・ゲートウェイ
    • 10.0.0.4:   クライアントのNIC
[10.8.0.0/24 = VPNの仮想ネットワーク]
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
         
0.0.0.0          0.0.0.0         10.0.0.1         10.0.0.4     10
         
0.0.0.0        128.0.0.0         10.8.0.5         10.8.0.6    281
         
10.0.0.0    255.255.255.0         On-link          10.0.0.4    266
         
10.0.0.4  255.255.255.255         On-link          10.0.0.4    266
       
10.0.0.255  255.255.255.255         On-link          10.0.0.4    266
         
10.1.0.0    255.255.255.0         10.8.0.5         10.8.0.6    281
         
10.8.0.1  255.255.255.255         10.8.0.5         10.8.0.6    281
         
10.8.0.4  255.255.255.252         On-link          10.8.0.6    281
         
10.8.0.6  255.255.255.255         On-link          10.8.0.6    281
         
10.8.0.7  255.255.255.255         On-link          10.8.0.6    281
       
127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
       
127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
 
127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
       
128.0.0.0        128.0.0.0         10.8.0.5         10.8.0.6    281
     
Server's Public IP  255.255.255.255         10.0.0.1         10.0.0.4    266
    168.63.129.16  255.255.255.255         10.0.0.1         10.0.0.4     11
  169.254.169.254  255.255.255.255         10.0.0.1         10.0.0.4     11
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
        224.0.0.0        240.0.0.0         On-link          10.8.0.6    281
        224.0.0.0        240.0.0.0         On-link          10.0.0.4    266
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link          10.8.0.6    281
  255.255.255.255  255.255.255.255         On-link          10.0.0.4    266


server.conf
port 443
proto tcp
dev tun

ca ca
.crt
cert server
.crt
key server
.key  # This file should be kept secret
dh dh
.pem

server
10.8.0.0 255.255.255.0
push
"route 10.1.0.0 255.255.255.0"

push
"redirect-gateway bypass-dhcp"

push
"dhcp-option DNS 208.67.222.222"
push
"dhcp-option DNS 208.67.220.220"

duplicate
-cn
keepalive
10 120
key
-direction 0
cipher AES
-256-CBC
auth SHA256
user nobody
group nogroup
persist
-key
persist
-tun
status
/var/log/openvpn/openvpn-status.log
log        
/var/log/openvpn/openvpn.log
verb
5
explicit-exit-notify 0

Controlling CSL

unread,
Jul 30, 2019, 4:17:43 AM7/30/19
to OpenVPN Japan Users Group
追記です。
  • VPNはtun構成です。
  • サーバー側のUbuntuマシンは、IPマスカレード設定が施してあり、
VPNクライアント --> VPNトンネル --> VPNサーバ --> VPN側NWのゲートウェイ --> インターネット
とパケットが抜けるようにしてあります。

2019年7月30日火曜日 17時11分02秒 UTC+9 Controlling CSL:

山崎 太郎

unread,
Jul 30, 2019, 5:11:16 AM7/30/19
to openvpn-japa...@googlegroups.com

こんにちは、やまざきです。

当該箇所のソースコードを見てみると、route method が service(iservice利用時)のときには def1 を付加するようになっています。この動作については、このあたりで論じられているようです。

https://sourceforge.net/p/openvpn/mailman/message/35525951/

この動作を回避するのに一番手っ取り早いと思われるのは、クライアント側設定に「route-method exe」を追加した上で、管理者権限でOpenVPNを実行して接続を開始してみる、という方法です。

vpnux Clientでも「ルートの追加にroute.exeを優先する」オプションがありますので、こちらをお試しいただくという方法もありかもしれません。
# vpnux ClientもWindowsサービスを使って使ってユーザー権限で実行できるようにしていますが、def1 の自動付加は行っていません。

<iservice(Interactive Service)とは>
OpenVPN接続時などにネットワーク操作(ルートの追加、削除など)を行いますが、これらのネットワーク操作はWindows管理者権限が必要です。そのため、以前のOpenVPNのバージョンでは、OpenVPNを管理者権限で実行する必要がありました。
しかし、管理者権限への昇格はセキュリティ上のリスクになりますので、OpenVPNをユーザー権限で実行できるようにした仕組みがiserviceです。iserviceはWindowsサービスとしてバックエンドで動作し、OpenVPNの実行に必要なネットワーク操作を代行します。これにより、OpenVPN自体はユーザー権限のまま実行できるようになりました。


On 2019/07/30 17:11, Controlling CSL wrote:
> クライアントが外部に要求するトラフィックを、全てVPNサーバを経由させようとしていますが、うまく行きません。
> server.confに下記の一行を追加しているので、うまく行くはずなのですが…
> |
> push "redirect-gateway bypass-dhcp"
> |
> (参考) https://www.openvpn.jp/document/how-to/#AllTraffic
>            https://openvpn.net/community-resources/reference-manual-for-openvpn-2-4/
>
> ところが、クライアントでVPNに接続する際に、下記のメッセージが出ます(ログに残っている)。
> クライアントが自動的に"def1"のフラグを追加しているようです。
>
> |
> TueJul3014:46:212019PUSH:Receivedcontrol message:'PUSH_REPLY,route 10.1.0.0 255.255.255.0,redirect-gateway bypass-dhcp,dhcp-option DNS 208.67.222.222,dhcp-option DNS 208.67.220.220,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5,peer-id 0,cipher AES-256-GCM'
>
> TueJul3014:46:212019Flag'def1'added to --redirect-gateway (iservice isinuse)
> |
>
> 実際、VPNクライアントをオンにした時の、クライアント側の"route print"の結果を見ると、VPNオフの際に使っているクライアント・ローカルのゲートウェイ経由のルーティングがまだ残っています(一行目)。
> "def1"のフラグが追加されたためだと思うのですが、なぜこうなってしまうのでしょうか?
>
> ログ中にある"iservice"というものは、クライアント・アプリの権限を管理者に昇格させるもののようですが、何が行われているのか不明です…
>           https://community.openvpn.net/openvpn/wiki/OpenVPNInteractiveService
>
> ご存じの方、是非ともご教示願います。
>
> PS: OpenVPNの英語版forumに投稿しようとしましたが、スパムチェックに引っかかって投稿できません(「連絡先が含まれる」と)。
>   回避方法をご存知の方がおられましたら、こちらもご教示いただけると幸いです。
>
> ---------------------------------------------------------------------------------------------------
> *[Server}*
>
> * Ubuntu 18.04 LTS
> * OpenVPN v2.4.4
>
> *[Client]*
>
> * Windows 10 Pro 64bit
> * OpenVPN GUI Client v2.4.7
>
> *クライアントのルートテーブル (VPN ON時)*
>
> 注記:
> *[10.0.0.0/24 = クライアントのローカルサブネット]*
>
> o 10.0.0.1:   クライアントのローカル・デフォルト・ゲートウェイ
> o 10.0.0.4:   クライアントのNIC
>
> *[10.8.0.0/24 = VPNの仮想ネットワーク]*
>
> o 10.8.0.1:   サーバのIPアドレス
> o 10.8.0.5:   不明
> o 10.8.0.6:   クライアントのTAPデバイス
>
> |
> ActiveRoutes:
> NetworkDestination       Netmask         Gateway      Interface Metric
>           0.0.0.0         0.0.0.0        10.0.0.1        10.0.0.4    10
>           0.0.0.0       128.0.0.0        10.8.0.5        10.8.0.6   281
>          10.0.0.0   255.255.255.0        On-link          10.0.0.4   266
>          10.0.0.4 255.255.255.255        On-link          10.0.0.4   266
>        10.0.0.255 255.255.255.255        On-link          10.0.0.4   266
>          10.1.0.0   255.255.255.0        10.8.0.5        10.8.0.6   281
>          10.8.0.1 255.255.255.255        10.8.0.5        10.8.0.6   281
>          10.8.0.4 255.255.255.252        On-link          10.8.0.6   281
>          10.8.0.6 255.255.255.255        On-link          10.8.0.6   281
>          10.8.0.7 255.255.255.255        On-link          10.8.0.6   281
>         127.0.0.0       255.0.0.0        On-link         127.0.0.1   331
>         127.0.0.1 255.255.255.255        On-link         127.0.0.1   331
>   127.255.255.255 255.255.255.255        On-link         127.0.0.1   331
>         128.0.0.0       128.0.0.0        10.8.0.5        10.8.0.6   281
>      Server's Public IP  255.255.255.255         10.0.0.1         10.0.0.4    266
>     168.63.129.16  255.255.255.255         10.0.0.1         10.0.0.4     11
>   169.254.169.254  255.255.255.255         10.0.0.1         10.0.0.4     11
>         224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
>         224.0.0.0        240.0.0.0         On-link          10.8.0.6    281
>         224.0.0.0        240.0.0.0         On-link          10.0.0.4    266
>   255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
>   255.255.255.255  255.255.255.255         On-link          10.8.0.6    281
>   255.255.255.255  255.255.255.255         On-link          10.0.0.4    266
> |
>
>
> *server.conf*
> --
> このメールは Google グループのグループ「OpenVPN Japan Users Group」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには openvpn-japan-user...@googlegroups.com <mailto:openvpn-japan-user...@googlegroups.com> にメールを送信してください。
> このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/openvpn-japan-users-group/78acb908-29af-4e18-aa10-026379516d35%40googlegroups.com <https://groups.google.com/d/msgid/openvpn-japan-users-group/78acb908-29af-4e18-aa10-026379516d35%40googlegroups.com?utm_medium=email&utm_source=footer> にアクセスしてください���

--
::: Taro Yamazaki [ ta...@plum-systems.co.jp ]
: <Blog> http://yamatamemo.blogspot.jp/
: <LinkedIn> http://www.linkedin.com/in/yamata
-------------------------------------------------------------
: Plum Systems Inc.
: 2-3-11-2F, Kurihira, Asao-ku,
: Kawasaki, Kanagawa
: http://www.plum-systems.co.jp/

Controlling CSL

unread,
Jul 31, 2019, 8:27:20 PM7/31/19
to OpenVPN Japan Users Group
山崎様

ご返信、ありがとうございます。
申し遅れましたが、福井と申します。

ご提案の、
  • OpenVPN GUIクライアント側の設定ファイルに"route-method exe"のディレクティブを追加
  • OpenVPN GUIクライアントを管理者権限で実行
を試したところ、”def"フラグの追加を回避できました。誠にありがとうございました!

ところで、この"redirect-gateway"ディレクティブですが、ローカルのネットワーク(マシンの物理NICが繋がっているサブネット)のルーティングには影響しないのでしょうか?
VPNに繋がった状態でroute printしたところ、ローカルネットワークのルーティング情報はまだ残っているようです。もしご存知であれば、ご教示いただけると幸いです(あれこれ質問してしまって、すみません…)。

福井英之


2019年7月30日火曜日 17時11分02秒 UTC+9 Controlling CSL:
クライアントが外部に要求するトラフィックを、全てVPNサーバを経由させようとしていますが、うまく行きません。
Reply all
Reply to author
Forward
0 new messages