VPNサーバーをインストールしたパソコンにアクセスするには

SoftEther VPN に関するご質問はこのフォーラムにお気軽にご投稿ください。
Post Reply
meyon
Posts: 6
Joined: Fri Nov 01, 2013 4:01 am

VPNサーバーをインストールしたパソコンにアクセスするには

Post by meyon » Fri Nov 08, 2013 1:56 pm

OSがUbuntuのパソコンにSoftEther VPNサーバーをインストールし、WindowsXPのパソコンからSoftEther VPNクライアントで接続しています。
このとき、Ubuntu機にインストールしてあるファイルサーバー(Samba)にアクセスすることができません。pingの疎通もありません。
Windows機にVPNサーバーをインストールして運用していたときは可能でした。Linuxの制限と聞いたこともあるのですが、VPNサーバー機自身にアクセスすることは不可能なのでしょうか。なにか方法がありましたらご教示ください。
よろしくお願いします。

hiroshi
Posts: 128
Joined: Tue Mar 19, 2013 5:07 pm

Re: VPNサーバーをインストールしたパソコンにアクセスするには

Post by hiroshi » Sun Nov 10, 2013 11:05 am

meyonさん こんばんは~

Tapを使用するのはいかがでしょうか?
http://ja.softether.org/4-docs/1-manual ... F.E7.94.A8

勘違いだったらすみません・・・

naba78
Posts: 32
Joined: Mon Jul 29, 2013 8:53 pm
Location: nara, ja

Re: VPNサーバーをインストールしたパソコンにアクセスするには

Post by naba78 » Tue Nov 12, 2013 8:48 pm

Linux kernel 側の仕様上の制限で、vpnserver から tap デバイスにブリッジした場合、vpnserver を経由して tap デバイスにアクセスできなかった、と記憶しています。
どこかに PacketiX 向けのドキュメントがあったような・・軽く探しましたが、ちょっと見当たりません。

うろ覚えで大変申し訳ないですが、Linux 側でブリッジインターフェースを準備してやれば回避できたと思います。
ブリッジの構成を「仮想HUB -<VPNserverのブリッジ機能>- tap0 -<OSのブリッジ機能>- br0 -<OSのブリッジ機能>- eth0」のような形にして、br0にアドレスを振るイメージです。(嘘ついてたらごめんなさい)

naba78
Posts: 32
Joined: Mon Jul 29, 2013 8:53 pm
Location: nara, ja

Re: VPNサーバーをインストールしたパソコンにアクセスするには

Post by naba78 » Tue Nov 12, 2013 8:51 pm

すみません、hiroshi さんがリンクされた先に、制限事項等を説明するセクションがありました(読んでませんでした)。
そちらの「Linux, FreeBSD, Solaris, Mac OS X オペレーティングシステムで「ローカルブリッジ機能」を使用する場合(略)」が、まさに今回のケースに当てはまると思います。

hiroshi
Posts: 128
Joined: Tue Mar 19, 2013 5:07 pm

Re: VPNサーバーをインストールしたパソコンにアクセスするには

Post by hiroshi » Wed Nov 13, 2013 4:13 am

naba78さん こんにちは~

3.6.11 Linux, FreeBSD, Solaris, Mac OS X オペレーティングシステムで「ローカルブリッジ機能」を使用する場合の注意事項は、下記のとおりです。
http://ja.softether.org/4-docs/1-manual ... 9.E3.80.82

「•Linux オペレーティングシステム内部での制限事項により、VPN 側 (仮想 HUB 側) からローカルブリッジしている LAN カードに割り当てられる IP アドレスに対して通信を行うことはできません。この制限は SoftEther VPN が原因ではなく、Linux の内部構造に原因があります。もし VPN 側 (仮想 HUB 側) から Linux でローカルブリッジに使用しているコンピュータ本体と、何らかの通信を行いたい場合 (たとえば VPN Server / VPN Bridge サービスと HTTP サーバーサービスを両方動作させており、VPN 側からもサーバーサービスにアクセスさせたい場合) は、ローカルブリッジ用の LAN カードを用意して接続し、その LAN カードと既存の LAN カードの両方を物理的に同じセグメントに接続してください (この他の場合においても 「3.6 ローカルブリッジ」 で解説したように、ローカルブリッジに使用する LAN カードはそのための単独のものを用意することが推奨されています)。」

