Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

【Linux】rsyncdはデフォルトで共有モジュール名を公開している?確認コマンドと必須のセキュリティ対策

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!

Linuxサーバー同士でディレクトリを効率よく同期させる際、バックグラウンドで常駐させて使う「rsyncのデーモンモード(rsyncd)」。

非常に便利で高速なツールですが、初期設定のまま(デフォルト状態)で運用していると、セキュリティ上の重大な穴(情報漏洩の引き金)になりかねない仕様があるのをご存知でしょうか。

今回は、「rsyncdはデフォルトで共有モジュール名を公開しているのか?」という疑問への回答と、今すぐに行うべき対策について解説します!

スポンサーリンク
バッチ処理の自動化スキルは市場価値が高いです。今の自分の単価を調べてみませんか?
顧客常駐はもう嫌だ!社内SEへ転職するなら【社内SE転職ナビ】
Cursor・Claude Code・Codex AIスキルを学ぶなら
環境構築不要!AIエージェント開発を非エンジニアでも即実践【AI Agent Camp】

🚨 結論:デフォルトだと「モジュール名」は丸見え!

結論から言うと、rsyncdはデフォルト状態で、設定されているすべての共有モジュール名を外部に対して公開(リスト表示)する設定になっています。

例えば、認証機能などを付けずにrsyncdを起動している場合、外部の第三者が以下のコマンドを叩くだけで、そのサーバーにどんな共有ディレクトリ(モジュール)が存在しているのかが、いとも簡単に一覧で表示されてしまいます。

Bash

$ rsync rsync://[対象サーバーのIPアドレス]/

実行結果のイメージ

Plaintext

backup_dir      "System Backup"
web_root        "Production Web Root"
secret_data     "Confidential Data"

このように、ユーザー名やパスワードを入力しなくても、「どんな名前の共有スペースが存在しているか」が丸見えになってしまうのです。

🔍 なぜモジュール名が漏れると危険なのか?

「名前がバレるだけで、中身のファイルをダウンロードされなければ大丈夫では?」と思うかもしれません。しかし、攻撃者(ハッカー)の視点に立つと、これは非常に有力な情報になります。

  1. 攻撃対象(パス)の特定につながる: モジュール名が判明すると、攻撃者は「rsync://IPアドレス/secret_data/」に対して、ブルートフォース攻撃(総当たり)や、認証の隙を突いたファイルの不正ダウンロードを試みやすくなります。

  2. システム構成の情報漏洩: モジュール名やそれに添えられたコメントから、「このサーバーはバックアップサーバーだな」「ここに社外秘データがあるな」といった内部のシステム構造が筒抜けになってしまいます。

🛠️ 対策:list = false を設定ファイルに追記する

このモジュール名の「大公開仕様」を止め、外部からの着信に対して「何も一覧表示させない(隠蔽する)」ようにするには、rsyncdの設定ファイル(通常は /etc/rsyncd.conf)を1行修正するだけでOKです。

設定手順

  1. /etc/rsyncd.conf をテキストエディタで開きます。

  2. 全体(グローバルセクション)、または隠したい特定のモジュールセクション内に list = false を追記します。

Ini, TOML

# /etc/rsyncd.conf の例

[secret_data]
    path = /data/secret
    comment = Confidential Data
    read only = true
    # 💡 ココを追記!外部からの非対話一覧表示から隠す
    list = false
  1. 設定を保存後、rsyncdサービスを再起動します。

    Bash

    $ sudo systemctl restart rsyncd
    

対策後の挙動

この設定を行った後に、先ほどの確認コマンド(rsync rsync://[IPアドレス]/)を外部から叩いても、何も表示されなくなります(空の結果が返る)。

もちろん、正しいモジュール名を知っている正規のクライアント(例:rsync rsync://IPアドレス/secret_data)からは、通常通り同期やアクセスが可能です。

📝 まとめ:インフラ構築時は「list = false」をお忘れなく!

rsyncdの仕様は「デフォルト=親切(使いやすいように一覧を出す)」になっているため、構築時に明示的に閉じないとセキュリティリスクになります。

インターネットに面しているサーバーはもちろん、社内ローカルネットワーク環境であっても、不要な情報は隠しておくのがセキュリティの鉄則(最小特権・情報の最小化)です。

rsyncdを構築する際は、設定ファイルに必ず list = false を入れる、そして合わせて hosts allow によるIP制限や認証(auth users)を設定する、という一連の流れをセットで覚えておきましょう!

タイトルとURLをコピーしました