raspberry pi ZERO アクセスポイント化

ルーターを通してじゃないとssh接続できないのは不便なのでアクセスポイント化することにした

今回はこちらを参考にさせてもらった
http://robonchu.hatenablog.com/entry/2018/07/22/094300
1年ほど前の記事ですがとくに問題は発生しないと予想。ラズパイZERO自体は変わってないし。

MACアドレスを調べる

以下実行

$ iw dev

「wlan1」が今回の対象

udev ruleを追加

sudo nano /etc/udev/rules.d/70-persistent-net.rules

DnsmasqとHostapdのインストール

$ sudo apt-get install dnsmasq hostapd

無線LANモジュールの設定変更

共通設定だとAPとして使おうとしているUSBドングルまでルーターに接続しに行ってしまうので設定ファイルを変更する
/etc/wpa_supplicant/wpa_supplicant.conf
→今回は内臓wifiをAP化するので名称を
wpa_supplicant-wlan1.conf に変更する(ファイル名に-wlan*を付けるとそのデバイス専用の設定になるらしい。つけない場合は全デバイス共通設定となる)

hostapdの設定

/etc/hostapd/hostapd.confにアクセスポイントの情報を記述する。それぞれの項目の意味はよく分かりません。

ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
# wifi インターフェース名
interface=wlan0
driver=nl80211
# SSID名
ssid=ssid #表示名
# wifiバンド
hw_mode=g
# バンドCH指定
channel=6
wmm_enabled=1
macaddr_acl=0
#Use WPA authentivation
auth_algs=1
#Use WPA2
wpa=2
# wifi Password
wpa_passphrase=password #適当なものを
# Use a pre-shared Key
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
# Use AES, instead of TKIP
rsn_pairwise=CCMP

dnsmasqの設定

/etc/dnsmasq.conf
に以下を追加listen-address,dhcp-rengeは好きな値を(この2つのネットワークは合わせること。以下例では172.24.1の部分までが共通。serverの設定は特に意味なし。複数のサイトでgoogleのこの番号を指定していたのでそのまま真似した)

interface=wlan1
listen-address=172.24.1.1
bind-interfaces
server=8.8.8.8
domain-needed
bogus-priv
dhcp-range=172.24.1.100,172.24.1.150,12h

hostapdの設定ファイルを編集

/etc/default/hostapd を修正(コメント解除して先ほどのファイルを指定)

DAEMON_CONF=”/etc/hostapd/hostapd.conf”

sysclt.confを編集

/etc/sysctl.confを編集する。

net.ipv4.ip_forward=1

のコメントを外す

ここまでやったら再起動

マスカレード接続

利用できるネットワークがあれば活用できるようにwan側への転送設定を追加

sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

設定を書き出し

$ sudo sh -c iptables-save > /etc/iptables.ipv4.nat

sudo でやったら権限がないとかエラーが出たのでsudo su 実行後にやった

/etc/rc.local  の一番下に以下追記

iptables-restore < / etc/iptables.ipv4.nat

以下は必要なかった(古い?)

sudo iptables -A FORWARD -i wlan1 -o wlan0 -m state –state RELATED,ESTABLISHED -j ACCEPT

sudo iptables -A FORWARD -i wlan0 -o wlan1 -j ACCEPT

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

トップへ戻る