Raspberry Pi をWi-Fiルーターに

どうも長年使ってきたAirMac Time Capsule 3TB1が不調なようなので,新しいWi-Fiルーターを購入しなければなりそうです.その前に,Raspberry Piを使ったWi-Fiルーターがどのくらい使えるものか試してみました.

AirMac (AirPort) Time Capsule.2014年購入

これはある意味確立された技術です.Raspberry Pi 4 Model B (RPi4)を使用してテストしました.

まずはGeminiに聞いてセットアップしました.特に引っかかる点もなく,結果的にIP マスカレーディングによる独立したサブネットとしてWi-FiのLANが構成できました.

これでも良いのですが,IPv6が通らなかったのでブリッジタイプにすることにしました.

ブリッジはこちらの記事を参考にしました.

こちらも特に引っかかる点はなく,ブリッジができました.IPv4は有線LAN内のgatewayのdhcpdからアドレスをもらい,IPv6はネイティブです.

インターネットアクセスのスピードは30Mbps程度です.

これでしばらくテストしようかと思いましたが,どうも接続が安定しないので早々に切り上げました.

まあ,結論としては実験的には使えるが実用的ではない,でした.

  1. 調べたら2014年6月にクレジットカードの引落がありましたから,同年4〜5月の購入と思われます.12年間よく働いてくれました. ↩︎

Dovecot 2.4

リモートで管理しているDebianのサーバーですが,まだDebian Bookworm (12)で動かしています.そろそろTrixie (13)にupgradeするように圧力がかかりそうなので,クローニングした仮想マシンでupgradeの予行演習をしました.

まずは,apt update && apt dist-upgrade1でBookwormの最終形にupgradeします.これは全く問題なし.

次に,/etc/apt/sources.list内のbookwormをtrixieに書き換えて,apt update && apt dist-upgradeをしたところ,dovecotの再起動に失敗してupgrade自体が途中で終わってしまいました.

dovecotの設定ファイルの問題のようです.こういうときのために,仮想マシンでsnapshotを撮りながら作業していますのでbookwormの最終形に巻き戻してやり直しです.

とりあえずは,

systemctl stop dovecot
systemctl disable dovecot

としてから,再度trixieへのupgradeを試みたら成功しました.

あとはdovecotの問題の解決です.Debian (Raspberry Pi OSも)では,Bookwormにはdovecot 2.3.xが,Trixieには 2.4.xが付いてきます.2.3.xから2.4.xで設定ファイルに見直しがあったようです.

エラーは/etc/dovecot/conf.d/10-mail.conf内の,

mail_location = mbox:~/.mailbox:INBOX=/var/mail/%u

で起こります.ユーザーのディレクトリーのmboxを “.” で始まるディレクトリーにして通常のlsでは見えないようにしたいのです.

GeminiとChatGPTに聞きましたが,遠回りをして解決にたどり着きません.かなり時間を浪費しました.

AIへの相談をやめて,自分の管理しているサーバーを調べたら答えがありました.

mail_path = %{home}/.mailbox
mail_inbox_path = /var/mail/%{user}

のように,dovecot 2.4.xでは2行で既述すれば良いのです.

  1. 筆者はSlackwareの「root権限になってからシステムのメンテをする」流儀のため,ログインしてsudo -iをしてroot権限を取得してから作業します.そのため,コマンドにいちいちsudoを付けません. ↩︎

A案は没

屋外の監視カメラを強化するにあたり,どうしても避けて通れないのが屋外にWi-Fiのルーター1を設置することです.

わが家は屋根は鋼板で外壁にも薄い鋼板が貼ってあり,薄い鋼板の雨戸を閉めるとほとんど屋内外で電波2の往き来ができません.

それで没になってから案を紹介するというものなんですが,ずいぶん昔に出張・旅行用にPlanex MZK-MF300Nという小型のWi-Fiルーターを買いそれなりに活用してきましたが,これを再度活用しようという案です.

この十数年はホテルに無料Wi-Fiが備えられているのが普通なので利用することはめっきり減りました.たまに実験的に利用するくらいでした.

Planex MZK-MF300N

今回の屋外Wi-Fiルーター設置ではこのルーターを防水のケースに入れて家の軒下に取り付けようと考えました.それがA案です.

しかし,昨日届いたPoEアダプター3を試そうとしてこのルーターに電源を入れましたが動作してくれません.2回リセットして初期設定からしましたが,だめでした.残念ながら廃棄することにします.

今日では,ホテルには無料Wi-Fiが普通にあることからこの手のルーターはほとんどありません.一番小さいものを買って,という手はなきにしもあらずですが,新品で試すほどのいい案だとは思えません😓 そこでこのA案は没です.

  1. Access Pointまたはブリッジ. ↩︎
  2. 特にUHF帯とそれより高い周波数帯. ↩︎
  3. InjectorとEjectorのセット. ↩︎

RPi4とRPi5の比較

Raspberry Pi 4 Model B (RPi4)とRaspberry Pi 5 (RPi5)のRedis Object Cacheの反応時間の比較です.

Raspberry Pi 4 RAM 8GBのRedis Object Cacheの反応時間
Raspberry Pi 4 RAM 8GBのRedis Object Cacheの反応時間
Raspberry Pi 5 RAM 8GBのRedis Object Cacheの反応時間
Raspberry Pi 5 RAM 8GBのRedis Object Cacheの反応時間

差は歴然としています.RPi4ではピークが39msで平均は目の子で23msくらいですが,RPi5ではピークは14ms,平均は5msくらいです.

ざっと5倍くらい速い,というこれまでもっていた印象があてはまります.

早速不正アクセス

昨日の夜9時頃でしたか,何気なくサーバーのコンソールからtopコマンドを実行してみると,上から下までapache2のプロセスが並びました.これは尋常ではないことが起きていると,/var/log/apache2/access.logを見てみると,ものすごい勢いで/wp-login.phpにアクセスがかけられています.間違いなく辞書を使ったbrute-forceアタックです.

その時はIPアドレスをプロバイダーのルーターに登録して止めましたが,次に記すセキュリティーアプリのインストール中に,5万件のアクセスだったことが解りました.

そういう訳で今朝はGeminiにDebianでiptablesを使ったブロックの仕方を教わっているうちに,WordPressのデフォルトのログインを止めるpluginのインストールと,Fail2Banというソフトのインストールを勧められました.

WordPressのpluginはWPS Hide Loginというもので,ログインのURL内のパスを任意の文字列に設定できます.そこで迷うことなくUUIDにしました.それでwp-login.phpを指定してきたアクセスは404 not foundになります.これはこれでめでたしめでたしです.

次のFail2Banは,ログを解析して,怪しいアクセスをしてきたところからのIPを無視するように設定するソフトです.設定が複雑なので,Geminiと相談しながらやってみました.その過程で昨夜のログを分析させたら5万件もの “不正アクセス” が検知できたわけです.これは,以前のRaspberry Pi 4 Model B (RPi4)ではそこまで行かなかったと思います.RPi4より体感や簡単な計測で4〜8倍速いRaspberry Pi 5 (RPi5)ならではの被害です.

sendmailもこれを使って防御しつつIPv4のポートも開こうかななどと少し考えています.