ホーム » T-Saitoh

「T-Saitoh」カテゴリーアーカイブ

システム

最近の投稿

アーカイブ

カテゴリー

CVE-2026-98432 の暫定対策で MPTCP 無効化

p2pshell の脆弱性の問題が騒がれている中、CVE-2026-98432 の問題が score 9.8 で報告されてきた。

セキュリティが騒がれているし、対策を探すけど ubuntu 26.10 ではまだ対応カーネルが出てこない。対策をしらべると、MPTCP (Multipath TCP – 複数の TCP 通信を束ねた通信) のトラブルなので、MPTCP を無効化すれば暫定対策になるとな。

MPTCP の機能は ON になっているものの、MPTCPの機能は使っていないので、問題ないだろう。sysctl -w の設定は、再起動時には元に戻るので、MPTCP 対応のカーネルが配布されて再起動すればいい。

$ sudo sysctl -w net.mptcp.enabled=0

Openbugbounty.org からの脆弱性の連絡

自宅のサーバのメールアドレスに、Openbugbouty.org から “Website Security Vulnerability Notification.” との内容のメールが送られてきた。ただ、その組織の Tommi_Len という人が脆弱性を見つけたとの記載はあるけど、具体的にどのような問題なのかの説明が一切無い。

Gemini に調べてもらったけど、Begbounty(おねだりバグバウンティ/Beg(おねだり)とBugBounty(脆弱性報奨金制度)をかけあわせた造語)の可能性があるみたい。「あなたのサイトは問題あるし、コンサルティングしてあげるからお金だしてね」

“Open Bug Bounty の実績は、広く高く評価されている?それとも、Begbounty の報告が多いのか?” と聞いたら、「結論から言うと、セキュリティ業界において Open Bug Bounty(OBB)での実績は「広く高く評価されているわけではなく、Begbounty(おねだり・スパム報告)の温床」として冷ややかな目で見られることが多い のが実情です。」との報告だった。うん、無視しよう。

EPG番組表ふたたび

EPGデータの取得処理

以前運用(EPG番組表とリモコンの連動)していた自宅でよく見るチャンネルを優先する EPG 番組表だけど、番組表が Cable Gate に変わって、番組表情報が取得できなくなっていた。今回、agy (Gemini) にて「このプログラムを参考にEPG情報をとれるように直して」と命令したら、スクレイピングしていたプログラムを、内部で json 形式で読みだす API を見つけてくれたようで、無事元通り。

番組名をクリックすれば、チャンネル変更もできる機能も元通り。

追記 loading 表示

EPG の取得には時間がかかるため、loading… の表示をするように処理中に ob_flush() など埋め込んでいた。しかしながら、今回の修正で機能が復活したけど loading… の表示が正しく動いていなかった。HTTP2の機能を導入する過程で、出力データはバッファリングして一括送付するようになり、PHP の出力バッファリングで、ob_flush() などの効果がなくなっていた。

そこで、以下のような処理を PHP の先頭に埋め込んで、出力バッファリングを抑止して、loading 表示機能も復活。

// EPG取得に時間がかかるのでloading表示したい。
// このため出力バッファリングをさせない
if ( true ) {
    // 1. PHPの出力バッファリングをクリア
    while( ob_get_level() > 0 )
        ob_end_flush() ;
    // 2. mod_deflate による圧縮を回避
    if ( function_exists( 'apache_setenv' ) )
        apache_setenv( 'no-gzip' , '1' ) ;
    // 3. PHP の zlib 圧縮をオフ
    ini_set( 'zlib.output_compression' , 'Off' ) ;
    // Nginx でのみ有効
    header( "X-Accel-Buffering: no" ) ;
    // 4. キャッシュや圧縮をさせないヘッダ
    header( 'Content-Encoding: identify' ) ;
    header( 'Cache-Control: no-cache, no-store, must-revalidate' ) ;
}

P2P地震情報 API

出張中に地震もあったりで、P2P地震情報 API の通知を使えないかと考えてみた。

緊急地震速報が出たときに、Raspberry Pi の cec-client で TV などを点けるなど処理をさせたいな。

ということで、Gemini でプログラムのひな形を作らせてみた。Systemd で起動するようにちょい修正だな。