このドキュメントに対する自分の解釈は
①Linuxの場合はLANカードが1枚だとOS内部の制限事項により、サーバー内部への通信が出来ません
②サーバー内部へ通信する場合は、LANカードを2枚を用意して、うち1枚をローカルブリッジ専用に使用してください
だと思っていまして
更に
①LANカードが1枚しか用意できない場合は、tapデバイスで代替が可能です
②但し、VPN側からVPNサーバーに物理的に接続された同一セグメントのネットワークに接続する場合は、tapデバイスと1枚だけのLANカードをOS側でブリッジする必要があります
と考えてました。

自分の環境はレンタルVPSを利用してまして、物理的なLANカードが追加出来ないことからtapデバイスを使用してサーバー内部にアクセスしています。(と思っています^^;)

naba78
Posts: 32
Joined: Mon Jul 29, 2013 8:53 pm
Location: nara, ja

Re: VPNサーバーをインストールしたパソコンにアクセスするには

Post by naba78 » Wed Nov 13, 2013 11:40 pm

hiroshi さん、こんばんわ。

補足説明感謝します(言葉足らずだったようで申し訳ないです)。私が説明したのは、おおよそ後半部分の ② のケースですね。
仮想HUBを既存の(物理的な)ネットワークにブリッジし、かつ VPNClient から VPNServer へのアクセスも実現するという意図と捉え、先の通りコメントさせて頂きました。

> ①Linuxの場合はLANカードが1枚だとOS内部の制限事項により、サーバー内部への通信が出来ません
(中略)
> 自分の環境はレンタルVPSを利用してまして、物理的なLANカードが追加出来ないことからtapデバイスを使用してサーバー内部にアクセスしています。

ドキュメントで推奨・想定する NIC が2枚以上利用できるケースとは、VPNクライアントからVPNサーバー自体へ接続する際、全てブリッジ専用のNICから物理HUBを経由させ、アドレスを付与した側のNICへ間接的にアクセスできる環境の事かと思います。
VPSの例えですが、仮にVPS上で仮想的な物理LANカード(ややこしい・・)を追加できたとしても、仮想HUBと同じセグメントにある、対となるような物理的なLANカードが必要になると思います(要するに、ホスト上でのブリッジが必要)。

なお後半②のケースですが、アドレスの付与先を間違えると、tap(仮想HUB)経由でアクセスできなかったり、eth(物理HUB)経由でアクセスできなかったり、結構面倒臭い事になった記憶があります(理由はドキュメントに記載の通り、設定したのは昔の事なのでかなり曖昧な事しか言えませんが・・)。

hiroshi
Posts: 128
Joined: Tue Mar 19, 2013 5:07 pm

Re: VPNサーバーをインストールしたパソコンにアクセスするには

Post by hiroshi » Thu Nov 14, 2013 5:31 am

naba78さん こんにちは~

naba78さんのご説明で自分のピンボケが少しハッキリしてきました^^;
たぶん「内部」の捉え方が誤っていたと思われます・・・ありがとうございました。
naba78さんの仰るとおりドキュメントに記載されている対処方法が一番良いと思います。

ちなみに自分が使っている(ほとんど使っていませんが^^;)VPS(centos6.3)上のsambaへアクセスするための設定概要は以下のとおりです。(VPN側は192.168.30.0/24)

①VPNサーバー管理マネージャのローカルブリッジ設定の「新しいtapデバイスとのブリッジ接続」にてtapデバイスを作成

