BLOGTIMES
2017/08/08

SoftEther のリージョンロックを外して RADIUS や証明書認証を有効にする

  softether  c 
このエントリーをはてなブックマークに追加

ーザー認証の方法のうち「証明書認証」および「外部サーバー認証」機能はオープンソース版 SoftEther VPN にはまだ実装されていません。ユーザー認証の方法として「匿名認証」または「パスワード認証」のいずれか を選択してください。 - SoftEther のリージョンロックを外して RADIUS や証明書認証を有効にする

OSS 版 SoftEther にはいくつか使えない機能があり、例えばサーバ管理マネージャからRADIUS 認証や固有証明書認証を使おうとすると画像のようなダイアログボックスが表示されます。これについては商用版との差別化のために仕方がないのだろうと諦めていました。

今日はちょっと時間があったので、ふと思い立って GitHub 上のソースコードを読んでみたら、ダイアログボックスのメッセージとは裏腹にコード的にはどちらの認証も実装されているようでした

おかしいなと思って「バージョン更新履歴 (ChangeLog)」を読んでみるもそれらしい痕跡はなにもなし。普段ならばこのまま諦めてしまうところですが、ふと英語版の「Version History (ChangeLog)」を読んでみてびっくり。以下の内容がごっそり日本語版の内容から抜け落ちています

Version History (ChangeLog) - SoftEther VPN Project

SoftEther VPN 4.06 Build 9430 (Beta) (March 20, 2014)
Thank you for waiting!
Added the following five advanced functions into SoftEther VPN Server (experimental):
- RADIUS / NT Domain user authentication function
- RSA certificate user authentication function
- Deep-inspect packet logging function
- Source IP address control list function
- syslog transfer function

この理由については src/Cedar/Server.c の SiIsEnterpriseFunctionsRestrictedOnOpenSource() のコメントの部分に書かれています。

これを見つけた時の心境としては、さしずめエヴァンゲリオン第13話「使徒、侵入」の赤木博士の台詞「開発者のイタズラ書きだわ・・・」という感じでした。

この機能制限(リージョンロック)については自己責任で外すことが可能です。これをやりたい場合には SoftEther を自分でソースからコンパイルしなければなりません。最も単純な改造としては SiIsEnterpriseFunctionsRestrictedOnOpenSource() の 最後の return ret;return false; にするだけでしょうかね。ちなみに機能制限はにサーバ側のみで行われているので、クライアント側の変更は特に必要ないようです。ビルドについては「SoftEther VPN を UNIX 上でビルドする方法」があるので、これに従って環境を整えれば簡単でした。

もっときちんと機能制限を取り払ったパッチを OpenWRT-package-softether のところで見つけたので、こちらを利用するのもアリかもしれません。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/9524
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン