SoftEtherVPN ServerでRADIUS認証を使えるようにするための方法を解説。
SoftEtherVPNサーバは様々なインストール方法があります。
OSS 版 SoftEtherVPNサーバには標準では無効化されているいくつかの機能があります。
RADIUS 認証や固有証明書認証が主な例ですが、それらをサーバ管理マネージャーから設定しようとすると、画像のようなダイアログボックスが表示されて設定できません。これを回避する方法があります。
それは、ソースコードからビルドする方法です。
この記事では、OSS版のSoftEtherでリージョンロックを解除する方法を解説します。
Contents
SoftEther VPN Serverを導入する
SoftEtherVPNは、筑波大学の研究プロジェクトとして開発されている L2-VPN ソフトウェアです。
物理および仮想コンピューターネットワークに低コストでVPNルーターを構築することができます。
デフォルトではリージョン制限がかけられていますが、ソースビルドをすることでリージョンロックを外して利用します。
前提条件
- CentOS7 最小構成
- 2つ以上のネットワークカード
手順1:必須ライブラリをインストール
yum -y groupinstall "Development Tools"
yum -y install readline-devel ncurses-devel openssl-devel wget
手順2:ソースコードを取得
公式サイトのダウンロード->ソースコードとたどり、
「最新のソースコードパッケージのダウンロード」リンクに飛ぶ。
以下を選択してソースコードをダウンロードする。
コンポーネント:Source Code of SoftEther VPN
プラットフォーム:tar.gz package
この記事では「Source Code of SoftEther VPN (Ver 4.38, Build 9760, rtm)」を使用する。
wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.38-9760-rtm/softether-src-v4.38-9760-rtm.tar.gz
手順3:ソースコード修正
Radius認証やNTドメイン認証の外部サーバ認証機能を使うためにリージョンロックを解除します。
tar xvzf softether-src-v4.38-9760-rtm.tar.gz
cd v4.38-9760/
「Server.c」ファイルの「SiIsEnterpriseFunctionsRestrictedOnOpenSource」関数を修正します。
vi src/Cedar/Server.c
viで開き、「/SiIsEnterpriseFunctionsRestrictedOnOpenSource」として/を何回か押していると画像のようなところにたどり着くはずです。
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;
}
return ret; を return false; に直します。
手順3:ビルドしてインストール
ソースコードのルートフォルダに移動してビルドを開始します。
./configure
make
make install
手順4:サービスファイルを作成する
vi /etc/systemd/system/vpnserver.service
手順5:NATの設定をする
NATは、iptables で行います。基本的にコマンドのコピペでいけるはずです。
yum -y install iptables-services
念の為、iptabelsの設定を全て削除します。
iptables -L
iptables -F
IPフォワード設定を投入します。
echo 1 > /proc/sys/net/ipv4/ip_forward
echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -L
service iptables save
手順6:サービスの立ち上げをする
諸々のサービスの起動と自動起動設定をします。
systemctl start iptables vpnserver
systemctl enable iptables vpnserver
SoftEtherVPNサーバの構築が完了しました。