Softetherの機能制限解除を試みる

目次

昔閉鎖したブログから復活させた記事です
ごちゃついていますが見たい方はどうぞご覧下さい。

背景

SoftEther では「証明書認証」と「外部サーバー認証」は利用できないらしいのですが、ソースを弄ってコンパイルすることで回避可能らしいので実際使うかわかりませんが試してみます。 以下のサイトで知りました。
SoftEther のリージョンロックを外して RADIUS や証明書認証を有効にする
※ この記事で行っていることはすべて合法です。オープンソースのプログラムを書き換えてビルドすることに違法性は全くありません。

環境

RaspberryPi4 2GB RAM Raspbian Buster 環境ってこれ以上何書けばいいかわからないです。許してちょ。

インストール

ダウンロード

GitHub から落としてきます。

$ git clone https://github.com/SoftEtherVPN/SoftEtherVPN.git

どうしても Git を使いたくない場合はリンクを取得して wget でもよいかと思います。

ソースを弄る

いよいよ本題です。修正箇所は1つだけのようなのでさっさと編集します。

$ cd SoftEtherVPN
$ vim src/Cedar/Server.c

Server.c

bool SiIsEnterpriseFunctionsRestrictedOnOpenSource(CEDAR *c)
{
    char region[128];
    bool ret = false;

    // Validate arguments
    if (c == NULL) {
    {
        return false;
    }

    SiGetCurrentRegion(c, region, sizeof(region));

    if (StrCmpi(region, "JP") == 0 || StrCmpi(region, "CN") == 0)
    {
        ret = true;
    }

    return ret; // ret を false に変更する
}

最後の return ret を falseに変更すればいいようです。何が何でも true を返さないようにするというまさに鬼畜技です。

でも絶対 false が返るならこの関数に関する記述は全部不要になりますね(笑)

ビルドする

あとは何事もなかったかのようにビルドするだけです。

$ git submodule init && git submodule update
$ ./configure
$ make -C tmp
$ sudo make -C install

自動起動設定 systemd の Unitファイルが勝手に作られてたので非常に楽でした。

$ sudo systemctl enable softether-vpnserver.service

起動もする場合はいつも通り下記コマンドを打てばOK

$ sudo systemctl start softether-vpnserver.service

status を確認して Active なら大丈夫でしょう。

$ sudo systemctl status softether-vpnserver.service

まとめ

比較的簡単な操作で高度な認証を利用できるようになりました。設定はまだですが、せっかく使えるようになったので利用してみたいと思います。




Archives

2022 (6)
2021 (3)
2020 (4)

Writer

筆者のイメージ画像
kusshie

情報系学部に所属していた社会人1年生です。大学ではネットワークを学んでいましたがまだまだです。 最近は友達に誘われてISPごっこに足を踏み入れました (AS63791)。