WZR-HP-AG300H の OpenWRT の更新と設定

http://transitive.info/2018/02/03/install-lede-wzr-hp-ag300h/ のときにインストールした LEDE の WZR-HP-AG300H を最新の OpenWRT に更新して設定した。

ファームウェアの更新

WZR-HP-AG300H にインストールしてあたた LEDE 17.01.4 から OpenWRT 21.02.3 に更新した。 https://openwrt.org/toh/buffalo/wzr-hp-ag300h から openwrt-21.02.3-ath79-generic-buffalo_wzr-hp-ag300h-squashfs-sysupgrade.bin をダウンロードし、 管理画面の「System」「Backup / Flash Firmware」から更新した。

設定

LuCI で設定

バージョンがだいぶ変わったので、まず、 「System」「Backup / Flash Firmware」「Perform reset」で初期化した。 初期化後はパスワードなしでログインできた。

  • 「System」「System」で「Timezone」を「Asia/Tokyo」にした。
  • 「System」「System」「Language and Style」「Design」を「BootstrapLight」にした。
  • 「System」「Administration」で「Router Password」を設定した。
  • 「System」「Administration」「SSH Access」で root の LAN からは password authentication を許可して、 WAN からは password authentication を許可しないようにした (「Add instance」で Interface が lan と wan の設定を作る)。
  • 「System」「Administration」「SSH Access」でポートを 2222 に変更した。
  • 「Network」「Interfaces」の LAN の「Edit」で「IPv4 address」でルータの IP アドレスを設定し、 「DHCP」で使う IP アドレスの範囲を設定をした。
  • 「Network」「DHCP and DNS」でデスクトップ PC に割り当てる固定 IP を設定した。
  • 「Network」「Wireless」で無線 LAN の設定をした。

ユーザの追加

SSH でログインして root で作業する。 ルータの IP を 192.168.0.1 とした。SSH のポートは 2222 としたので

ssh -p 2222 root@192.168.0.1

とすれば良い。

外部からインストールするときに、一般ユーザを使いたかったので次のようにしてユーザを追加した。

opkg update
opkg install shadow-useradd shadow-su sudo

でパッケージをインストールする。

useradd USERNAME
passwd USERNAME
mkdir -p /home/USERNAME
chown USERNAME:USERNAME /home/USERNAME

としてユーザを追加してホームディレクトリを作る。 sudo を使うために

echo "USERNAME ALL=(ALL) ALL" >> /etc/sudoers.d/USERNAME

とする。

dropbear だと作成したユーザでログインできなかった。openssh もインストールして、そちらを使うことにした。

openssh

scp を使うためには sftp も必要になる。

opkg install openssh-server openssh-client openssh-sftp-server

root でログインできるように /etc/ssh/sshd_config に

PermitRootLogin yes

を追加する。

/etc/init.d/sshd restart

で設定を反映させる。 上ではポート 2222 にしていたのだが、openssh-server の同様の設定をしないとポートは 22 になる。

autossh

opkg install autossh

/etc/config/autossh を次のようにした。 相手のサーバのポート 22223 をルータのポート 22 につなげているので、 プロバイダからプライベート IP を割り当てられていても、 サーバのポート 22223 にアクセスすることで SSH でルータにログインできるようになる。

config autossh
        option ssh      '-o CheckHostIP=no -o Compression=yes -o CompressionLevel=6 -o IdentityFile=/root/.ssh/id_rsa -o LogLevel=INFO -o ServerAliveCountMax=3 -o ServerAliveInterval=60 -o StrictHostKeyChecking=yes -o TCPKeepAlive=yes -o VerifyHostKeyDNS=no -o ExitOnForwardFailure=yes -nN -R *:22223:127.0.0.1:22 -p 22 USERNAME@example.com'
        option gatetime '0'
        option monitorport      '0'
        option poll     '600'

etherwake

opkg install etherwake

ユーザ USERNAME がパスワードなしで実行できるように

echo "USERNAME ALL=(ALL) NOPASSWD: /usr/bin/etherwake" >> /etc/sudoers.d/USERNAME

を追加した。

sudo etherwake -i eth0.1 AB:CD:EF:GH:IJ:KL

のように -i オプションを使わないとうまくいかないことがあった。

DHCP で配布した IP アドレスのリスト

ブラウザでアクセスして見ればよいのだが、コマンドで取得できると便利だったので調べた。 https://forum.archive.openwrt.org/viewtopic.php?id=8343 にあるように /tmp/dhcp.leases を見れば良い。

Tags of current page