rsync サーバー(rsyncd)構築ガイド

目次

1. rsyncサーバーとは?

rsync を デーモン(常駐サービス) として動かし、
クライアントが rsync://server/module でアクセスできるようにする仕組み。

用途:

  • 複数クライアントへの配布
  • 軽量で高速なファイル配信
  • SSHなしで rsync 転送したい場合(LAN 内に便利)

2. 必要パッケージのインストール

CentOS / RHEL

sudo yum install -y rsync

Ubuntu / Debian

sudo apt install -y rsync

インストールすると rsyncd(rsync デーモン)も利用可能になる。


3. rsyncd.conf(設定ファイル)の場所

標準パス:

/etc/rsyncd.conf

なければ自分で作成する。


4. 最小構成の rsyncd.conf(コピペOK)

まずはこれだけで動かせます。

#==============================
# 基本設定
#==============================

# rsync が待ち受けるポート
port = 873

# ログファイル
log file = /var/log/rsyncd.log

# PIDファイル
pid file = /var/run/rsyncd.pid

# クライアントが参照可能なモジュール
# "files" が公開名となる
[files]
    path = /srv/rsync/files
    read only = yes
    list = yes
    auth users = backupuser
    secrets file = /etc/rsyncd.secrets

5. 認証情報(ユーザーとパスワード)の設定

/etc/rsyncd.secrets

作成:

echo "backupuser:password123" | sudo tee /etc/rsyncd.secrets
sudo chmod 600 /etc/rsyncd.secrets

📌 600 にしないと認証が失敗するので注意!


6. ディレクトリの準備

sudo mkdir -p /srv/rsync/files
sudo chown -R nobody:nobody /srv/rsync/files

(実用途に応じて所有者を調整)


7. systemd で rsync デーモンを起動

起動

sudo systemctl enable --now rsync

状態確認

systemctl status rsync

8. クライアントから接続テスト

リスト取得

rsync rsync://server-ip/

[files] モジュールが見えること。

データ取得テスト

rsync rsync://backupuser@server-ip/files/ .

パスワード入力を省略したい場合

echo "password123" > ~/.rsync_pass
chmod 600 ~/.rsync_pass

rsync --password-file=~/.rsync_pass rsync://backupuser@server-ip/files/ .

🧩 rsyncd.conf の主な設定項目(見やすく要点だけ)

項目意味
path公開ディレクトリ
read onlyyes で読み取り専用
listモジュールを一覧表示するか
auth users認証ユーザー(複数可)
secrets fileユーザーとパスワードファイル
hosts allow許可するIP
hosts deny拒否するIP
uid / gid用いるユーザーID/グループID
max connections同時接続数
commentモジュールの説明文

🧪 便利な実務向け設定例


📌 A. クライアント制限付き

hosts allow = 192.168.1.0/24
hosts deny  = *

📌 B. 書き込み可能(バックアップ受け取り用)

read only = no

※ セキュリティ上、認証は必須


📌 C. 複数モジュールを公開する

[log]
path = /var/log/rsync
read only = yes

[data]
path = /srv/data
read only = no


📌 D. ログを細かく記録する

log file = /var/log/rsyncd.log
transfer logging = yes

🔥 rsyncd のセキュリティ注意点(重要)

❗ rsyncd の認証は暗号化されない(平文)

→ WAN 通信では SSHトンネル を必ず使う
(LAN 内専用なら OK)

❗ ポート 873 を開放すると誰でも覗ける

hosts allow や firewalld/ufw で制限必須

❗ secrets ファイルは 600 でないとエラー

❗ root 書き込み可能モジュールは危険

→ 使う場合は chroot や SELinux で制限する


🐛 トラブルシュート

症状原因対処
auth failedsecrets の権限が600でないchmod 600
モジュールが表示されないlist=nolist=yes
接続できないfirewall が 873 をブロックfirewalld/ufw を確認
読み書き不可ディレクトリの所有権不一致chown で調整
rsync デーモン起動失敗conf の書式エラー/var/log/rsyncd.log を確認

🎯 まとめ:最小構成の rsync サーバー

  1. /etc/rsyncd.conf を作る
  2. /etc/rsyncd.secrets で認証設定
  3. 公開ディレクトリ準備
  4. systemctl enable --now rsync
  5. クライアントで接続テスト

これだけで即稼働!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次