古いサーバーにsshで繋げられない(ssh-dssを今さら使う)

古いLinuxサーバー(CentOS4か5か)がLAN内にあって、そちらにsshアクセスしようとしましたが、ssh鍵がdsaって書いてある。
最近windowsからのsshはpowershellから起動して使うようになりまして(便利になったね!)。

とりあえず
ssh -i id_dsa IP_ADDRESS
としてみましたが
sign_and_send_pubkey: no mutual signature supported
とエラーでアクセスできず。

一時的にssh-dssを許可しないといけないので
ssh -i id_dsa -o ‘PubkeyAcceptedKeyTypes +ssh-dss’ IP_ADDRESS
これで使うことができました。

古いサーバーはリプレースしていかないとね…

古いOpenVPNに繋がらないときの対処

OpenVPN機能が内蔵されたルーターなどでバージョンが古い相手に、最新のOpenVPN2.5.xで繋ごうとするとエラーで接続できません。

tls-cipher "DEFAULT:@SECLEVEL=0" 
data-ciphers AES-256-GCM:AES-128-GCM:AES-128-CBC:BF-CBC

configに上記を追加することで、2.5から使われなくなったBF-CBCというcipherを強制して合わせることができますが、将来的になくなるようなので、その時には相手方のルーターもバージョンアップするかリプレースしないといけないことになります。

■OpenVPN 2.5 のサイファの互換性 | OpenVPN.JP

WordPressからフォームでメールを送るとGmailに拒否される

WordPress + Contact Form 7でメールを送ってもらっていたサイトが、2月あたりからGmailに拒否されるようになってしまった。GmailがSPAM対策強化をしていたのでそれが関係するだろうということで調査。

SPFに対応するのは必須。しかしSPFがPASSしても拒否される。メールを見てみると、いわゆるenvelope fromのアドレスが異なっていた。
シェルから echo ‘test’ | mail -s ‘test’ -r (自ドメインのアドレス) (送信先Gmailのアドレス) とするとテストできるが、これは通る。
しかしWordpressから送ると apache@サーバー名 で送られてしまう。

WordPressのメールの仕組みはenvelope fromを書き換えないし、CF7ではReturn-Pathを設定しても反映されないようだ(WP関数内で落とされる)。
結局このへんの回避のために WP Mail SMTP というプラグインを導入。いろいろリッチなオプションを求められますが最低限でOK。
「送信元アドレスを返信先 (return-path) として設定」このチェックが重要。

これでGmailにも拒否されなくなりました。もっとやるならDKIM、dmarc対応までやらねばならない。

CentOS8のサポートが切れたのでCentOS Stream 8に移行する

話は知っていたが無対策だった。期限の2021年12月を過ぎたらdnfアップデートもできなくなった。他のディストリビューションに移る話もあったが、とりあえず単体webサーバーぐらいにしか使っていないのでCentOS Stream 8へ移行する。

/etc/yum.repos.d/の CentOS-Base.repoとCentOS-AppStream.repoで
mirrorlistをコメントアウト、baseurlをvaultに指定
baseurl=http://vault.centos.org/$contentdir/$releasever/BaseOS/$basearch/os/
baseurl=http://vault.centos.org/$contentdir/$releasever/AppStream/$basearch/os/

dnf install centos-release-stream
dnf swap centos-linux-repos centos-stream-repos
dnf distro-sync

これで /etc/centos-release を見てみると CentOS Stream release 8 になっている。
vaultが生きてるうちにやっておかねばならぬ。
(先日見たらCentOS5向けのvalutはしっかり閉じてた)
だからこれは2022年3月版ということで。

phpMyAdmin置いたら真っ白

CentOS8からCentOS Stream 8への移行作業を行って、必要になりphpMyAdminを設置。
しかし動かない、真っ白…

エラーログには
PHP message: PHP Fatal error: Uncaught Error: Call to a member function getCookie() on null in /path-to-pma/libraries/classes/Url.php:220

そんなみんな使ってるバージョンなのに動かないなんてことはないよねーと追いかけたらスタックトレースにしっかり「warnMissingExtension(‘json’,true)」とか「book.json.php」とか出ている。

php-jsonパッケージをインストールしたら動きました。