sendmailは止めないことに

一度は止める決意をして,sendmailなしでのメール環境構築を考えたり試してみました.

まずはsendmailが送受信するメールを精査してみました.

サーバーから発せられるメールは,Wordpressが発する各種警告・情報メールと,Logwatchが1日1度送り出す各種ログのサマリーです.

また,sendmailが受け取っているメールはスマホアプリがiCloudを経由して送ってくるメールです.日常的にはこれだけで,あとはごくまれにテスト的にGMailから送り込んだりしています.

まずLogwatchが送り出すメールはローカルに処理できるのでsendmailやqmailといったMTAは不要です.どうすればよいか忘れましたが,管理しているシステムの中に実際そういう設定のシステムがあるので,いざやるとなればそこを参考にすればできるはずです.

また,iCloudから来るメールは自分で送っているので,極端な話その時だけsendmailを機能させれば十分なわけです.

問題はWordpressです.Wordpressが自前でよそのSMTPサーバーに繋ぐ設定ができるようになっていれば何の苦労もないのですが,調べてみるとNGで,自分でphpの関数(あちこちに例示があるのでそれほどむつかしくはなさそう)を書くか,プラグインを使う必要があるようです.

phpを書くのもやぶさかではないですがWordpressのupdate/upgradeのときにどうなるのか,どうすればいいのか解らないのでやめときました.

次の策としてプラグインを試してみました.超人気のもの,次に人気のもの,ちょっと違った認証方法のものを試しました.SMTPの設定はわかってしまえば大したことありませんでしたが,GMailやその他有名プロバイダーを網羅したかなり仰々しいプラグインで,しかもあちこちで有料版を勧めてきますので,たかがsimpleメール送受信のためにバカバカしいと感じました.

結論的にはsendmailは動かしたままにして,入ってくるsmtp, 587, smtpsの3つのポートを,受け取るメールがあるときだけ手動で開く運用でいくことにしました

あんまり手の内はさらしたくないのですが,今回のこの処置は,外から繋いでくるものがあいぴいぶいふぉおの場合の処置で,あいぴいぶいしくすは筒抜けのままです.爺メールは後者なので何ら影響しません

解るまでは結構紆余曲折ありました😅
smtp (port 25)は開く必要がないかもしれません.
Typoではなくて,翻訳ソフト対策です.

sendmailを止めることに

MTAへ激しく攻撃されっぱなしで,止めるというのはなんか残念な気もしますが,今sendmailが本来のメール送受信のために動くのは日に2回+不定期的なWordpressからのupdate案内しかなく,それに対して日に千回近い攻撃にさらすのはバカバカしくもあります.

先に書きましたように,攻撃による実害はあまり大したことはないのですが,iptablesでDROPするipアドレスを約1万個登録してあってこれがRaspberry Piの貴重な実メモリーに展開されているのが一番バカバカしいです.

sendmailとは長い付き合いでした.使い始めた1990年代半ばには,ほとんどのLinux distroに標準でついていて,デフォルトで動くような設定だったと思います.

自前でメーリングリスト(ML)を立ち上げるのに使ったり,またアマチュア無線のパケット通信のメールのゲートウェーにも使ったりしていました.

その後SPAMが社会問題化して,個人の動かしているsendmailをはじめとしたMTAからのメール送信を受け付けるサイトがほとんどなくなりました.MLも自分で動かしていると,サーバーがダウンしたりメンテする時にやっかいなので,もうずいぶん前に大手IT会社のサービスに移行しました.

あと,自前のMTAの大きなメリットは,メールアドレスを好きなだけ作れるということです.怪しいサイトや,有名だけど関わりたくない会社のサイトにアカウントをとりあえず作る時に,

適当な名前@ホスト.ドメイン

の形で作ったメールアドレスをIDとして使用します. “適当な名前” はそれこそなんでもいいので無数に作れます.確認メールの受信などの用が済んだらIDを消すか,/dev/nullに転送するようにすればよいです.

これも,使い捨てメールアカウントを提供するサービスでたいてい足りますが,自前でできるというのがミソでした.

現在受信しているメールは,一つは手動で,もう一つは自動的にメールが発せられ,それを大手IT会社を経由してこちらのsendmailが受けていますが,これらもあえて自前のMTAを介する必要はなく,生存確認のためのようなもんです

ということで,1日に2通のメールを受けるため,何百何千の攻撃を避ける運用を続けながらおよぞ30年の長きにわたり使用してきたsendmailを近々止めることにします.

現在は大手IT会社数社に認証したうえでメールを送り出しています.
技術的に面倒だろうと現時点で考えられるのはWordpressが不定期的に発するメールをどうやって外に出すかということです.

Ubuntu ARM64のVM動く

もう,「だったらなんだよ」って聞こえてきそうですが,Raspberry Pi 5 Model B (RPi5)のKVM/QEMU環境で,Ubuntu ARM64の仮想マシンがめでたく動きました.