②作成したtapデバイスにIPアドレス(VPN側のセグメントと同一)を付与
(※再起動時に自動的に付与するようにVPNサーバーの起動スクリプトに追加しています)
   例)ifconfig tap_vpn 192.168.30.5 netmask 255.255.255.0

③VPN側からのアクセスを許可(iptables)
   例)VPN_NET=192.168.30.0/24
     IPTABLES -A INPUT -s $VPN_NET -j ACCEPT
     IPTABLES -A FORWARD -s $VPN_NET -j ACCEPT

④sambaへのアクセスを許可(smb.confへ追加)
   例)hosts allow = 127. 192.168.30.

※WANへの通信は、VPS自体にグローバルIPが付与されているので、iptablesでnatさせています。

naba78
Posts: 32
Joined: Mon Jul 29, 2013 8:53 pm
Location: nara, ja

Re: VPNサーバーをインストールしたパソコンにアクセスするには

Post by naba78 » Thu Nov 14, 2013 11:18 am

すみません、自分で自分の投稿を読み返していて、かなりおかしな事を書いてる事に気付きました。
最初の投稿は気にせずスルーして下さい・・うろ覚えで書いても良い事ありませんね。
多分何方かからツッコミが入ると思いますが、私も理解が不足しているようです。

meyon
Posts: 6
Joined: Fri Nov 01, 2013 4:01 am

Re: VPNサーバーをインストールしたパソコンにアクセスするには

Post by meyon » Sun Nov 24, 2013 2:52 pm

hiroshiさん、naba78さん、こんばんは。
なかなかフォーラムにこれなくて申し訳ありません。いろいろとありがとうございました。
残念ながら力量不足で十分に理解ができずにいるのですが、NICを増設してそれをローカルブリッジ用にするということで解決できるのかなと考えています。NICの増設は可能です。

http://ja.softether.org/4-docs/1-manual/3/3.6 を見ていますが、まだ漠然としています。
たとえば、既存のNICのIPアドレスが 192.168.1.10 だとしたら、増設するローカルブリッジ用のNICのIPアドレスは 0.0.0.0 としてこれにローカルブリッジを定義。両方のNICを物理的にLANに接続するということでいいのでしょうか?

近いうちに試してみようと思います。

meyon
Posts: 6
Joined: Fri Nov 01, 2013 4:01 am

Re: VPNサーバーをインストールしたパソコンにアクセスするには

Post by meyon » Mon Nov 25, 2013 2:32 pm

NICの増設を、さっそく実施してみました。結果、目的を達成できました。

設定は前に投稿した通り、新たにNICを増設し(eth1)、IPアドレスを 0.0.0.0 として、仮想HUBとeth1とをローカルブリッジ設定しました。

まだSoftEther VPNクライアントからの接続は確認していませんが、スマートホンからのL2TP/IPsec接続で、SoftEther VPNサーバーをインストールしたパソコンのファイルサーバーにアクセスできるようになりました。SoftEther VPNクライアントからも問題ないだろうと思います。

ありがとうございました。

beginnerSS
Posts: 5
Joined: Fri May 25, 2018 4:56 am

Re: VPNサーバーをインストールしたパソコンにアクセスするには

Post by beginnerSS » Thu May 31, 2018 7:14 am

meyonさんのご質問に関連して教えていただきたいことがあります。(こういう投稿でよろしいでしょうか?)

私もcentOS7にsoftEtherを導入して、そのPCにあるサービス(データベース)をVPNクライアント側のPCから使いたいと作業をしています。
このスレッドにあるローカルブリッジに別のNIC(IP:0.0.0.0)を入れる必要があるという情報までたどり着いたので、そのNICから出ているーブルを同じハブ(仮想ハブではなく、機器のハブです)に接続し、windowsPCのSoftEtherVPN サーバー管理ユーティリティから、この追加したNICを仮想ハブにブリッジするように変更して、クライアントPCからVPN接続を試みました。
結果は、NICを追加する以前と同様、192.168.30.10というアドレスはDHCPからクライアントPCに配布されるのですが、VPNの192.168.30.1というアドレスにpingを送っても返ってきませんし、SSHもつながりません。ちなみにNICを追加する前は、SSHはつながりませんがpingは返ってきていました。誤解、見落としがあればご教示よろしくお願いいたします。

