ルーターを通してじゃないと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