ITmedia NEWS > STUDIO >
連載
» 2020年08月14日 07時00分 公開

ラズパイを無線LANルーター化する 〜アクセスポイント編〜名刺サイズの超小型PC「ラズパイ」で遊ぶ(第24回)(1/2 ページ)

家庭内で無線LANルータを使っている人は多いかと思います。今回はそのルーター機能をラズパイに持たせて、ラズパイを使った無線LANルーターの構築方法についてご紹介します。

[岩泉茂,ITmedia]

 自宅でインターネット回線を使っているなら、無線LANルーターを設置しているケースが多いでしょう。プロバイダーからレンタルしたり、家電量販店や口コミサイトで勧められた製品を手にした方もいると思いますが、そんな無線LANルーターをラズパイで手作りできることをご存じでしょうか。

ラズパイ

 今回はラズパイを無線LANルーターとして動作させる手順を紹介します。なお、ラズパイ用のOS「Raspbian」のインストールが必要です。手順は第21回の記事を参照してください。

ラズパイを無線LANルーター化する

 ラズパイの無線LANルーター化は以下の手順をたどることになります。

  • 「/etc/dhcpcd.conf」に項目を追加
  • hostapdのインストールと設定
  • dnsmasqのインストールと設定

 これらの設定と追加プログラムをインストールすることで、ラズパイの有線LANにモデムを接続して、無線LANでWi-Fi機器をネットワークにつなげます。では順番に見ていきましょう。

「/etc/dhcpcd.conf」に項目を追加

 まずはdhcpcdの設定です。dhcpcdは、DHCPサーバからホストのIPアドレス、ネットマスク、ブロードキャストアドレスなどを取得して、ラズパイに設定するためのサービスです。今回は無線LAN側に違うアドレス空間を割り当てて使うため、今使っているモデムや無線LANルーターに割り当てられているアドレス空間とは別のものを設定します。

 設定ファイルを変更しますので、いったんサービスを止めます。

$ sudo systemctl stop dhcpcd

 以下のコマンドでnanoを起動してファイルを修正します。

$ sudo nano /etc/dhcpcd.conf

 ファイルが開いたら、以下の項目を最後に追記します。

interface wlan0
static ip_address=192.168.2.1/24

 この設定ですが、筆者の環境だと「192.168.1.1」で始まるのが今使っているルーターのアドレス空間で、ルーターに接続するデバイスには「192.168.1.xxx」というIPアドレスが割り当てられています。このため、重複しないように「192.168.2.1」から始まるアドレス空間を設定しています。これはそれぞれの環境で異なりますので、読み替えて設定してください。追記したら以下のコマンドでdhcpcdを再起動します。

$ sudo systemctl restart dhcpcd

hostapdのインストールと設定

 次にルーターのアクセスポイントとなる「hostapd」をインストールします。以下のコマンドを入力してください。

$ sudo apt install hostapd

 インストールしたらhostapdの設定をしていきます。まずは設定ファイルの「hostapd.conf」をnanoで作成します。

$ sudo nano /etc/hostapd/hostapd.conf

 次に白紙のファイルが表示されたら、以下の項目を入力します。

interface=wlan0
driver=nl80211
hw_mode=b
channel=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
ieee80211ac=0
wmm_enabled=1
ieee80211d=1
country_code=JP
ieee80211h=1
local_pwr_constraint=3
spectrum_mgmt_required=1
wpa=3
wpa_key_mgmt=WPA-PSK
ssid=raspi
wpa_passphrase=******

 上記のそれぞれについて解説します。

  • interface=wlan0

 接続するインタフェースを規定します。今回はラズパイの無線LAN側を使うので「wlan0」となります。

  • driver=nl80211

 接続に利用する無線LANインタフェースのドライバです。

  • hw_mode=b

 利用する周波数帯です。「b」がIEEE 802.11b、「g」がIEEE 802.11g、「a」がIEEE 802.11aとなります。今回はIEEE 802.11bを使うので「b」にします。

  • channel=1

 使用するチャンネルです。すでに無線LANルーターがあるなら、「WiFi Analyzer」などのツールで、今使われているチャンネルを調べて、干渉しないように設定してください。

  • macaddr_acl=0

 MACアドレスによるフィルタリングですが、ここはオフ(0)の設定にします。

  • auth_algs=1

 認証アルゴリズムです。WPAを使う場合は「1」、WEPなら「2」、両方使うときは「3」、暗号化なしの場合は「0」です。今回はWPAを使います。

  • ignore_broadcast_ssid=0

 SSIDを第三者に参照されないようにする設定です。今回はオフ(0)にします。

  • ieee80211ac=0

 IEEE 802.11acを有効にするかどうかです。今回は設定しませんので「0」を設定します。

  • wmm_enabled=1

 WMM(WME)、QoS制御の規格に関する設定です。今回は有効にするために「1」とします。

  • ieee80211d=1
  • ieee80211h=1

 IEEE 802.11dとIEEE 802.11hという、国の規制に沿った出力制御を行う規格の設定です。有効にするので両方とも「1」とします。

  • country_code=JP

 日本で使うのでJPとします。

  • local_pwr_constraint=3
  • spectrum_mgmt_required=1

 無線LANの出力などに関する設定です。

  • wpa=3

 使用するWPAのバージョンを設定します。WPAは「1」、WPA2は「2」、両方使うときは「3」です。

  • wpa_key_mgmt=WPA-PSK

 利用する共有鍵認証の方式です。

  • wpa_pairwise=CCMP
  • rsn_pairwise=CCMP

 利用する暗号化方式です。

  • ssid=raspi

 使用するSSIDです。ここでは「raspi」としていますが、任意に決めて入力しましょう。

  • wpa_passphrase=******

 接続する際のパスワードを決めます。パスワードは8〜64文字の間で設定できます。

 続いてhostapdのデフォルト動作ファイルを編集します。以下のように入力してnanoを起動します。

$ sudo nano /etc/default/hostapd

 表示された項目の中の「#DAEMON_CONF=""」を以下のように変更します。先頭の「#」も削除しておきます。

DAEMON_CONF="/etc/hostapd/hostapd.conf"

 ここでhostapdが動いているか確かめておきます。

$ sudo systemctl status hostapd

 するとほとんどの場合は、下記のようなメッセージが表示されて、動作していないことが分かります。

● hostapd.service
   Loaded: masked (Reason: Unit hostapd.service is masked.)
   Active: inactive (dead)

 このような場合は、以下のコマンドを入力してマスクを外し、再起動させましょう。

sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl start hostapd

 再び「sudo systemctl status hostapd」と入力すると、サービスの起動を確認できます。

● hostapd.service - Advanced IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP Authent
   Loaded: loaded (/lib/systemd/system/hostapd.service; enabled; vendor preset:
   Active: active (running) since Thu 2020-07-30 10:29:04 JST; 6s ago
……
……
……

 今度はラズパイでポートフォワード機能(パケットを任意のデバイスに渡すこと)を設定するために、nanoで「/etc/sysctl.conf」を編集します。

$ sudo nano /etc/sysctl.conf

 としてファイルを表示されたら、以下の行の先頭にある「#」を削除します。

net.ipv4.ip_forward=1
       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.