雑記(2022/7/2)

 Linuxよくわからない勢の一人です。ただサーバーのOSはどれが良さそうってのはなんとなく知っていて、大学の知り合いから吹き込まれたCentOSを好んで使っていました。
ただ昨年の今頃くらいにCentOSのあり方が変わることを耳にし、慣れきらないうちにOSの変更を考えるようになりました。
期限切れは2024年6月であるものの、kifuyu.netの運用環境が若干古くなってきたこともありサーバー再構成とOS変更を同時に実施です。
 いっその事、個人・開発用途であれば無償で使えるRHELにしてみるのもありだったけど、特に思い入れもないのでDebian系のUbuntuを選択。

この日の新鯖における作業は下記の通り。

  • ユーザの追加
  • SSHの設定
  • Fail2banの設定
  • DBのkill

>SSHの設定
“SSH2 User Auth Failure “publickey,gssapi-keyex,gssapi-with-mic”
Status=1004 Send Disconnect Message…
publickey(ssh-ed25519),publickey(ssh-ed25519)”

上記のポップウィンドウが出てきてしまって見事にハマった。
公開鍵のフォーマットを見直したら、ようやくsshでの通信が通った。
楽しようとRloginで生成したけど、結局ssh-keygenで生成した方がスムーズに行けたという。原因はopensshの設定にあるのか、Rloginのせいなのかよくわからん。後者ぽいけど。

//Rloginで生成
-----BEGIN OPENSSH PRIVATE KEY-----
*****
-----END OPENSSH PRIVATE KEY-----
->
//ssh-keygenで生成したやつ。
ssh-ed25519 ***** hogehoge

 sshdの設定ファイルは、/etc/ssh/配下のsshd_configをsshd_config.dへコピーして、hogehoge.confへリネーム。
また同ファイルを下記の設定に書き換え。

