ラズパイを無線LANルーター化する 〜アクセスポイント編〜:名刺サイズの超小型PC「ラズパイ」で遊ぶ(第24回)(1/2 ページ)
家庭内で無線LANルータを使っている人は多いかと思います。今回はそのルーター機能をラズパイに持たせて、ラズパイを使った無線LANルーターの構築方法についてご紹介します。
自宅でインターネット回線を使っているなら、無線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
Copyright © ITmedia, Inc. All Rights Reserved.