0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MacBookPro14,2 + Ubuntu 24.04でhostapdを設定する

0
Posted at

少し特殊な用途ですが、MacBook ProをLinuxルータ兼Wi-Fi APとして使う場合の記録です。

今回は MacBookPro14,2 (2017, 13-inch)Ubuntu 24.04 をインストールし、内蔵Broadcom無線LANを hostapd でアクセスポイント化しました。

なお、本記事はhostapdの設定に焦点を当てています。br0 の作成やIPアドレス設定などのブリッジ構成については扱いません。

環境

  • MacBookPro14,2
  • Ubuntu 24.04 LTS
  • hostapd
  • 無線IF : wlp2s0
  • 有線IF : enx68da73adde3c
  • bridge=br0

hostapdnl80211 ドライバを使用します。現在のLinuxでは mac80211/cfg80211 ベースのドライバでは通常 nl80211 を指定します。(Linux Wireless Documentation)


hostapd.conf

最終的に安定した設定は次のようになりました。

interface=wlp2s0
bridge=br0
driver=nl80211

ctrl_interface=/run/hostapd
ctrl_interface_group=0

ssid=YOUR_SSID
ignore_broadcast_ssid=1

auth_algs=1

country_code=JP
ieee80211d=1

hw_mode=a
channel=36

wmm_enabled=1

ieee80211n=1
ieee80211ac=1

# この環境では有効にすると起動できなかった
# ht_capab=[HT40+][SHORT-GI-20][SHORT-GI-40]
# vht_oper_chwidth=1
# vht_oper_centr_freq_seg0_idx=42

wpa=2
wpa_key_mgmt=WPA-PSK SAE
rsn_pairwise=CCMP

wpa_passphrase=YOUR_PASSWORD

ieee80211w=1
sae_require_mfp=1

各設定の説明

bridge

bridge=br0

無線クライアントを有線LANと同一L2セグメントへ参加させます。

DHCPも既存LANから取得できるため、hostapd側でDHCPサーバを動かす必要はありません。Linux Wirelessのhostapdドキュメントでも、ブリッジ構成では bridge= を設定する例が示されています。(Linux Wireless Documentation)


5 GHz固定

hw_mode=a
channel=36

5 GHz帯で動作させます。

今回はDFS不要なW52帯を使用しました。


日本の電波法設定

country_code=JP
ieee80211d=1

country_code は必ず設定します。

これを設定しないと利用可能チャネルが制限されることがあります。


WPA2/WPA3共存

wpa=2
wpa_key_mgmt=WPA-PSK SAE

この設定で

  • WPA2-Personal
  • WPA3-Personal(SAE)

の両方を受け付けます。

新しい端末はWPA3で接続し、
古い端末はWPA2で接続します。(Git TI)


AESのみ

rsn_pairwise=CCMP

TKIPは使用せず、AES(CCMP)のみ許可します。


PMF

ieee80211w=1
sae_require_mfp=1

PMF(Protected Management Frames)は

  • WPA2では任意
  • WPA3では必須

となります。

WPA2との互換性を保ちながらWPA3の要件を満たす設定です。(Git TI)


SSIDを隠す

ignore_broadcast_ssid=1

SSIDをビーコンへ載せません。

ただし、

  • セキュリティ向上効果はほぼ無い
  • 手動設定が必要
  • 一部機器で接続性が悪くなる

というデメリットがあります。


起動

デバッグ付きで起動する場合は

sudo hostapd -dd /etc/hostapd/hostapd.conf

正常に起動すると

wlp2s0: AP-ENABLED

が表示されます。hostapdは -d-dd オプションで詳細なデバッグログを出力できます。(Ubuntu Manpages)


40 MHz / 80 MHzが使えなかった

最初は

ht_capab=[HT40+][SHORT-GI-20][SHORT-GI-40]

ieee80211ac=1
vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=42

を設定していました。

しかし起動時に

Could not set channel for kernel driver

で失敗しました。

ログには

80/80+80 MHz: no second channel offset

とも表示されました。


iw listではHT40/VHT対応と表示される

iw list の出力では

Band 2

HT20/HT40

VHT Capabilities

となっていました。

一見すると40 MHzや802.11acのAPが動作しそうに見えます。

しかし実際には

ht_capab=[HT40+]

を指定すると起動できませんでした。


HT40を外すと起動する

最終的に

ieee80211n=1
ieee80211ac=1

だけ残し

# ht_capab=[HT40+]

を削除すると正常起動しました。

つまりこの環境では

  • APモード
  • 5 GHz
  • WPA2/WPA3
  • 802.11ac有効

は問題なく利用できますが、

HT40およびVHT80のチャネル設定はドライバまたはファームウェア側で利用できませんでした。

Linux Wirelessのドキュメントでも、80 MHz動作には HT40+ とVHTチャネル設定の組み合わせが必要であり、ドライバや規制データベースによってはチャネル設定に失敗することがあります。(Linux Wireless Documentation)


最終的な構成

最終的には

  • 5 GHz
  • チャネル36
  • 20 MHz幅
  • WPA2/WPA3移行モード
  • AES(CCMP)のみ
  • PMF有効
  • ブリッジ接続
  • ステルスSSID

という構成で安定して動作しています。

速度は40 MHzや80 MHz運用より控えめですが、MacBookPro14,2 + Ubuntu 24.04の環境では安定性を優先するならこの設定が実用的でした。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?