As I Please

MTのいんすとーるの練習と、その他びぼうろく・・・

YAMAHA AV AMP RX-600S 保護回路のリセット

YAMAHA RX-600S があるときから電源が入らなくなった。全く入らない、というよりも電源onしても直後に切れる。サポートに電話すると、保護回路が働いているようです、とのこと。
Amazonで購入したもので、修理・確認にはサポートに持ち込みか量販店などに修理依頼をしてほしい、チェックでも機材やりとりで最低でも8000円くらいから、あとは故障内容に応じてとのこと。

保護回路が単に働いていて、これをリセットする方法は?と聞いても教えてくれないので、どうしようかと考えていて3ヶ月経って、あらためて webで検索したら、同様の問題に対処している人がいた。
https://john-rama01.hatenablog.com/entry/2021/07/15/073914 この方は RX-583ということだったが、同じYAMAHAのAVアンプだし、何か同じ方法だろうと思って見てみると、保護回路リセットは 'tone control' + 'info' + 'power' とのこと。RX-600Sには 'tone control' が無いのでそれっぽいのを探すと、
'info' + 'direct' + power on の同時押しがBINGO。

これで保護回路はリセットされたので、OK,復帰、かと思ったが、、、数回スピーカーから音が出たがまたもや保護回路が働いたようだ。
表示を見ると 'DC PRT 000L' という表示。これは 検索するといろいろすぐに出てきて、DC Amp abnormal voltage, ということでやはり故障確定のようだ。

さて1万(以上)かけて直すか。。。 602Sも生産終了みたいだし、後継機種の生産予定も無いようなのでちょっと困る。。。 サウンドバーをいくつか探してみたけど、やはり帯に短しな感じだし。。。

メールがspamassasin (sa-spamd) を通っていない。

spamassasinは怪しいメールには、メール本文の冒頭に警告メッセージをつけてくれるので、スマートフォンなどのメール通知で怪しいメールが来たかどうかをすぐに見分けることができる。本当はすぐに隔離して mailboxに入らないようにすればいいんでしょうが。。。
ところが最近、別のサーバ(MX secondary)に届くメールにそれが入らなくなってしまった。どうも milterでsa-spamd を通らなくなってしまったようだ。
milter-manager ? spamd ? socketのowner,permission ? 何が悪いのかよくわからないまま、perlのライブラリ、ruby、openssl,gpgなどいろいろアップデートしてみたが、なかなか解決と行かなかった。


/var/log/spamd.log をつぶさに追っかけて、spamdがちゃんと起動していないのが原因のよう。
どうも sendmail をバージョンアップしたときからおかしくなってしまったよう。

error: Can't locate Net/SSLeay.pm in @INC
spamd: error: Bad arg length for Socket::unpack_sockaddr_in, length is 28, should be 16
あたりが問題だったようで、以下の記事を参照に、Socket6 を再インストールしたら解決した。
https://freebsd.sing.ne.jp/daily/09/09/05.html

let's encrypt のサーバ証明書を使っていて、iphoneのメールアプリでエラーが表示される件

let's encryptの無料サーバ証明書を、httpsサーバ(このサイト)や他サイトでも利用していて、webだけではなくて、smtp(s)でも流用できるので使っていた。
メールも受信(server)・送信(client) がデフォルトで smtps/starttls を利用するようになってきているようで、
グローバルにauthorized された証明書を使っているほうが、いろいろ良さそう。
imapsは相変わらずプライベートCA+証明書を利用しているけど。

先日、2021/09でlets encrypt の証明書のCA問題の影響を受けて、iOSの標準のメールアプリからメールサーバ(smtps)の接続がうまくいかない(メールが送れなく)なった。imapsでの接続でメールの取得・閲覧はうまくいっているに。
ということでいろいろ調べてみると、openssl 1.0.2 ではCA証明書への辿りの解釈に難があるよう。
で、問題を起こしているのは sendmail が共有ライブラリとして libssl.so をリンクしていてその中身が 1.0.2(またはそれ以前)のホストばっかり!ということに気づいた。opensslは 1.1系を /usr/local/bin/openssl にインストール,libssl.so は /usr/local/lib/ あたりにいたが、sendmailのを作成したときには /usr/lib/libssl.so あたり(/usr/bin/openssl は version 1.0.2!) の共有ライブラリをリンクしていた!
なので対応としては、

  1. openssl 1.1系列(今の最新は1.1.1l)をコンパイルして、共有ライブラリのバージョン(1.1.1)を用意する。
  2. sendmailを作成し直して、openssl(libssl.so or libssl.a) をリンクし直す。