また1点あやしい点として、centOS7をノートPCにインストールしていため、追加のNICというのがUSB接続のアダプターとなっています。(nmtuiで見ると認識されているように見えますが... ? )このあたりが問題なのでしょうか?

cedar
Site Admin
Posts: 937
Joined: Sat Mar 09, 2013 5:37 am

Re: VPNサーバーをインストールしたパソコンにアクセスするには

Post by cedar » Thu May 31, 2018 9:18 am

デフォルトで 192.168.30.10 という IP アドレスを配布するのは SecureNAT 機能です。
SecureNAT 機能とローカルブリッジは同時に作動させるとネットワーク障害を起こす可能性があるので、そのような設定は推奨されません。

また、SecureNAT の 192.168.30.1 は、VPN サーバーのアドレスではなく、仮想 DHCP サーバーのアドレスです。
NAT と DHCP サーバーのみの単機能の仮想ホストなのでSSHで接続することはできません。
(それでも、ping には応答するはずですが…)

LAN へのアクセスが不要で、VPN サーバーのホスト PC だけにアクセスできれば良いのであれば、tap モードのローカルブリッジがお薦めです。
ローカルブリッジによって生成された tap デバイスに 192.168.30.2 などの固定アドレスを割り当てて、クライアントからアクセスできます。

beginnerSS
Posts: 5
Joined: Fri May 25, 2018 4:56 am

Re: VPNサーバーをインストールしたパソコンにアクセスするには

Post by beginnerSS » Sat Jun 02, 2018 3:12 am

早速ご教示いただきありがとうございます。

基本的な理解が足りてないことを痛感しました。192.168.30.1 は、VPN サーバーのアドレスではなく、仮想 DHCP サーバーのアドレスというご指摘で少し理解が進んだ気がしましたが、投稿を拝見後も、作成されたtap_vpnをcentoos7機側でブリッジとして登録しようといろいろ試したり穴に落ち込んでおりました。しかし「生成された tap デバイスに 192.168.30.2 などの固定アドレスを割り当て」というご指摘の部分に気づき ifconfig tap_vpn 192.168.30.2 netmask 255.255.255.0 broadcast 192.168.30.255 を流すと、一気につながるようになりました。本当にありがとうございました。ただもう一点、このコマンドをcentoos7機の最初のVPNserver起動時に実行させたいと考え、/usr/lib/systemd/system/vpnserver.service を
[Unit]
Description=SoftEther VPN Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
  ExecStartPost=/sbin/ifconfig tap_vpn 192.168.30.2 netmask 255.255.255.0 broadcast 192.168.30.255
ExecStop=/usr/local/vpnserver/vpnserver stop

[Install]
WantedBy=multi-user.target
に編集してsystemctl daemon-reloadとしてから再起動しても、このコマンド行は実行されていないようです。どこに間違い誤解があるのでしょうか?次々と申し訳ありませんが、どうぞよろしくご教示ください。

cedar
Site Admin
Posts: 937
Joined: Sat Mar 09, 2013 5:37 am

Re: VPNサーバーをインストールしたパソコンにアクセスするには

Post by cedar » Mon Jun 04, 2018 9:17 am

サービスの起動後、tapデバイスが作成されるまで数秒かかるため、間にsleepを入れたほうが良いかも知れません。

beginnerSS
Posts: 5
Joined: Fri May 25, 2018 4:56 am

Re: VPNサーバーをインストールしたパソコンにアクセスするには

Post by beginnerSS » Sun Jun 10, 2018 7:44 am

cedar 様

出張で検証作業、ご報告が遅くなりました。
30秒sleepを入れるとうまく行くようになりました。
ご丁寧なご教示感謝いたします。ありがとうございました!

Post Reply