LinuxからEP-706A印刷でlsb 3.2が無い
自宅では、すでに古くなった EPSON の EP-706A を使っているが、導入当初は Linux からの印刷環境は簡単に導入できていた。
しかしながら最近、家族のノートパソコンから印刷できないとのクレーム。ドライバのインストールとか簡単に…と、Windows の プリンタ共有で設定していたもの。ひとまずは、ノートパソコンに直接プリンタを使うように再設定してもらったものの、Linuxからの印刷はできた方が便利。
改めて確認すると、2022 にドライバの更新などもされているようなので、epson-inkjet-printer-201307j_1.0.0-1lsb3.2_amd64.deb, epson-inkjet-printer-escpr_1.7.18-1lsb3.2_amd64.deb, epson-printer-utility_1.1.1-1lsb3.2_amd64.deb をダウンロードしてインストールを行うが、lsb 3.2 以上が必要とのエラーメッセージが表示される。
他の人の事例の情報では、Ubuntu では大丈夫なようだが、Debian では lsb の取り扱いが変更となって、私と同じような lsb 3.2 が必要といったメッセージで使えなくなっている様子。今までは使えていたので、他のOSの更新の中で lsb-core(3.2?) などが削除された様子。無理やり古い lsb をインストールしている事例も報告されているけど、Linux を経由しなければ印刷できているし、そこまで頑張る気力がないな。
homebridgeをnodejs-18.xに更新したら動かず
nodejs の最新の 18.x が出ているようなので、Raspberry-Pi で動かしている homebridge でも適用しようと試す。
しかしながら、homebridge , homebridge-ui-x も動いてはいるけど、アクセサリ画面が表示できなくなってしまった。いろいろと更新を試したが復帰しない(すでに自宅内は google home 経由で色々と活用しているので復帰しないとすごく不便)ので、元に戻す。
nodejs をダウングレードして、nodejs-18.x に合わせて更新してしまった /usr/lib/node_modules/* が悪さする可能性も高いので、バックアップから、node_modules ディレクトリを元に戻すなど、ひと手間かかったけど、無事に設定が元通り。
はぁ、他の人の人柱の情報が出そろってからにすりゃ良かった。(x_x;;
postgreyの更新トラブル
postgrey に更新があった(1.36-5.2 ⇒ 1.37-1)ため、外部からのメールが届かなくなり、設定の変更が必要となった。
postgrey trouble
職場で動かしている WordPress の2段階認証メールを自宅サーバに転送しているが、2段階認証のメールが届かなくなった。原因は、怪しいメールは一旦拒絶することで spam を拒否してくれる postgrey がうまく機能していないと思われる。
/var/log/mail.log を見ると、下記のようなエラーで postgrey が起動していない。
May 5 16:53:15 ...: warning: problem talking to server 127.0.0.1:10023: Connection refused
エラーを探すと /var/log/syslog に以下のメッセージを残して、postgrey 起動に失敗しているので、
May 5 17:11:53 ... postgrey[974882]: Option greylist-text requires an argument
/etc/default/postgrey の POSTGREY_TEXT のオプションをコメントアウト。
((( /etc/default/postgrey ))) - POSTGREY_TEXT="" + # POSTGREY_TEXT="reject by postgrey"
しかし、この変更後も職場からのメールが reject されている。
May 5 17:19:20 ... postfix/smtpd[975541]: NOQUEUE: reject: RCPT from unknown[xxx.xxx.xxx.xxx]: 450 4.2.0 <t-saitoh@tsaitoh.net>: Recipient address rejected: reject by postgrey; from=<www-data@...> to=<...@...> ...
たぶん、職場のサーバは Azureで動かしているが、今回の更新による拒否判定が厳しくなったんだろう。仕方がないので、/etc/postgrey/whitelist_clients.local に、自分の管理している Azure サーバのIPアドレスを書き並べる
((( /etc/postgrey/whitelist_clients.local ))) xxx.xxx.xxx.xxx 職場のWordPressサーバのIPアドレス
でも、postgrey-1.37 の更新は本家の changelog を見ると 2016年 みたいだけど、debian パッケージでは随分遅れての 更新だな。手法的にも、もっと確実な、SPF とか DKIM の対応がすすんで、postgrey は時代遅れなのかな。自宅サーバでは、postgrey で reject しそうな接続元は GEOIP で SMTP 拒否しまくりだし、あまり役に立ってないかも。
postfix backward compatibility
今回のトラブルで改めて、postfix のエラーログを見ているとpostfixの再起動時に以下のようなメッセージが出ている。
May 5 19:06:07 ...: Postfix is running with backwards-compatible default settings May 5 19:06:07 ...: See http://www.postfix.org/COMPATIBILITY_README.html for details May 5 19:06:07 ...: To disable backwards compatibility use "postconf compatibility_level=3.6" and "postfix reload"
設定ファイルでは、compatibilty_level が 2 とかになっていたので、書いてある通り 3.6 に上げておく。
((( /etc/postfix/main.cf ))) compatibility_level = 3.6
icingaのWebサーバチェックの改良
自宅サーバで職場のWebサーバの動作確認を行っているけど、WordPress で MySQL が落ちた際に、Webサーバとしては動いているけど、ページが正しく表示できていないことを検出できていなかった。Webサーバに MySQL のステータスチェックをさせる方法もあるかもしれないけど、その Webサーバは自分の管理でもないし、icinga などを入れることもできない。
最近の鯖管なら、zabbix を入れるのが普通なのかもしれないけど、我が家は時代遅れなので古い古い nagios を経て 古い icinga にて運用中。
そこで、nagios-plugin の check_http には、Webサーバの応答データに特定文字が含まれるか確認する機能があるので、それを導入。
# 動作確認用のcommand を登録 define command { command_name check_https_expect_string command_line /usr/lib/nagios/plugins/check_http \ --ssl -H '$HOSTADDRESS$' -I '$HOSTADDRESS$' \ -s '$ARG1$' } # 監視対象のサーバ define host { host_name fnct-www (略) } # HTTPS の返答を確認し、WordPressが正しく動いていれば # 含まれていそうな文字の有無をチェック define service { use generic-service ; host_name fnct-www service_description HTTPS-EXPECT check_command check_https_expect_string!福井工業高等専門学校 }
PHP8.1に更新
PHPのバージョンが、php7.4 をメインに使っていたけど、他のシステムで php7.4-common のモジュールの整合性が悪いので、php8.1 が出ているみたいなので、更新を行い、モジュールの相性をチェック。
((( インストールされているphp7.4系モジュールすべてを8.1でインストール ))) $ sudo aptitude install `dpkg -l | grep php7.4 | awk '{print $2}' | sed s/php7.4/php8.1/` ((( php8.1 を有効化 ))) $ sudo a2enmod php8.1 $ sudo a2dismod php7.4 # a2enmod php8.1 したら 7.4 消してくれると思ってたけど、残ってて # systemctl restart apache2 してもエラーになるから悩んだ ((( apache2 を再起動 ))) $ sudo systemctl restart apache2
php7系からphp8系の移行による文法などの違いから、いくつかの自作 PHP プログラムが動かなくなってチョロチョロとプログラムを修正することになったけど。
改めて、プログラムを修正していると、「このプログラムなら、php7.4でも警告が出ていたはず」だけど、動いていたよなぁ…という修正点ばかり。(^_^;
逆引きできないホストからのメール拒否
自宅サーバのメールに、よくできた偽装メールが届く。
国別IPアドレスで接続制限しているから、それなりに拒否しているはずだが、今回の JCB を語った偽装メールは、From: が *.cn で、ホスト名は逆引きできない、国ドメインではアメリカの IP アドレスだった。
どちらにしろ、我が家に *.cn からのメールが届く段階でヤバい。
ということで、逆引きできないホストからの接続自体怪しいので、smtpd_client_restriction に、reject_unknown_client を加える。
さらに smtpd_sender_restrictions を追加。
# SMTP接続相手がRBL登録されていれば受け取らない smtpd_client_restrictions = permit_mynetworks, reject_rbl_client bl.spamcop.net, reject_rbl_client all.rbl.jp, reject_unknown_client, permit # 送信者が怪しいものは拒否 smtpd_sender_restrictions = permit_mynetworks, reject_non_fqdn_sender, reject_invalid_hostname, reject_unknown_sender_domain
raspberry-pi のディスク容量増
自宅内の色々な処理(温湿度モニタリング, 家電リモコン制御, homebridge)をさせている、Raspberry-Pi のディスク容量(8GB) の容量が不足してきた。大した処理はしていないし、不要なパッケージは消していたけど、homebridge などを使っていたりで、ギリギリになってきた。
Raspberry Pi の SDD交換&拡張
しかたがないので、32GB SDD を買ってきて、イメージファイルでコピーを行う。
((( 元のraspberry-piのイメージ吸い出し ))) $ sudo dd bs=4M if=/dev/sdd of=~/rpi.img ((( 新しいSDDにイメージを書き戻し ))) $ sudo dd bs=4M if=~/rpi.img of=/dev/sdd ((( 新しいSDDでraspberry-piを起動し ))) $ sudo raspi-config --expand-rootfs
bind9-dnsutils の nslookup でデバッグ表示
DNS関連の動作確認で動かしている script が変な表示を出すようになっている。
原因を探していくと、/usr/bin/nslookup コマンドで、検索オプションをつけると、デバッグ出力が表示されているみたい。出力先も標準エラー出力となっている。10/25リリースの 9.17.19-1 の問題??
$ ls -l /usr/bin/nslooup -rwxr-xr-x 1 root root 105120 10月 25 21:29 /usr/bin/nslookup $ dpkg -l | grep bind9-dnsutils ii bind9-dnsutils 1:9.17.19-1 $ nslookup -type=a tsaitoh.net main parsing tsaitoh.net addlookup() make_empty_lookup() make_empty_lookup() = 0x7ffa08b49000->references = 1
どうも、脆弱性問題が発生した対応時の debug モード付がリリースされたんじゃないのか?
dovecot が動かない Let’s Encrypt 証明書問題
数日前から、iphoneで自宅サーバのメールを見ると証明書が有効期限切れとのエラーが表示される。パソコンから Thunderbird で見るのには影響がないようだ。設定を色々と確認しても改善しない。
/var/log/mail.log を見ると、”SSL issue: alert number 46″ などのエラーメッセージが残っていて、dovecot と合わせてググると、Let’s Encrypt のルート証明書が、2021/09/30 で切れるといった記事が見つかり、これが影響しているようだ。
dovecot の設定の修正
さらに検索すると、ようやく対応記事が見つかった。ssl_cert の cert.pem を fullchain.pem に替えるだけ。こちらの資料を見ても、dovecot とか postfix なら fullchain.pem を使うような説明がある。
((( /etc/dovecot/conf.d/10-ssl.conf ))) # ssl_cert = </var/lib/dehydrated/certs/自宅サーバ名/cert.pem ssl_cert = </var/lib/dehydrated/certs/自宅サーバ名/fullchain.pem ((( restart dovecot ))) $ sudo systemctl restart dovecot
postfix の設定の修正
同じような設定は postfix も使っていたはず。試しに、iphone でメールを出そうとすると、dovecot と同じような証明書が信用できないとのメッセージでメールが送れない。
((( /etc/postfix/main.conf ))) # smtpd_tls_cert_file=/var/lib/dehydrated/certs/自宅サーバ名/cert.pem smtpd_tls_cert_file=/var/lib/dehydrated/certs/自宅サーバ名/fullchain.pem ((( restart postfix ))) $ sudo systemctl restart postfix
WSLでX11 GUIを使う
Windows 11 の WSL になれば、X サーバなど準備しなくても動くようになるんだけどね。WSLのPythonでGUIアプリを動かすにはどうすればいいかと試してみた。
XcXsrv を入れてあったけど、面倒で環境作ってなかった。改めて X関係のソフトを入れてみた。
$ sudo aptitude install x11-apps fonts-ipafont inkscape gimp tgif $ export DISPLAY=192.168.xx.yy:0.0 $ xeyes
GIMPとかInkscapeとかGoogle Chromeなども入れてそれなりに上手く動くけど、emacs が上手く動かないな…