ノジマオンラインの個人情報漏えい:対象情報と利用者が確認すべき対策
ノジマは2026年11月2日、会員管理システムへの不正アクセスと約700万件の情報漏えいを公表。対象サイト、暗号化パスワードとカード情報の違い、サービス休止状況、利用者の対策を11月3日時点で整理します。
具体例:小規模なボランティアグループが、独自の Matrix ホームサーバーを に設置したいとしますchat.example.com。これは架空の設定であり、テスト済みのサーバーのレポートではありません。同じ手順を実際のドメインにも適用できますが、Matrix サーバー名は慎重に選択してください。Synapse はこれをユーザー ID に使用するため、後から変更することはできません。
このガイドでは、Docker Compose を使用して Synapse サービスと PostgreSQL データベースを作成します。Synapse の公式 Docker イメージはデフォルトで SQLite から開始されますが、これは使い捨ての試用には便利です。Synapse の Docker ドキュメントでは、本番環境では PostgreSQL を推奨しています。そのため、この例ではまず Synapse の構成を生成し、データベース設定を PostgreSQL に変更してから、両方のコンテナを起動します。公式イメージは ですghcr.io/element-hq/synapse。手順とイメージの詳細は、2026 年 10 月 6 日の最新の公式ドキュメントに基づいて確認されています。イメージのタグとサポートされているソフトウェアのバージョンは変更される可能性があるため、長期展開の前にリンク先のドキュメントを確認してください。
docker compose version。ご使用のオペレーティングシステムに応じたDockerの公式インストール手順に従ってください。chat.example.comは Synapse サーバー名なので、ローカルユーザー ID は のようになります@alex:chat.example.com。設定を生成する前に、これを管理しているドメインに置き換えてください。8008インターネットに公開されるHTTPSエンドポイントではありません。このComposeの例では、そのポートをホストのループバックインターフェースにバインドすることで、同じマシン上のリバースプロキシからアクセスできるようにします。の名前はSYNAPSE_SERVER_NAME、必ずしもすべてのクライアント接続の URL になるわけではありません。@alex:example.comからクライアントにサービスを提供する際に、 のような短い ID を使用したい場合はchat.example.com、ドメインと検出設定を意図的に行う必要があります。アカウントを作成する前に、この点を決定してください。
サーバー上に、Composeプロジェクトと永続的なSynapseファイル用のディレクトリを作成します。
mkdir -p ~/matrix-synapse/data
cd ~/matrix-synapse
.envDocker Compose が読み込むローカルファイルを作成します。パスワードマネージャーまたはローカルの安全な生成ツールを使用して長いランダムなパスワードを生成し、それを の後に配置しますPOSTGRES_PASSWORD=。この例では、後で YAML の引用符の問題を回避するために、文字と数字を使用します。このファイルを公開リポジトリにコミットせず、権限を制限します。
umask 077
nano .env
ファイルには、例えば のような 1 行のみが含まれている必要がありますPOSTGRES_PASSWORD=replace-with-a-long-random-value。このテキストはプレースホルダーであり、再利用するパスワードではありません。パスワードは、手順 3 の Synapse データベース構成のために保管しておいてください。
compose.yamlプロジェクトディレクトリ内に以下を作成します。
services:
postgres:
image: postgres:16
restart: unless-stopped
environment:
POSTGRES_USER: synapse
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?Set POSTGRES_PASSWORD in .env}
POSTGRES_DB: synapse
POSTGRES_INITDB_ARGS: "--encoding=UTF8 --locale=C"
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U synapse -d synapse"]
interval: 10s
timeout: 5s
retries: 5
start_period: 20s
synapse:
image: ghcr.io/element-hq/synapse:latest
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
environment:
SYNAPSE_SERVER_NAME: chat.example.com
SYNAPSE_REPORT_STATS: "no"
volumes:
- ./data:/data
ports:
- "127.0.0.1:8008:8008"
volumes:
postgres_data:
chat.example.com選択した最終サーバー名に置き換えてください。PostgreSQL のヘルスチェックにより、Compose は Synapse の起動前にデータベースが準備完了と報告するまで待機します。名前付きデータベースボリュームとホストマウントディレクトリは、コンテナの置き換え後も保持されます。コンテナを削除するだけでは、これらは消去されません。データベースボリュームを意図的に削除したい場合を除き、./dataこの操作は避けてください。docker compose down -v
この例では:latest、最初のプルを簡素化するために、特定の Synapse リリース タグまたはイメージ ダイジェストを選択して記録し、リリース ノートを確認した後、計画されたアップグレード プロセスを通じて更新します。変更可能なlatestタグが同じバージョンを維持するとは限らないことに注意してください。
公式イメージを構成生成モードで一度実行します。Composeは./dataにマウントされるため/data、生成された構成と署名キーはホスト上に残ります。
docker compose run --rm synapse generate
このコマンドは、Compose 環境のサーバー名と匿名統計情報の設定を使用します。Synapse は署名キーも作成します。このキーはデータディレクトリに保管し、保護されたバックアップにも含めてください。通常のコンテナ更新時に再生成したり破棄したりしないでください。
生成されたセクションを開きdata/homeserver.yaml、database:以下の設定に置き換えてください。.envプレースホルダーの代わりに、正確なパスワードを使用してください。
database:
name: psycopg2
args:
user: synapse
password: 'replace-with-the-same-random-value'
dbname: synapse
host: postgres
port: 5432
cp_min: 5
cp_max: 10
周囲の YAML インデントを維持し、アクティブなセクションが 1 つだけであることを確認してくださいdatabase:。ホスト名postgresは Compose サービス名であり、コンテナは共有デフォルト ネットワーク上でこれを解決できます。設定では、Synapse のドキュメントに記載されている PostgreSQL エンジン名、psycopg2および、を含むデータベース引数名を使用しますdbname。
この簡単な例では、データベースのパスワードはSynapseの設定ファイルと保護された.envファイルの両方に含まれています。両方のファイルを機密情報として扱い、ホストからのアクセスを制限し、展開環境で必要であれば専用の機密情報管理方法を使用してください。実際のパスワードをログ、スクリーンショット、サポートリクエストに貼り付けないでください。
スタックをバックグラウンドで起動する:
docker compose up -d
サービスの状態を確認し、起動ログを読み取ってください。
docker compose ps
docker compose logs --tail=100 synapse
Synapse が初回起動時のデータベース設定を完了するまでお待ちください。コンテナが実行中ということは、そのプロセスがアクティブになっていることを意味します。先に進む前に、ログを確認して設定、データベース、または権限のエラーがないか確認してください。ログの到着を監視するには、[ログ] を使用し、[ログ]docker compose logs -f synapseキーを押すと、Ctrl+Cコンテナを停止せずにログの監視を停止できます。
Dockerホストから、SynapseのクライアントAPIバージョンのエンドポイントにリクエストを送信します。
curl -fsS http://127.0.0.1:8008/_matrix/client/versions
正常な応答は、サポートされているMatrixクライアントAPIのバージョンを記述したJSONです。これは、HTTPリスナーがローカルで応答していることを確認するものであり、DNS、HTTPS、またはフェデレーションが正しく構成されていることを証明するものではありません。
ホストのリバースプロキシを設定して、選択したドメインへのリクエストを転送しhttp://127.0.0.1:8008、有効なTLS証明書を取得します。プロキシ処理時には、Matrixリクエストパスを保持します。その後、公開エンドポイントを確認します。
curl -fsS https://chat.example.com/_matrix/client/versions
サンプルホスト名を実際のホスト名に置き換えてください。クライアントが別のユーザーIDドメインからホームサーバーを検出する必要がある場合は、その設計に適したMatrixの既知の検出レコードを公開してください。フェデレーションには、適切なパブリックルーティングとDNSも必要です。ローカルポートを開放する8008だけでは、完全なパブリック展開は実現できません。サービスを公開する前に、Synapseのリバースプロキシとフェデレーションに関するガイダンスを確認してください。
Synapse はデフォルトで公開登録を無効にしています。プライベートサーバーの場合は、このデフォルト設定のままにして、コマンドラインからアカウントを作成してください。一時的に に強力なregistration_shared_secret値を追加しdata/homeserver.yaml、Synapse を再起動して変更を反映させます。
docker compose restart synapse
コンテナ内で登録ツールを実行します。ユーザー名とパスワードの入力を求められます。設定により--admin最初の管理者が作成されます。
docker compose exec synapse register_new_matrix_user \
http://localhost:8008 \
-c /data/homeserver.yaml \
--admin
アカウント作成後、registration_shared_secret設定から削除し、Synapseを再起動してください。シークレットを設定したままにしておくと、シークレットを入手したユーザーは誰でも登録インターフェースから標準アカウントまたは管理者アカウントを登録できてしまいます。リバースプロキシから提供されるサーバーURLを使用して、カスタムホームサーバーをサポートするMatrixクライアントからサインインしてください。
./data。のコピーcompose.yamlだけではホームサーバーを復元できません。バックアップはサーバーとは別の場所に保存し、定期的に読み取り可能であることを確認してください。/data。のホスト所有権とパーミッションを確認してください./data。公式イメージのランタイム ユーザーには、設定の読み取りとデータの書き込み権限が必要です。ディレクトリを誰でも書き込み可能にするのではなく、ホスト所有権を慎重に調整してください。host: postgres、パスワードが と一致していること.env、 がdocker compose logs postgres正常なデータベースを示していることを確認してください。Compose のdepends_on準備状況は起動時の競合状態を軽減しますが、誤った認証情報を修復するものではありません。docker compose pullまずバックアップを作成し、Synapse のリリース ノートを確認し、ピン留めされたイメージ タグを更新してから、 を実行してサービスを再作成しますdocker compose up -d。データ ディレクトリ、データベース ボリューム、サーバー名、署名キーはそのままにしておきます。例示されているボランティアグループの設定では、ローカルバージョンのエンドポイントが応答し、プロキシ経由でHTTPSエンドポイントが応答し、管理者が意図したMatrix IDドメインを使用してサインインできる場合にのみ、インストールが完了します。これらのチェックは、最初のデプロイメントが正常に動作していることを示す実用的な指標であり、より広範なコミュニティを招待する前に、セキュリティ、バックアップ、フェデレーション、および運用要件を確認することの代わりとなるものではありません。
ノジマは2026年11月2日、会員管理システムへの不正アクセスと約700万件の情報漏えいを公表。対象サイト、暗号化パスワードとカード情報の違い、サービス休止状況、利用者の対策を11月3日時点で整理します。
迅速なLAN検出、クロスプラットフォームスキャン、IPアドレス管理のための10種類のpingスイープツールを比較します。スイープで何がわかるのか、何がわからないのかを理解しましょう。
SNMP対応範囲、マッピング、アラート、導入モデル、コストのトレードオフなど、パフォーマンス監視のための6つのネットワーク管理ツールを比較します。
フルネットワークスイートからレイテンシに特化したプローブまで、7つの無料オープンソースpingモニターを比較し、可用性、パケット損失、履歴など、ニーズに最適なものを選びましょう。
Windows、iPhone、Android向けのWi-Fiアナライザーのおすすめを比較検討しましょう。チャネルの混雑状況、信号カバレッジ、ヒートマップ、ネットワークのトラブルシューティングツールなどが含まれています。
WindowsおよびLinux向けの信頼性の高いSFTPサーバーソフトウェア(OpenSSH、Bitvise、SolarWinds、SFTPGoなど)を比較検討しましょう。セキュリティとファイル転送のニーズに最適なソフトウェアを見つけてください。
迅速なデバイス検出、クロスプラットフォームIPスキャン、エンタープライズIPAMを実現するネットワークスキャナーツールを比較し、それぞれのオプションをネットワークに合わせて選択するためのガイダンスを提供します。
サブネット検出、DNSとDHCPの連携、ネットワークインベントリ、オープンソースIPAMに対応した7つのIPアドレス管理ツールを比較します。
明確なデバイスカバレッジ、有用なパフォーマンス指標、実用的なアラート、そしてSolarWinds NPM、PRTG、OpManagerの比較機能を備えた、実用的なネットワーク監視システムを構築します。
SNMPデバイス検出、インターフェースグラフ、ホストメトリック、サービスチェック、トラフィックフローに関する6つのLinuxネットワーク監視ツールを比較します。