共有WiFiパスワードの問題点
ほとんどの小規模オフィスやスタートアップでは、壁にWiFiパスワードが書かれた付箋が貼られているのをよく目にします。これはWPA2-Personal (PSK)です。便利ではありますが、成長中のビジネスにとってはセキュリティ上の負債となります。従業員が退職するたびに、セキュリティを維持するために建物内の全デバイスのパスワードを変更しなければなりません。現実には、ほとんどのチームはこれを行わず、ネットワークは元従業員や付箋を盗み見た誰に対しても無防備なまま放置されています。
多くの基本的なオフィス環境では、従業員、プリンター、ゲストが一つの「フラットな」ネットワークに混在しています。これは大きなリスクです。私は、たった一台のゲスト用ノートPCがランサムウェアに感染し、わずか30分足らずで会社全体のNASを暗号化してしまった事例を見てきました。そのような場合の復旧コストは、最初から適切なネットワークを構築する費用をはるかに上回る1万ドル(約150万円)以上に達することもあります。
根本的な原因:アイデンティティと分離
標準的なWiFiが不十分なのは、「アイデンティティ(身元)」と「分離」が欠けているからです。WPA2-PSKはパスワードを検証しますが, 個人を検証するわけではありません。「ユーザーA」と「ユーザーB」のどちらが帯域を独占しているのか、あるいは人事の機密ファイルを探っているのかを判別することはできません。
アイデンティティに加えて、アクセスの範囲という問題もあります。VLAN(仮想ローカルエリアネットワーク)のタギングがなければ、アクセスポイント(AP)は単なるブリッジとして機能し、すべてのトラフィックを一つのバケツに放り込みます。個人の資格情報を検証し、ユーザーの役割に基づいてトラフィックを特定の「レーン」に振り分けるアーキテクチャが必要です。
企業向けと個人向けWiFiアプローチの比較
設定方法を見る前に、WPA3-Enterpriseが標準的な選択肢とどのように異なるかを確認しましょう。
WPA2/WPA3-Personal (PSK)
- 仕組み:すべてのデバイスが単一の事前共有キー(PSK)を共有します。
- 対象:ホームユーザーや5人未満の小規模店舗。
- 注意点:個別の責任追及が不可能です。一度漏洩すると、境界線全体のセキュリティが損なわれます。
クラウド管理型ハードウェア(Ubiquiti、Cisco Merakiなど)
- 仕組み:ウェブポータルで管理される専用のAP。
- 対象:GUIベースの運用予算がある中堅企業。
- 注意点:ハードウェアコストが高く、継続的なライセンス料が発生します。
LinuxソフトウェアAP (hostapd + FreeRADIUS)
- 仕組み:互換性のあるWiFiカードを搭載した標準的なLinuxサーバー。802.1Xで認証を処理します。
- 対象:完全な制御とライセンス料ゼロを求めるITチーム。
- 強み:ルーティング、ログ記録、ファイアウォール設定における比類なき柔軟性。
Linux hostapdアプローチ의メリットとデメリット
私はこのセットアップを50ユーザー以上の本番環境で運用してきましたが、その安定性は素晴らしいものです。ただし、特定のスキルセットが必要になります。現実的なチェックポイントは以下の通りです:
メリット:
- きめ細かな制御:ユーザーが接続した瞬間に特定のアクションをスクリプトで実行できます。
- ライセンス料ゼロ:APごとやユーザーごとの月額料金はかかりません。
- WPA3ネイティブ対応:最新のセキュリティ規格であるSAEやGCMP-256を簡単に実装できます。
- データの主権:ログは自分で所有します。クラウドベンダーにテレメトリデータが送信されることはありません。
デメリット:
- 技術的なオーバーヘッド:ダッシュボードでボタンをクリックするのではなく、テキストファイルを管理することになります。
- ハードウェアの選定:Linuxで「APモード」をサポートするWiFiカードを選択する必要があります。
推奨される構成
このガイドでは、Ubuntu 22.04または24.04 LTSのクリーンインストールを使用します。nl80211とAPモードをサポートするWiFiカードが必要です。Atherosチップ(ath9kやath10kシリーズなど)を探してください。これらはLinux APのゴールドスタンダードです。ロジックにはFreeRADIUSを、無線管理にはhostapdを使用します。
実装ガイド
ステップ1:コアコンポーネントのインストール
まずはシステムを更新し、必要なツールをインストールします。
sudo apt update
sudo apt install hostapd freeradius freeradius-utils bridge-utils -y
ステップ2:FreeRADIUS(頭脳)の設定
FreeRADIUSは資格情報を検証します。この例では簡単なパスワードを使用しますが、後でActive Directoryと連携させることも可能です。hostapdがRADIUSサーバーと通信できるように、クライアント設定を編集します:
# /etc/freeradius/3.0/clients.conf
client localhost {
ipaddr = 127.0.0.1
secret = testing123
}
次に、ユーザーを定義してVLAN IDを割り当てます。スタッフ用には**VLAN 10**、ゲスト用には**VLAN 20**を使用します。
# /etc/freeradius/3.0/users
"john_doe" Cleartext-Password := "staff_password"
Tunnel-Type = 13,
Tunnel-Medium-Type = 6,
Tunnel-Private-Group-Id = "10"
"guest_user" Cleartext-Password := "guest_password"
Tunnel-Type = 13,
Tunnel-Medium-Type = 6,
Tunnel-Private-Group-Id = "20"
変更を適用します:sudo systemctl restart freeradius。
ステップ3:hostapd(無線)の設定
次に、WiFi無線を設定します。WPA3-Enterpriseでは、認証解除攻撃を防ぐために管理フレーム保護(MFP)が必要です。
# /etc/hostapd/hostapd.conf
interface=wlan0
bridge=br0
driver=nl80211
ssid=Corporate_WiFi
hw_mode=g
channel=6
# WPA3-Enterpriseの設定
ieee8021x=1
wpa=3
wpa_key_mgmt=WPA-EAP
dynamic_vlan=1
vlan_file=/etc/hostapd/hostapd.vlan
vlan_tagged_interface=eth0
# RADIUSサーバーの詳細
auth_algs=1
wpa_eap_reauth_period=3600
auth_server_addr=127.0.0.1
auth_server_port=1812
auth_server_shared_secret=testing123
# 管理フレーム保護(WPA3には必須)
ieee80211w=2
ヘルパーファイルでVLANをマッピングします:
# /etc/hostapd/hostapd.vlan
* wlan0.#
これにより、ユーザーがログインした際に、hostapdがwlan0.10のような仮想インターフェースを自動的に起動するように設定されます。
ステップ4:ネットワークの分離
トラフィックを処理するためにLinuxホスト上にブリッジを作成します。iproute2を使用してbr10(スタッフ用)とbr20(ゲスト用)を作成できます。
# 手動でのブリッジ作成
sudo ip link add br10 type bridge
sudo ip link set br10 up
sudo ip link add br20 type bridge
sudo ip link set br20 up
ネットワークを制限するためにiptablesを使用します。これにより、br20(ゲスト)からbr10(スタッフ)へのアクセスを防止します。
# ゲストVLANからスタッフVLANへのトラフィックを拒否
sudo iptables -A FORWARD -i br20 -o br10 -j REJECT
sudo iptables -A FORWARD -i br20 -d 192.168.10.0/24 -j REJECT
ステップ5:接続のテスト
ハンドシェイクをリアルタイムで確認するために、デバッグモードでhostapdを実行します:
sudo hostapd -dd /etc/hostapd/hostapd.conf
スマートフォンやノートPCでWiFiを選択します。「EAP」を選択し、john_doeの資格情報を入力します。正常に動作すれば、hostapdは即座にwlan0.10インターフェースを作成し、br10にブリッジします。
まとめ
小規模なチームにとってWPA3-Enterpriseへの移行は過剰に思えるかもしれませんが、セキュリティ面での投資対効果(ROI)は非常に大きいです。入り口でユーザーをVLANに分離することで、攻撃対象領域を最小限に抑えることができます。もしゲストが感染したデバイスを持ち込んだとしても、それはVLAN 20の中に閉じ込められたままです。本番サーバーのトラフィックを傍受したりポートスキャンしたりすることはできません。この構成は、ベンダーロックインを回避しながら、プロフェッショナルグレードのインフラを構築するための信頼性が高くコスト効率の良い方法です。