ことに。
sendmailも8.15.2と思ったら、8.17.1が最新なのでこれも sourceから持ってきて recompileした。
$src/devtools/Site/site.config.m4 の設定をよくみて、、、。
EOLになってしまっている、FreeBSD-11.4だと、

APPENDDEF(`conf_smrsh_ENVDEF', `-DCMDDIR="\"/usr/local/libexec/sm.bin\""')
APPENDDEF(`conf_smrsh_ENVDEF', `-DPATH="\"/bin:/usr/bin\""')
define(`confEBINDIR',`/usr/local/libexec')
define(`confMANROOT',`/usr/local/man/cat')
define(`confMANROOTMAN',`/usr/local/man/man')
define(`confMBINDIR',`/usr/local/sbin')
define(`confSBINDIR',`/usr/local/sbin')
define(`confUBINDIR',`/usr/local/bin')
define(`confNO_STATISTICS_INSTALL',`True')
define(`confHFDIR', `/usr/local/share/sendmail')
APPENDDEF(`conf_sendmail_ENVDEF', `-DTCPWRAPPERS')
APPENDDEF(`conf_sendmail_LIBS', `-lwrap')"
APPENDDEF(`conf_sendmail_ENVDEF', `-DNETINET6')
APPENDDEF(`conf_libmilter_ENVDEF', `-DNETINET6')
APPENDDEF(`conf_libsm_ENVDEF', `-DNETINET6')
APPENDDEF(`conf_sendmail_ENVDEF', `-DDANE')
APPENDDEF(`conf_sendmail_ENVDEF', `-I/usr/local/include')
APPENDDEF(`conf_sendmail_ENVDEF', `-DSASL=2')
APPENDDEF(`confLIBDIRS', `-L/usr/local/lib')
APPENDDEF(`conf_sendmail_LIBS', `-lsasl2')
APPENDDEF(`conf_sendmail_ENVDEF', `-DUSE_BLACKLIST')
APPENDDEF(`conf_sendmail_LIBS', `-lblacklist')
APPENDDEF(`conf_libmilter_ENVDEF', `-DMILTER')
APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER')
APPENDDEF(`conf_sendmail_ENVDEF', `-DHASSRANDOMDEV')
APPENDDEF(`confINCDIRS', `-I/usr/local/include')
APPENDDEF(`confLIBDIRS', `-L/usr/local/lib')
APPENDDEF(`confLDOPTS', ``-Wl,-rpath=/usr/local/lib'')
APPENDDEF(`conf_sendmail_ENVDEF', `-DSTARTTLS -DTLS_EC')
APPENDDEF(`conf_sendmail_LIBS', `-lssl -lcrypto')
APPENDDEF(`conf_sendmail_ENVDEF', `-DPICKY_HELO_CHECK')
sendmail-8.15のときとの違いは、、、'_FFR_TLS_EC' だったものが 'TLS_EC'と正規?なパラメータ名になったこと、くらいか。いつものように、milter,sasl2,あたりをlinkすることも忘れないように。

sendmailを展開した $srcトップ にて、'sh ./Build;sh ./Build install'
実はこの作業の前に FreeBSD 11.2 -> 11.4, perlの入れ直し、gccの入れ直しなど大工事あり・・・
それにしても、、、古い OSを使い続けるとどんどん大変になる。

sshへの不正アクセスが多いので、denyhosts をいまさらながらに導入

しつこいのは手動で /etc/hosts.allow をメンテしていたり、/etc/ssh/sshd_config で MaxAuthTries 2 とかですぐにたたき落とすようにしていたけど、やはり自動化しておいたほうが無難かと。

http://tokcs.com/2012/12/freebsd-denyhosts%E3%82%92%E5%B0%8E%E5%85%A5/を見つけてdenyhostsが簡単そうなので、インストールしてみる。
portsから入れたが、python3 が入っていればすんなり入る。
/sbin/iptables を起動しようとしたりするけどとりあえず放っておく。
早速起動したら、/var/log/auth.log を見て、3つのIPアドレスを denyした。
台湾、フランス、ロシア(シベリア)
今後はこの手は必須で入れておく必要ありかなぁ。。。時にアドレスリストのメンテが必要かもしれない(膨大に増えていく?)けど。

ubuntu20 でのサービスの起動・停止・自動起動など

FreeBSDなら 自動起動は /etc/rc.conf あたりで設定、個別のサービスの on/offは /etc/rc.d/, /usr/local/etc/rc.d/ あたりを見るというのは身体に染みついているけど、linux系はよく分かっていなくて、再起動するとサービスが立ち上がってこなかったりというのをよくやらかし、結局よくわかってない。systemctl 使いにならなくては。。。

とりあえず、まとままとまとまっているのは、https://eng-entrance.com/linux_startupあたりか。
start/stop/restart , enable/disable あたり。
サービス一覧は、systemctl list-units あたり?

CentOS6 の /etc/init.d あたりの記憶から抜け出さないと。

webコンテンツの localキャッシュ時の改行コード問題

jsonの内容を定期的にチェックするのに、一度取得してきた textデータをローカルに保存して、毎回比較(本当は headや not modifiedを利用すべきだろうけど、perlのlibwww,LWP::Simple の mirrorのようなものが見当たらなかった)することに。
単純に、requests.get, write したファイル内容と、次回の取得したデータを比較しても毎回違う結果になって、なぜ?と思ったら、元のテキストファイルが DOS形式(LF+CR)で、writeしたときに LFに置き換えてるということだった。
そのため、毎回取得して比較しても同じということに。
ということで回避策は、open()のときに newline='' のオプションをつけて改行を変更しないということで。
https://www.curict.com/item/1b/1b608b2.html
これでまた3時間。。。

imapsync の再インストール (Big Sur)他

Big Sur がそろそろ落ち着いているかと思ってアップデートしたら、imapsyncが、Segmentation faultで動かなくなってしまった。
/usr/local/bin/imapsync (imapsync を起動する bash script wrapper へのシンボリックリンク)がおかしくて、単体の /usr/local/Cellar/imapsync/1.977/libexec/bin/imapsyncはちゃんと動く。。。
bashがおかしくなったのかとも思ったが、https://brewinstall.org/install-imapsync-on-mac-with-brew/ を見て、単に "brew reinstall imapsync" で動き始めた。ここらへんの依存関係、わかりにくい。

ローカルの証明書の有効期限を通知2 (subjectの文字化け)

ローカルの証明書の有効期限を通知で仕込んでいたスクリプト/cronがちゃんと動いて60日前に証明書の期限切れを通知してくれた。が、Subjectが軽く文字化けしてた。 diffを見ると、
root@ns5:/usr/local/sbin # diff check_crt.pl check_crt.pl.20201026
26,27c22
< #$server_ssl = `/usr/bin/openssl x509 -enddate -in $ARGV[0] |/usr/bin/grep notAfter`;
< $server_ssl = `/usr/local/bin/openssl x509 -enddate -in $ARGV[0] |/usr/bin/grep notAfter`;
---
> $server_ssl = `/usr/bin/openssl x509 -enddate -in $ARGV[0] |/usr/bin/grep notAfter`;
81c76
< $subject_jis = encode("MIME-Header-ISO_2022_JP",$subject);
---
>
85c80
< Subject: $subject_jis
---
> Subject: $subject
106d100
< $subject_jis = encode("MIME-Header-ISO_2022_JP",$subject);
110,111c104
< Subject: $subject_jis
<
---
> Subject: $subject
127,131c120
< #$header_jis = encode("iso-2022-jp",$header);
< #
< # see https://tutorial.perlzemi.com/blog/20170424149304.html
< #
< #$header_jis = encode("MIME-Header-ISO_2022_JP",$header);
---
> $header_jis = encode("iso-2022-jp",$header);
139,140c128
< #$smtp->datasend($header_jis);
< $smtp->datasend($header);
---
> $smtp->datasend($header_jis);
のような変更を入れた。

sitemap.xml の作成

themaを変更したタイミングだかで、sitemapが作られなくなったようで。 MT7では標準ではついていない(そもそも MTは昔から持っていない?)ので、ちょっと探して、MovableTypeのこのページのものを借用。 Movabletype.net では標準で作られるようだけど。 これで出力されるURLを、Google Search Console のサイトマップに登録。

Google Search Console: data-vocabulary.orgのエラー

Theme換えをしたところ、Google Search Consoleからのメールで、 「パンくずリストで問題が検出されました。」とのこと。 https://developers.google.com/search/docs/data-types/breadcrumbを参照ということで、 data-vocabulary.orgの schemaはやめて、schema.orgを使ってね、ということらしい。 テンプレートを検索してみると使っているのは「ウェブページ」「記事」「月別記事リスト」「コメントプレビュー」「カテゴリ別記事リスト」の5つ。 参考にしたのはhttps://gen.fukatani.org/2020/04/eliminating-data-vocabulary-org-schema.htmlで、これは「記事」のパンくずリストと全く同じなので、このまま入れ替え。 あと、「月別記事リスト」「カテゴリ別記事リスト」はhttps://schema.org/BreadcrumbList に単純に置き換えてみる。階層でcontent, position の設定が必要とは思うが、たかだか2階層しかないので認識してくれるのでは?と甘く考える。 または後日対応。 「ウェブページ」は今のところ使っていないのでとりあえずこのまま。 「コメントプレビュー」も同じ。