LinuxでのFreeRADIUS構築:企業向けWi-Fi・VPNのための「標準」AAAソリューション

Network tutorial - IT technology blog
Network tutorial - IT technology blog

「Wi-Fiのパスワードは何ですか?」という悪夢

50〜100人規模のオフィスを管理している場合、Wi-Fiパスワードを全員で共有するのは苦行です。セキュリティのために上司から毎月パスワードの変更を求められるたびに、何十台ものノートPCやスマートフォンにパスワードを打ち直す羽目になります。さらに悪いことに、退職した従業員が会社の廊下でネットワークを使い続けたり、内部リソースに不正アクセスしたりするリスクもあります。

この問題はVPNを運用する場合、さらに深刻になります。従業員ごとにサーバー上でローカルなユーザー名とパスワードを作成していると、退職時に一箇所でも削除し忘れるだけで、致命的なセキュリティホールを残すことになります。

なぜ共有パスワード(PSK)の使用はリスクが高いのか?

WPA2-Personal(共有パスワード方式)を全員で使用すると、システムは非常に脆弱になります

  • 個人の特定が不可能: 誰が帯域幅の80%を占有しているのか、あるいは誰が不適切なサイトにアクセスしているのかを正確に把握できません。
  • 権限の剥奪が困難: 特定の一人をブロックしたい場合、会社全体のパスワードを変更しなければなりません。
  • ブルートフォース攻撃のリスク: 共有パスワードは従業員が覚えやすいように単純になりがちで、パスワード総当たり攻撃の格好の標的となります。

これらを根本的に解決するには、AAA(Authentication – 認証、Authorization – 認可、Accounting – アカウンティング)の仕組みが必要です。FreeRADIUSは、これを実現するための主要なオープンソースの「救世主」です。

一般的な集中認証の構成案

インフラの規模に応じて、以下のいずれかの方法を選択できます:

  1. LDAP/Active Directory: Windows Serverエコシステムを運用している場合に最適な選択肢です。
  2. ルーターのローカルデータベース: 20人以下の小規模オフィスで、ハイエンドルーターを使用している場合に適しています。
  3. FreeRADIUS Server: 最も柔軟な方法です。これは仲介役の「審判」として機能します。接続要求があると、ルーターはRADIUSに「このユーザーは有効か?」と尋ねます。RADIUSはデータベースを確認し、瞬時に結果を返します。

LinuxへのFreeRADIUSインストール手順

サポートコミュニティが充実しており安定性も高いUbuntu Serverの使用を推奨します。FreeRADIUSは、CiscoやMikrotikからUniFiまで、ほとんどのデバイスと良好に互換します。

ステップ1:パッケージのインストール

Ubuntuでのインストールは非常に簡単です:

sudo apt update
sudo apt install freeradius freeradius-utils -y

インストール完了後、systemctl status freeradius コマンドを使用して、サービスがアクティブな状態であることを確認してください。

ステップ2:ネットワーク機器(NAS)の登録

FreeRADIUSは、信頼されたデバイスからの要求のみを受け入れます。Wi-FiルーターやVPNサーバーのIPアドレスclients.conf ファイルに定義する必要があります。

sudo nano /etc/freeradius/3.0/clients.conf

デバイスの設定を追加します:

client vps_office {
    ipaddr = 192.168.1.1
    secret = MatKhauBiMat2024
    shortname = office-router
}

実務上のアドバイス: 異なるIPレンジを持つ複数の拠点を管理する場合、私はよく toolcraft.app/ja/tools/developer/ip-subnet-calculator を使用します。このツールはCIDRとIPレンジを正確に計算するのに役立ち、設定ミスでルーターがRADIUSに接続できないといったトラブルを防げます。

ステップ3:ユーザーアカウントの管理

まずは users ファイルにユーザーを追加してみましょう。これは、MySQLやLDAPと連携させる前にシステムをテストする最も早い方法です。

sudo nano /etc/freeradius/3.0/users

ファイルの先頭に以下の行を追加します:

nguyenvan_a  Cleartext-Password := "PassCucKho@2024"
    Reply-Message = "Welcome to Office Network"

ステップ4:デバッグモード — トラブルシューティングの極意

設定後、すぐに通常通りサービスを再起動しないでください。多くの人が陥る失敗は、修正したのに動かない理由が分からず途方に暮れることです。FreeRADIUSをデバッグモードで実行しましょう:

sudo systemctl stop freeradius
sudo freeradius -X

ハンドシェイクの全プロセスと構文エラーが画面に詳しく表示されます。“Ready to process requests” という行が表示されれば、90%は成功です。

ステップ5:認証テスト

radtest ツールを使用して、サーバー上からログイン要求をシミュレートします:

radtest nguyenvan_a PassCucKho@2024 localhost 0 testing123

結果として Access-Accept が返ってくれば、システムの準備は完了です。

Wi-Fiルーター/VPNの設定

UniFi ControllerやMikrotikなどのエンドデバイスで、セキュリティモードを WPA2-Enterprise に変更します。その後、以下のパラメータを入力します:

  • RADIUS Server IP: LinuxサーバーのIPアドレス。
  • Shared Secret: MatKhauBiMat2024(ステップ2で設定したもの)。
  • Port: 1812

安定稼働のための重要な注意点

  • ファイアウォールポートの開放: FreeRADIUSはUDPポート1812と1813を使用します。sudo ufw allow 1812/udp の実行を忘れないでください。
  • 時刻同期(NTP): ルーターとサーバーの時刻が5分以上ずれていると、証明書を使用する認証方式(EAP-TLS)は即座に拒否されます。
  • ファイル権限: シークレットキーの漏洩を防ぐため、clients.conf ファイルは必ず freerad ユーザーのみが読み取り権限を持つようにしてください。

FreeRADIUSの導入は最初は少し時間がかかるかもしれませんが、長期的には管理が非常に楽になります。各ユーザーの使用デバイス数を2台に制限したり、退職時に自動的にアクセスを遮断したりすることも可能です。エラーが発生した場合は、迷わず -X モードを起動してください。すべての答えはそこにあります!

Share: