目次
昔閉鎖したブログから復活させた記事です
ごちゃついていますが見たい方はどうぞご覧下さい。
背景
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
まとめ
比較的簡単な操作で高度な認証を利用できるようになりました。設定はまだですが、せっかく使えるようになったので利用してみたいと思います。