きりのブログ

パソコン、開発関係の思いつきと作業記録

SoftEtherを試してみた

これまでリモートアクセスにはQNAP+OpenVPNCiscoルータ+VPN Clientを使っていました。どちらも普通に使えますが、不満な点もあります。

OpenVPNはクライアントの設定に管理者権限が必要な上、テキストベースなのでちょっと面倒です。
Ciscoはクライアントは使いやすいのですが、ドコモの接続ソフトと併用すると不具合を起こすことがありました。
 
サーバーの導入と設定の手間は、どちらもあまり変わらない印象です。
多くの人に使ってもらうには導入の容易なCiscoかな、と思っていたのですが、クライアントソフトがWindows8を正式にはサポートしておらず、私のパソコンでは起動のたびにインストーラが走るなど謎の挙動をするようになってしまうなど、ちょっと信頼性に欠けます。後継のAnyConnectというクライアントはありますが、追加のライセンスが必要みたいです。ついでに、今はIPSec接続するようにしていますが、Androidはネイティブでは対応しておらず、L2TP/IPSec対応するよう設定変更も検討していた上に、ハードウェア更新も考える頃合いでした。
そんなこんなで、Win8AndroidiPhone(iOS)で簡単に安定して使えて、設定が容易で、サーバー側も含めて安価に、さらに長期的に使えるもの、という要件で探したところ、SoftEtherオープンソース版が良さそうだったので試してみることに。
 
サーバー機としては、そこらのPCにUbuntu+NIC2枚の構成でよろしいかと。私はHyper-V上の仮想マシンにしました。(SoftEther Projectとしては、サーバー機としてもWindowsオススメみたいですのでPC余っていればWindowsのが簡単かも)
 
作業はこちらを参考にさせて頂き、行いました。
 
ハマリどころは、2枚目のNIC(eth1)が自動起動してなくて起動できなかったのと、サービスの自動起動。(自動起動は方式が移り変わっていってて、何が正しいのか分からないです。今回はupdate-rc.dでやりましたが)
 
設定はマニュアル通りで問題なさげ。ただ、設定はサーバーでやらずに、Windows用の管理ツールから行うのが普通らしい。サーバーがInternetからアクセスされる状態だと、管理ツールもそこへ接続することになるので、アタックとかちょっと心配。ツールからアクセスすると、初回はパスワード設定もツールから出来ちゃうという、素晴しい配慮というか、やりすぎというか、何かすごい。
 
ルーターなど上流にFWあったらTCP443の穴開け。L2TP/IPSec使う場合は、UDP500,4500も穴開けが必要(Androidから繋ぐ場合とかね)。いくつかのポートで待ち受けてるので、必要ならそれらポートも開けましょう。
 
クライアントへのIP割り振りは、既存LANのDHCPから行われ、間に変なルーティングが入ることもないので至ってシンプル。ルーティングテーブル確認してないけど、クライアントからのトラフィックは全部流れるみたいだし、直接LANに接続しているように使えそう。その分、無用なトラフィックまで流れるだろうから、モバイル環境だとちょっと心配。それ用のオプションやら設定やらあったけども試してません。
 
Windows用クライアントは、パッと見情報が多すぎて、一般ユーザーが使うには身構えちゃうかも。といっても、そこまで複雑じゃないし、直感的には使えます。接続用のショートカット作成機能があるので、普段はこのショートカットでオン・オフしてもらえば問題ないはず。
 
 
かなりの親切設計で素の状態でも問題なく使えるし、複雑なことも十分に出来ると思いました。
 
試していませんが、サーバーをプライベートネットワークに設置することも出来るので、あまり身構えずに構築できるのは良いと思いました。
 
最近のVPNやらリモートデスクトップ系やらの仕組みって、会社のネットワーク管理者からすると使わせないように塞ぐことは出来るけど面倒に感じると思います。何はともあれ、ご使用は計画的に。
 
2014年03月05日(水)追記
稀な構成なんですが、2つのIPセグメントが同一LANに混在している環境(L2レベルで到達可能)で、「AユーザーはXセグメントにアクセス可能」「BユーザーはYセグメントで」という設定は出来ない模様。SecureNAT/DHCP機能が惜しいところまで行ってるんですが、これを実現するにはルーター機能も実装しないと無理かも。またはDHCPリレーエージェントの機能とか。
ただ、ユーザー毎のパケットフィルタリングルール(アクセスリスト)が設定できるので、発想を変えれば対応できるかも。