*

CentOS 7で無線LANアクセスポイントを構築する方法

 

Pocket

CentOS7 無線LANアクセスポイント設定

 CentOS 7でhostapdを使用して無線LAN(Wi-Fi)アクセスポイントを構築する方法をまとめました。

スポンサーリンク

はじめに

 本記事の前提条件を挙げておきます。以下の無効化を行ったCentOS 7.2の環境で作業しました。

  • firewall無効化
  • SELinux無効化

 それぞれの無効化方法については、こちらの記事(録画サーバ構築の前準備(CentOS 7編)、Chinachu・epgrec UNA対応)にまとめてあります。本記事では、これ以降もブログ内の他記事を参照する形でまとめてあります。読みにくいと思いますがご理解ください。

 無線LANの親機としては、BUFFALOのWLI-UC-GNM2を使用しました。こちらはLinuxで利用可能な製品です。この製品の特徴も挙げておきます。

  • USB2.0接続のアダプター
  • IEEE802.11b/g/n対応
  • 親機・子機モード同時利用可能
  • 対応セキュリティ
    • WPA2-PSK(TKIP/AES)
    • WPA-PSK(TKIP/AES)
    • WEP(128/64bit)

 なお、本記事では無線LANルーターとしての設定方法は説明しません。そのため、ルーティング設定、DHCPサーバの起動・設定方法なども説明しませんが、本記事は無線LANルーターを作るための足がかりにはなるはずです。

ブリッジインタフェース設定

 無線LANのアクセスポイントとローカルネットワークを中継するためのブリッジインタフェースを作成します。以降のコマンドは基本的にrootユーザー権限で実行して下さい。

 ブリッジ設定に必要なbridge-utilsとついでにnet-toolsをインストールします。

# yum -y install bridge-utils net-tools

 本題のブリッジ設定ですが、こちらの記事(SoftEther VPNでLinux録画サーバを外部から接続する方法(CentOS 7編))で説明しています。設定方法は全く同じなので、そちらの内容をそのまま実行して下さい。いきなり関係ない記事に飛ばされて分かりにくいと思いますが、SoftEther VPNの仮想インタフェースと無線LANのアクセスポイントは同じようなものだと考えてもらえると理解しやすいと思います。

 ちなみに、今回の無線LANのアクセスポイントとSoftEther VPNの仮想インタフェースはどちらも同じブリッジインタフェースに収容可能です(つまり、ブリッジインタフェースを別々に作り直す必要性なし)。

hostapd設定

 無線LANアクセスポイントと認証サーバ機能のサービスであるhostapdをインストールします。hostapdはデフォルトではインストールできないので、EPELレポジトリからインストールする必要があります。

 EPELレポジトリ設定については、こちらの記事(epgrec UNAインストール手順(CentOS 7編))をご覧下さい。

 では、hostapdをインストールします。

# yum -y --enablerepo=epel install hostapd

 無線LANのインタフェース名を確認します。

# nmcli dev status

 ブリッジ設定済みで無線LANデバイスを正常認識していたら下記の様な表示

デバイス     タイプ    状態      接続
br0          bridge    接続済み  bridge-br0
enp2s0       ethernet  接続済み  bridge-slave-enp2s0
lo           loopback  管理無し  --    
wlp0s2       wifi      管理無し  --     <--- これが無線LANインタフェース

 hostapdの設定ファイルを編集します。

# vi /etc/hostapd/hostapd.conf

 下記は設定例。設定行のみを表示。実際にはコメント行あり

ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_passphrase=パスフレーズを代入
driver=nl80211
interface=wlp0s2  <-- 無線LANインタフェースのデバイス名を指定
bridge=br0  <-- デフォルトで存在しないので行追加必須
hw_mode=g
channel=1
ssid=SSIDを代入
country_code=JP
ieee80211d=1

 セキュリティはWPA2-PSK/CCMPで設定しています。SSIDとパスフレーズは適宜指定して下さい。

 設定パラメータについて簡単にまとめました。

パラメータ名 内容
macaddr_acl MACアドレスベースの認証設定
0:拒否リストを除き許可
1:許可リストを除き許可
2:外部のRADIUSサーバを使用
auth_algs 認証アルゴリズム設定
bit 0:オープンシステム認証
bit 1:共有鍵認証
ignore_broadcast_ssid SSIDビーコン設定
0:通常運用
1:空のビーコン送信
2:クリアされた空白のビーコン送信
wpa 認証アルゴリズム設定
bit 0:WPA使用
bit 1:WPA2使用
driver ドライバ設定
通常はnl80211を指定
interface 無線LANインタフェース名を指定
bridge ブリッジインタフェース名を指定
hw_mode ハードウェアが対応している無線LAN規格を指定
a/b/g/adのいずれか
channel hw_modeに応じたチャンネル番号を指定
gの場合:1~14
country_code 国別コード
ieee80211d IEEE802.11d適合の有無
country_codeに従い地域的周波数規制に適合させる

 チャンネル番号は最初適当に指定しておいて、電波強度や干渉について調べてから変えるのが良いでしょう。今はスマホアプリで簡単に調べられます。Android用なら”Wifi Analyzer”がおすすめです。私の環境で測定してみた所、電波強度は-48dBmから-60dBmの間でした。アクセスポイントから7メートル程度まで接続に問題ないことを確認しましたが、どのぐらいの距離まで大丈夫かは不明です。大豪邸にでも引っ越せれば確認できるかもしれませんが……。

 続いてhostapdを起動します。

# systemctrl start hostapd

 設定に問題があれば起動できません。その場合、エラーメッセージが表示されますが、設定ファイルのどこに問題があるかの具体的な内容は表示されません。地道に調べる他ないようです。

 この時点で特に問題なければ、無線LANクライアント(スマホ、タブレット、ノートPC等)の接続が可能になります。ただし、DHCPサーバがLAN内のどこかで動いていればの話です。なければ、DHCPサーバを設置するか静的IPアドレスで接続して下さい。

 正常に接続できていれば、以下の様なログが”/var/log/messages”に記録されています。

hostapd: wlp0s2: STA xx:xx:xx:xx:xx:xx IEEE 802.11: authenticated
hostapd: wlp0s2: STA xx:xx:xx:xx:xx:xx IEEE 802.11: associated (aid 1)
hostapd: wlp0s2: STA xx:xx:xx:xx:xx:xx RADIUS: starting accounting session 12345678-00000001
hostapd: wlp0s2: STA xx:xx:xx:xx:xx:xx WPA: pairwise key handshake completed (RSN)

 動作確認で問題なければ、PCを再起動してもhostapdが自動起動するように設定します。

# systemctrl enable hostapd

 以上で無線LANアクセスポイントの構築は完了です。