前提条件
- WiKIDサーバーが既にインストールされ、管理者権限でWiKIDAdminにアクセスできること。
- OpenVPN Access Server(OpenVPN AS)がインストール済みで、RADIUSを使った認証を追加したいこと。
- 管理者が両方のサーバーにログイン可能であること(ファイアウォールで必要ポートが開いていること)。
- 完全なインストール手順は公式サポートを参照してください: http://www.wikidsystems.com/support/wikid-support-center
サーバー側の設定
- WiKIDAdminに管理者としてログインします。
- 「Network Client」タブを開きます。
- 「Add New network client:」をクリックして、OpenVPN AS を新しいネットワーククライアントとして追加します。
- 追加したネットワーククライアントの「Modify」をクリックし、次の画面で共有シークレット(shared secret)を入力します。
重要: 共有シークレットはOpenVPN AS側と一致させる必要があります。スペースや改行が入らないよう注意してください。
- WiKIDサーバーを再起動して、新しい RADIUS 設定を読み込みます:
# wikidctl restart
これでサーバー側の設定は完了です。
クライアント側の設定
OpenVPN AS には自動生成されるクライアント構成ファイルがあり、ユーザーはWebインターフェースからクライアントアプリ(Windows用など)と構成ファイルをダウンロードできます。
- ユーザーはWiKIDトークン(モバイルアプリまたはトークンアプリ)を起動します。以下はトークンでワンタイムパスワードを取得する手順例です。
- トークンにPINを入力します。
説明: PINはローカルで暗号化され、WiKIDサーバーに送信されます。アカウントが有効で、暗号処理が正しく、PINが一致すれば、ワンタイムパスワード(OTP)が生成されてトークンに返されます。
- 生成されたワンタイムパスワードを使ってOpenVPN ASのWebインターフェースにユーザーとしてログインします。
- ログイン後、クライアント用のダウンロードページに移動し、アプリとクライアント構成ファイル(.ovpn)を入手します。
- Linuxクライアントの例: openvpn をインストール(yum または apt-get を使用)して、ダウンロードしたクライアント構成ファイルを指定して接続します。
# openvpn --config client.ovpn
接続が成功すれば、通常はVPN側のネットワーク(例: 10.0.x.x)からIPアドレスが付与されます。
検証と受け入れ基準
- 管理者:
- WiKIDAdminで新規ネットワーククライアントが正しく登録されている。
- 共有シークレットがOpenVPN AS側と一致している。
- WiKIDサーバー再起動後にエラーが出ていない。
- 利用者(ユーザー):
- WiKIDトークンでPINを入力し、OTPが生成される。
- 生成したOTPでOpenVPN ASのWebログインが成功する。
- ダウンロードした client.ovpn でVPN接続が確立し、正しい内部IPが付与される。
- ログと監査:
- WiKID側の認証ログに成功・失敗の記録が残る。
- OpenVPN ASのログにRADIUS認証の試行結果が残る。
以上が満たされれば設定は受け入れ可能です。
トラブルシューティングとよくある障害
共有シークレット不一致
- 症状: RADIUS認証が失敗する、OpenVPN側のログに共有シークレットエラー。
- 対策: WiKIDAdminで設定した値とOpenVPN ASの設定を再確認。
時刻同期のずれ(トークン方式による影響)
- 症状: 正しいPINを入力してもOTPが一致しない。
- 対策: NTPでサーバーとクライアントの時刻を同期する。
ファイアウォールやネットワーク経路の制約
- 症状: サーバー間で通信できない、RADIUSポートが閉じている。
- 対策: RADIUSで使用するUDPポート(通常1812/1813)やWiKIDが使用するポートを許可する。
トークンが無効またはアカウントがロックされている
- 症状: トークンがOTPを返さない、認証が常に拒否される。
- 対策: 管理コンソールでアカウント状態を確認し、有効化や解除を行う。
クライアント構成ファイルの誤設定
- 症状: openvpn –config でエラーや接続失敗。
- 対策: .ovpn 内のサーバーアドレス、認証方式、証明書パスなどを確認する。
代替アプローチと比較
- 認証方法の代替:
- Google Authenticator や TOTP ベースのトークンを使う方法。
- FreeRADIUS を使い、外部2FAプロバイダと連携する方法。
- メリット/デメリット:
- WiKID は専用のトークン管理とRADIUS統合が得意。セットアップの柔軟性と管理性が強み。
- TOTP系は一般的でクライアントの互換性が高いが、管理機能は別途必要になる場合がある。
選択は既存の運用ポリシー、管理負荷、ユーザーの導入しやすさで決めてください。
管理者と利用者のチェックリスト
管理者チェックリスト:
- WiKIDAdminに新しいネットワーククライアントを追加した
- 共有シークレットを安全に保存した
- ファイアウォールで必要ポートを開放した
- サーバーを再起動しエラーがないことを確認した
- ログの監査とアラートを設定した
利用者チェックリスト:
- WiKIDトークンアプリをインストールした
- PINを設定しOTPが生成されることを確認した
- OpenVPN ASのWebからクライアントをダウンロードした
- client.ovpn で接続して内部IPが取得できることを確認した
ベストプラクティスとセキュリティ注意点
- 共有シークレットは運用中に定期的に見直し、必要ならローテーションする。
- 管理画面のアクセスはIP制限や強力なパスワード、管理者側の二段階認証で保護する。
- ログは中央集約して監査・アラートを設定し、不審な認証試行を早期検知する。
まとめ
- WiKID を OpenVPN AS と連携させることで、RADIUS経由の二要素認証を比較的簡単に導入できます。
- サーバー側でネットワーククライアントの追加と共有シークレット設定を行い、WiKIDサーバーを再起動します。
- ユーザーはWiKIDトークンでOTPを取得し、OpenVPN ASのクライアント構成で接続します。
- 必要な検証項目とトラブルシューティング手順を用意して、運用開始前に十分にテストしてください。
重要: 二要素認証は完全な防御ではありませんが、パスワード漏洩や自動攻撃に対する有効な防御手段です。導入時は運用手順と復旧手順を整備してください。
著者
編集