import asyncio
import json
import websockets

# あなたが住んでいる、または通知を受け取りたい地域(例:東京都)
MY_PREF = "東京都"
MY_CITIES = ["千代田区", "新宿区"]  # 必要に応じて市区町村まで絞る場合

async def listen_eew():
  uri = "wss://api.p2pquake.net/v2/ws"
  async with websockets.connect(uri) as websocket:
    print("地震情報の受信を待機中...")
    async for message in websocket:
      data = json.loads(message)

      # --- パターンA: 震度情報(code: 551 など)の場合 ---
      if data.get("code") == 551:
        # 各地の震度データから自分の地域を探す
        for pref_data in data.get("pref", []):
          if pref_data.get("name") == MY_PREF:
            max_scale = pref_data.get("maxScale")
            print(f"【地元で地震を検知】{MY_PREF} 予想/観測震度: {max_scale}")
            # TODO: 通知処理をここに書く

      # --- パターンB: 緊急地震速報(code: 554 / 556 など)の場合 ---
      elif data.get("code") in [554, 556]:
        # 警報・予報の対象地域に自分の地域が含まれているかチェック
        # (※実際のJSON構造に合わせたキー指定が必要です)
        areas = data.get("areas", [])
        for area in areas:
          if MY_PREF in area.get("pref", ""):
            print(f"【緊急地震速報】お住まいの地域が含まれています: {area}")
            # TODO: 強い揺れへの警戒・音声アラートなど

asyncio.run(listen_eew())

pnrcon.net からメール送信?

DMARC を運用しているけど、自宅ドメインを語ったメールが送信されたとの報告。ちょっと不気味だな。

1件だけなので、偽装送信に悪用可能なドメイン名なのかを確認するために使われたのだろうか。
事前偵察(プロビング)というらしいが、確実に reject しているので、悪用できないドメインとして記録された…ということで、現状では見守るしかないかな。

dmarc-cat 0.15.0,parallel/j4 by Ollivier Robert

Reporting by: google.com — noreply-dmarc-support@google.com
From 2026-10-28 09:00:00 +0900 JST to 2026-10-29 08:59:59 +0900 JST

Domain: tsaitoh.net
Policy: p=reject; dkim=r; spf=r

Reports(1):
IP                                  Count   From        RFrom       RDKIM   RSPF
149-137-190-134.dynamic.pnrcon.net. 1       tsaitoh.net tsaitoh.net fail    fail

switchbot の munin プラグインを multigraph 化

自宅内を switchbot で色々と管理できるようになったけど、温湿度測定の対象も増えてきたら、munin のデータ更新の時間がどんどんと長くなってきた。

gemini に手伝ってもらい、パケット流量の監視などでセッションを残すことなどで、早くなってきたけど、もう少し改善したい。確認を行うと、Switchbot の温湿度測定をセンサー毎に lua プログラムで実行しているのに時間がかかり、複数センサーを一括で取り込むことを勧められる。

そこで、tokenやらアクセス用のタイムスタンプ情報などを作る部分を最初に1度行って、データ取得は一括で取り込むことにした。このような処理のために、munin では multigraph という機能があるので、プラグインを multigraph 化してみた。11秒ほどかかっている munin-update が 8秒ほどに短縮できた。

php2shell の対応

PHPの更新が前日に予告され、一斉更新がかかるという流れは、かなり重大。

ということで、いつもなら職場にいってから対応なんだろうけど、高市さんの危険勧告のニュースを見ながら、職場や自宅のサーバの更新をかけた。ひとまず、debian, ubuntu の更新情報で対応版のバージョンなのを確認でひとまず安心かな。

(追記) 公開前後への攻撃の可能性もあるので、https://x.com/okdt/status/2113066222870999515 の記事を参考に、error.log や access.log を確認。特に問題となる攻撃の痕跡は見つからなかった。

Ubuntu 26.10 への更新(mariadbトラブル)

Ubuntu 26.10 の公開に合わせて、自宅サーバの do-release-upgrade -d を実行してみた。
約3000パッケージほどが更新されたが、upgrade 時点では大きなトラブルなく終了&再起動。

mariadb の修復