CPUは3個割り当てました.UbuntuのサイトにはARM64のDesktop版のインストールイメージが見つからないので,とりあえずServer用イメージから余計なデーモンを追加しないでインストールを行いCUI環境で立ち上がるようにして,

apt install ubuntu-desktop

をして再起動したらGUI環境になりました.最初のうちは起動のたびになんかがクラッシュしたとダイアログが出ましたが,全部Noで答えて使っているうちに,クラッシュの報告もなくなり,安定してきたようです.なぜだか分かりませんが😥

“Settings” 内の “About Ubuntu” は次のように表示されます.

Processorが空欄です😥 問題なく動くので問題ないです.

このあとfcitx5-mozcをインストールして日本語入力もできるようになりました.

ちなみに,stress -c 3 で割り当てたCPU3個に負荷をかけたとき,ホストのCPUは3個がフルになって稼働しています.

左が仮想マシンのgkrellmで表示したCPUの稼働率で,上から3つ目の枠までがフルになっています.右のホストのgkrellmでは切り替わりながら4つのCPUのうち3個がフルになっている様子がわかります.

x86_64のエミュレーションでもこうなってくれればDebian x86_64(AMD64)が4倍速くなるはずです.

さて,Ubuntuの仮想マシンが使い物になるかどうかっていう総合評価ですが,Raspberry Pi 4 Model B (RPi4)やRPi5でホストOSとしてUbuntuを動かしたことがないので正確には言えませんが,今回インストールしたUbuntu ARM64の仮想マシンの体感速度と以前から試しているDebian ARM64の仮想マシンと実機の比較からして,Ubuntu ARM64もRPi4のホストOSとして動かすよりRPi5の仮想マシンのほうが速いのではないかと推定されます.安定性はまだ分かりませんが,スピード的には「使えなくない」レベルと思います.

よほどUbuntuが好きな人には,ネット情報を探してUbuntuをRPi4/5のホストOSとしてインストールするのがベターと思います.

まあ仮想マシン遊び(箱庭)が好きな人の作ってはいずれ消す箱庭の一つとするには良い景色と思います.

3個ではたしてsymmetricといえるのだろうか😥

RTSPの再生が安定しない (vlc)

その後も利用価値のあまりなくなった,Raspberry Pi 3 Model B (RPi3)と同B+(RPi3+)を防犯カメラの映像をRTSPで見るモニターとして利用する試みを続けています.

Raspberry Pi OS (RPiOS)の配布するvlcで一時期RTSPを見ることができませんでしたが,それも使えるように戻してくれたようで,RP3(+)に電源を入れて起動すると,メインユーザーで自動ログインした上でvlcも自動的に起動してカメラからのRTSP映像をHDMIでつないだディスプレーに表示するようにしていますが,どうも不安定で,数時間〜半日前後でvlcがブランク画面を表示するか,ある時刻の静止画のままになります.

OSは生きていて他のマシンからsshでログインできます.

これまで確認しているところ,カメラがトラブってRTSPを吐き出さなくなる場合と,カメラは生きているけれど,vlcがトラブる場合があるようで,他のマシンからカメラにつなぐことでどちらか確認できます.

前者のトラブルの場合,カメラの電源を切って再起動しますが,その場合RTSPにログインするためのUser IDとパスワードが変わるので,クライアントのスクリプトを修正する必要がありちょっと厄介です.しかし,幸いというか,このトラブルよりも後者のvlcのトラブルのほうが多いです.

しばらくvlcの使用はやめて,またffplay (FFMPEG)に戻して様子を見ることにします.明らかにCPU loadはvlcよりもffplayのほうが大きいです.

Manjaro ARM64 ぶっ壊れる

Raspberry Pi 4 Model B (RPi4)をWS(workstation)として使える可能性を一番示してくれているdistroである表記Manjaro ARM64を使い続けてきました.当BLOGの記事からすると2年半とかになると思います.ローリングモデルの性(さが)といいますか,途中でパッケージマネージャーのデータベースにほつれが出てだんだんおかしくなってきました.

コマンドライン版のpacmanではupdate/upgradeできるのですが,GUI版のpamac-managerではなにもしなくてもいつも”Up to date”になる状態が1年以上続いたと思います.それに本日終止符が打たれました.コマンドラインのpacmanで依存性に衝突が生じてupdateができなくなりました.

たぶん,パッケージデータベースを修復する方法もあると思うのですが,このWSではあまりややこしい設定はしていませんので,新規インストールをすることにしました.

といっても完全に新規でなくて,夏頃から取り組んできたRTSP表示のためManjaro AMR64をSDカードにインストールしたものが使わずに放置されていたのでそれを使いました.

/bootのパーティションはvfatにフォーマットした2GBのSDカードにコピーし,ルートパーティションはSSDの旧Manjaroのあったところにコピーです./boot/cmdline.txtと/etc/fstabを修正して起動しました.その後でバックアップからメインユーザーのデータをコピーしてほぼ元通りです.

Manjaroにjoeがないと以前騒いでいましたが,素直にコンパイルできるパッケージなので自分でmakeして/opt/binに置きました.