7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

hostapdで認証(IEEE802.1X EAP-TLS)付きの無線APを構築する

Last updated at Posted at 2018-11-01

目的

  • 現在のオフィスでは無線環境がないのだが、来年のオフィス移転に併せて、会社所有のPCだけを無線LANに接続できるようにしたい
  • 無線LANの端末認証にはIEEE 802.1XのEAP-TLSを使えるか検証したい
  • EAP-TLSは証明書の管理が面倒らしいので、Active Directoryで自動化したい
  • IEEE802.1X対応APは持っていないので、余ったノートPCにhostapdを入れてアクセスポイントにして検証する

WindowsをRADIUSサーバにしてEAP-TLSの構成をしたhostapdの例は見つからなかったので、少々苦労した。

構成

  • 既存のドメインコントローラ
    • OS: Windows Server 2012R2
    • IP: 192.168.10.234/24
    • 証明書サービスをインストールして、認証局(プライベートCA)にする
    • グループポリシーで、ドメイン参加PCにはコンピュータの証明書を自動で登録するよう構成
    • ネットワークポリシーサーバーをインストールして、認証サーバ(RADIUSサーバ)にする
  • 余ったLet's Note
    • OS: Ubuntu 18.04 Server
    • IP: 192.168.10.202/24
    • hostapdをインストールして、オーセンティケータとして動作させる
    • NATではなくブリッジ接続する
  • ドメイン参加済みのPC
    • サプリカントとして無線LANに接続できるか検証する
    • サーバとは同じセグメントにDHCPでIPが割り当てられるようにする

PKIの構築

標準テキスト Windows Server 2012 R2 構築・運用・管理パーフェクトガイドの通りに作業したので、
ここでは割愛。p.344からp.355をそのまま実施した。

認証局(CA)の構築、各コンピュータの証明書の自動登録テンプレートの登録を実施したので、
ドメインに参加したクライアントPCには、証明書の個人ストアに各々のコンピュータの証明書が入り、
信頼されたルート証明機関にドメインコントローラの証明書が自動で登録・更新される。

ネットワークポリシーサーバーのインストールと設定

アラクサラネットワークス社のマニュアル、RADIUS サーバ設定ガイド Windows Server 2012 編に従って作業したので、これも割愛。

行った作業は下記の通り。

  • 2.2.4. ネットワークポリシーとアクセスサービス(NPS)のインストール
  • 3.1.2. NPS の設定

今回は証明書を用いた認証のみを有効化したので、EAPの種類は下図のような設定となった。

image.png
image.png

無線APの構築

hostapdのインストール

Ubuntu 18.04 Serverではリポジトリにhostapdがなかったので、

wget http://archive.ubuntu.com/ubuntu/pool/universe/w/wpa/hostapd_2.6-15ubuntu2_amd64.deb
sudo dpkg -i hostapd_2.6-15ubuntu2_amd64.deb

でhostapdをインストールした。

リポジトリにhostapdがあるなら

sudo apt install hostapd

でもOK。

ブリッジ設定

今回はhostapdに無線で接続してきたクライアントを、無線APと同じネットワークに接続したいので、ブリッジ接続する。

bridge-utilsがインストールされていなければ追加。

sudo apt install bridge-utils

netplanの設定ファイルを編集して、ブリッジを作成する。

/etc/netplan/99_config.yaml
network:
    ethernets:
        enp0s25:
            dhcp4: false
    bridges:
        br0:
            interfaces: [enp0s25]
            addresses: [192.168.10.202/24]
            gateway4: 192.168.10.253
            nameservers:
                addresses: [192.168.10.234, 192.168.10.236]    
            dhcp4: false
            optional: true
    version: 2

設定を適用する。

sudo netplan apply

hostapd設定

今回、なかなか設定例が見つからず苦労したところ。
wpa_key_mgmtWPA-EAPを設定し、ieee8021x1を設定する。

auth_server_shared_secretacct_server_shared_secretにはネットワークポリシーサーバーの設定で
新しいRADIUSクライアントを設定したときに入れた値を入れる。

/etc/hostapd/hostapd.conf
ctrl_interface=/var/run/hostapd
interface=wlp2s0
bridge=br0
driver=nl80211
ssid=TEST-EAP-TLS
country_code=JP
hw_mode=g
channel=3
wpa=2
wpa_key_mgmt=WPA-EAP
rsn_pairwise=CCMP
ieee8021x=1
nas_identifier=TEST-EAP-AP
own_ip_addr=192.168.10.202
radius_client_addr=192.168.10.202
auth_server_addr=192.168.10.234
auth_server_port=1812
auth_server_shared_secret=TestSecret
acct_server_addr=192.168.10.234
acct_server_port=1813
acct_server_shared_secret=TestSecret

設定ファイルができたら、起動する。

sudo hostapd -d /etc/hostapd/hostapd.conf

-dはデバッグメッセージを表示するオプション。
終了するときはCtrl + C。

接続できるかテスト

ドメイン参加済みのPC(Windows 10)の通知領域にあるWi-Fiのところから、
SSID一覧を表示させると、hostapdで設定したSSIDが表示されるはず(この例ではTEST-EAP-TLS)

そのまま「接続」とすると、下記のようにサーバの証明書が正しいか聞いてくるので、確認して「接続」を押し、ちゃんとIPが振られればOK。

image.png

一応、「ネットワークと共有センター」から、「新しい接続またはネットワークのセットアップ」を行い、マニュアルで設定することも可能(Windows 10だとこの設定画面に行くまでが大変)。
この場合は、信頼されたルート証明機関でサーバの証明書を選択できるので、上図のフィンガープリントの確認画面は出ない。
ヤマハのマニュアルが分かりやすかった
無線端末を設定(WPA/WPA2エンタープライズ / EAP-TLS) : Windows10

上手く行かない場合

接続できない場合は、以下のログを確認する。

  • hostapd起動中に標準出力へ吐かれるログ
  • RADIUSサーバーのプロパティで、イベントログに成功と失敗のログを出力するように設定しておき、イベントビューアでIDが6272から6280あたりのログをフィルターして見る

image.png

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?