CentOS 7で無線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アクセスポイントの構築は完了です。