// コピー先の*.conf内のincludeをコメントアウト
- Include /etc/ssh/sshd_config.d/*.conf
+ # Include /etc/ssh/sshd_config.d/*.conf

// ポート番号変更。Firewallの設定も忘れずに。
- Port 22
+ Port hogehoge

// rootユーザでログインはしないので無効化
- PermitRootLogin yes
+ PermitRootLogin no

// 公開鍵認証に限定のため変更。公開鍵使ってるのにあえて"yes"を指南する記事があったけど何故…
- PasswordAuthentication yes
+ PasswordAuthentication no

// コメントアウトしないと何故かエラーが発生する。"Failed to start OpenBSD Secure Shell server."
- Subsystem sftp /usr/lib/openssh/sftp-server
+ #Subsystem sftp /usr/lib/openssh/sftp-server


 authorized_keysはssh接続するユーザのディレクトリ配下(home/hogehoge/.ssh/)に置いとく必要がある。
しばらくrootのディレクトリに配置していたせいで接続できんかった。。

カスペルスキー環境下でDiscordが起動しなくなったので直した話


 Discordが起動しなくなってしまった。スプラッシュウィンドウには”Update Failed”の文字。
そして”Retrying in XX Sec”が延々と表示されたまま一向にアップデートが終わらない。アプリケーションが立ち上がらない状態だ。
 Deep Lも似たような匂いを醸しており、”err_connection_aborted”または”err_connection_reset”が赤い背景とともに表示され続ける現象に陥ってしまった。
両ソフトとも相手先サーバに接続する際のトラブルと見受けられ、自身のPC環境が原因と疑われる。最近はネットワークの設定を触っていないため、原因はウイルス対策ソフト(カスペルスキーインターネットセキュリティ)かNICの故障と思われた。切り分け作業として初めにカスペルスキーを停止したら両ソフトともあっさり起動した。

ならばこいつの挙動が原因で間違いなし。

 問題はどの設定が引っかかっているのか…であり、少し時間をかけてしまったがウイルス対策ソフトのユーザフォーラムを参考にしたら解決できたので備忘録として残す。

https://forum.kaspersky.com/topic/community-plugins-access-blocked-in-obsidian-notetaking-software-obsidianmd-24805/?do=findComment&comment=106409

もともと別アプリケーションで起きた不具合に付ずいして、Discordなどのアプリも立ち上げに失敗してしまうというスレッド。それに対するメンバーのアドバイスが上記リンク先で読める。
抽出した対処手順は大きく5つのステップ
 1. Kasperskyのセルフディフェンスの無効化(マルウェアによる設定改変防止機能の停止)
 2. Kasperskyの停止
 3. 一時ファイル置き場の掃除
 4. パソコンのシャットダウン&起動
 5. 1.で停止したセルフディフェンスの有効化

詳細内容は下記の通り。オレンジ表記は意訳した箇所を表す。

  1. タスクバーにあるKasperskyのアイコンを右クリック→”設定”から”全般”にアクセスする。下にスクロールすると”セルフディフェンス”の項目があり、“セルフディフェンスを有効にする”をクリックしてチェック無し(無効化)にする。これはKasperskyの設定を触るための一時的な作業であり、後ほど元に戻す作業(有効化)を行う。
  2. Kasperskyを終了するため、”保存”を押したらタスクバーにあるKasperskyのアイコンを右クリック→ “終了”に進む。
     危険性がどうのこうのと表示されるが無視して”OK”でおk。
  3. 次のフォルダにアクセスする。C:\ProgramData\Kaspersky Lab\AVPxx.x\
     ”AVPxx.x”は自身が使っている最新のバージョン名のものを選べばいい。
    私の環境ではAVP21.3でした。このAVPxx.x配下にある”Report”フォルダを”Report1“にリネームする。
    先のセルフディフェンスを無効化+Kasperskyを落とす作業をしておかないと、権限を理由にリネームできない。更新作業時に当該フォルダの情報を読み取らせないことが目的。
     ちなみに、リネームと記載あるけど削除しても問題なさそう。Kasperskyが起動しなくなったときのサポート連絡に備え、または単純なバックアップや自己検証用に残すため採番しているようだ。
    けど不要だと思うなら削除で良さそう。自分の環境だと5GBくらいあったためリフレッシュを兼ねて削除した。
  4. パソコンを再起動ではなくシャットダウンする。電源ボタンを押してログインしてKasperskyを起動する。
     副次的なエラー防止のためのお約束作業かな。ReportフォルダはKaspersky起動時(自動起動時)に再作成される。
    (なお、シャットダウンというか再起動もせずに状況改善されたけど自己責任で。)
  5. 1.で無効化したセルフディフェンス機能を有効化する。

 当初は”脅威と除外リスト”の設定からDiscordの実行ファイル本体を検疫対象外にすれば解消できると思っていた。
Discordの挙動として、”C:\Users\<username>\AppData\Local\Discord\”にあるUpdate.exeがスタートアップで起動し、次に”..\Discord\app-x.x.xxxx”内のDiscord.exeが実行される模様。そこで、試しに2つともリストにいれたのだけど…全然解決できず。つまらないことで結構な時間を格闘することになってしまった。。。

 専門家ではないので深追いはしないけど、原因は一時ファイル(g_objdt.dat)にありそう。収集したデータを元に怪しい通信ポートを遮断している?再構築したことで学習がリセットされた?Reportフォルダには他にも色々保存してあるけど、あまり関係なさそうなんだよなあ。。(https://support.kaspersky.co.jp/help/Kaspersky/Win21.5/en-US/144978.htm


結局のところ、なぜ通信できなくなったのかはわからないまま。今後のために誰か教えてほしい…。

Thanks, ‘Flood and Flood’s wife’-san!! 助かりました。

以下参照先、
Community Plugins access blocked in Obsidian Notetaking software Obsidian.md
As of Apr 27, Kaspersky causes Microsoft Edge and Opera GX browsers to fail to load web pages


HP T1000Jについて

とある筋から入手したUPS(ヒューレットパッカード社製 HP T1000J)は我が家にきて稼働5年目を迎える。
今日に至るまで雷による停電からメインPCとサーバを守ってくれたし、電気の使いすぎでブレーカが落ちた際もシャットダウンまで保ってくれたGood jobなヤツです。
HP T1000 G3というモデルの日本ナイズ化(100V)化された仕様であるものの、個人用途には使われないためか調べたいときに肝心な情報が見当たらなかったので覚えとしてまとめる。

UPSは必需品ですわ。今のところ買い替えは不要だけど、壊れたらどこのメーカがよさげなんだろうか。

PCI Expressの仕様書が読みたい

ちょっとした興味が湧いてPCI Expressのことを調べている。PCI Express設計の基礎と応用(畑山 仁)は今読んでる本で、やりたいことへの足がかりになればいいなと思ってる。。
並行してPCI Expressの仕様書が読みたく、ネットをしばし彷徨ってみた。以下、自身のメモ。

・ PCI Express®Base Specification Revision 3.0(November 10, 2010)
https://git.sijman.nl/_/ros/media/branch/master/documentation/PCI_Express_Base_3.0.pdf
・ PCI Express®Base Specification Revision 2.0(December 20, 2006)
https://www.cl.cam.ac.uk/~djm202/pdf/specifications/pcie/PCI_Express_Base_Rev_2.0_20Dec06a.pdf
・ PCI Express®Base Specification Revision 4.0 Version 0.3(February 19, 2014)
https://astralvx.com/storage/2020/11/PCI_Express_Base_4.0_Rev0.3_February19-2014.pdf

・ PCI Express 5.0 Update:Keys to Addressing an Evolving Specification
https://www.tek.com.cn/-/media/china-marketing-documents/pcie/pci-express-5-update-keys-to-addressing-an-evolving-specification.pdf



Jupyterlabの起動に失敗する(2022/4/17起動した)

webスクレイピングがしたくてPythonの勉強を始めることにした。
実行環境はjupyter labと呼ばれるソフトがwindowsでも使えるクロスプラットフォーム仕様だと知り、さっそく環境を整え始めてみたところ下記のようなエラーが登場。。

Jupyter Server Initialization Failed
Error; Jupyter Server process terminated before the initialization completed

起動直後に”Jupyter Server Initialization Failed”なんていう画面が出る羽目に…。

Change environmentを触っても改善できないし、なんでだ??


(2022/4/17追記) 結局原因は分からず、Jupyterlabの再インストールで解決したという全くもって間抜けな幕引きとなった。
当初、エラーの原因は”nativeWindowsOpen”なる関数の値かと思っていたが、調べてみると単にNot recommendedを警告してるに過ぎないことがわかった。
The default of nativeWindowOpen is deprecated and will be changing from false to true in Electron 15.

このあとに“Jupyter Server initialization message: Traceback (most recent call last)~”ってのが続き、最終的には”ImportError: DLL load failed while importing _ssl”として、DLLのインポートがうまくできなかったと表示される。画像の通り、肝心のDLL名あるいはその内容は文字化けしている。日本語環境由来のエラー?


でもローカルユーザ名はアルファベットにしているしなんでだろう…。あるとすれば、ユーザ名Public(パブリック)を2バイト文字で認識して読み込んでいるため、ファイルパスが読み取れていない?

…うーんよくわからん、、DLLも手動で入れたくない、、
ということでクリーンインストールに至り、結果として無事にJupyterが起動してしまった。。(インストール先はgeneralな場所じゃなくて、2バイト文字が含まれないpersonalな場所)

以下参照先、
Jupyter Server Initialization Failed · Issue #381 · jupyterlab/jupyterlab-desktop · GitHub
[Bug]: Webview is causing the warning “default of nativeWindowOpen is deprecated” · Issue #31784 · electron/electron · GitHub
「Electron 14」が正式公開 ~次のバージョンからリリース間隔は12週間→8週間に – 窓の杜