しかしながら、再起動後に wordpress が定番の”データベース接続確立エラー”で動かない。Apache,PHPなどは普通に動いているようなので、困った。

トラブルが次々発生したけど…

  • 更新作業中に既存の設定ファイルを残す方針で更新をしたため、mysqlからmariadbの移行が中途半端だったので /run/mysql を参照する設定になっていた。パッケージの設定ファイルを更新パッケージ付属の mariadb の純正の設定ファイルに変更し、mariadb がひとまず起動。
  • しかしながら event や proc などのファイルが壊れていたり整合性のエラーで正常起動状態にならず、Gemini に聞きながら、壊れている関連ファイルを削除し、mariadb の再起動で関連ファイルを修復し、ようやく mariadb が正常起動。
  • でも、接続確立エラーがでたけど、最後に wordpress の DB_HOST の設定が localhost になっていたものを 127.0.0.1 に変更したら wordpress が正しく動くようになった。

確認作業

その他の機能は、nagios4 とかで確認すると、正常に動いているように思える。メールの送受信あたりがややこしいけど、Gmail 間で送受信ができたので大丈夫かな。

更新時に、dmarc-cat や nodejs などの PPA の設定で入れたものが動かなくなるかも… との警告が出てたけど、更新後にパッケージなどで残っているので、ひとまず大丈夫っぽい。

我が家で大活躍している、HomeAssistant も正常に動いている…たぶん…これからの運用でトラブルが見えてくるかもしれないけど、26.10 を危険覚悟で入れたのだから仕方がないだろうな。

PPAパッケージの復活

do-release-upgrade の際に無効化されていた、/etc/apt/sources.list.d/ 配下の PPA パッケージは、更新時に “Enabled: no” にされていたけど、改めて “Enabled: yes” に変更し更新の有無を確認。

WSL で 26.10

WSL環境も、先日 docker なども容易になった wsl-3.0.3 が出てきてるけど、Ubuntu 24.04 から 26.04 に更新した環境で 26.10 に更新。

蝗はイナゴ?バッタ?

薬屋のひとりごとの3期で蝗害がネタになってるけど、ストーリーの雰囲気からするとイナゴのかわりにバッタが増えると蝗害が発生するような関係のように思っていた。でも漢字変換するとイナゴ=蝗で、蝗害はイナゴの害?でなんかストーリーに合ってない。

んで、Wikipedia 蝗害をみてみた。なるほど中国では「蝗=バッタやイナゴ」。んで日本ではイナゴの大量発生のような蝗害は発生しないし、「蝗=イナゴ」と読んでいる。

んで、中国での蝗害は、バッタが単独で生活する「孤独相」の状態と、群生して移動する「群生相」があり、「孤独相が群生相に変異」すると蝗害となるらしい。つまりどっちもバッタ。イナゴ類が減ってバッタ目が増える訳ではない。「イナゴは相変異しない。(株エコリスより引用)」」  薬屋のひとりごとは、ストーリーの分かり易さを優先し「孤独相=イナゴ」、「群生相=バッタ」と表現しているようだ。

外部からの到達確認

外部からの HTTPS トラブルもあり、nagios に外部から自宅サーバへの到達性チェックを追加。

自宅から nrpe で監視している さくらインターネット 上のサーバに以下の設定を追加。

((( 外部サーバ: /etc/nagios/nrpe.d/enabled.cfg )))
# -s 文字が含まれるかチェック(DDNS環境なので文字検索チェック付き)
command[check_tsaitohnet_http]=/usr/lib/nagios/plugins/check_http tsaitoh.net -s tsaitoh.net
command[check_tsaitohnet_https]=/usr/lib/nagios/plugins/check_http --ssl tsaitoh.net -s tsaitoh.net

((( 自宅 )))
define service{
        use                     local-service   ; Name of host template to use
        host_name               .....
        service_description     TSAITOH_HTTP
        check_command           check_nrpe!check_tsaitohnet_http
        check_interval          1440 ; 1day 確認頻度は低く
        retry_interval          60   ; 1h
        notification_interval   0    ;
}
# HTTPSチェックは、HTTPSトラブルが解消してから

Google 検索

My Google   Yahoo

Microsoft

ファンサイト

メタ情報