Linuxサーバー間でファイルの同期やバックアップを行う際、非常に重宝する「rsync(rsyncd)」。
デフォルトのまま運用していると、rsyncdの動作ログはすべて /var/log/messages に出力されてしまいます。しかし、ここにはシステムや他のアプリケーションのログも大量に流れ込んでくるため、ログがごちゃ混ぜになってしまい、あとから見返すのが本当に大変ですよね。
今回は、rsyncdのログ出力先を専用の独立したファイルに変更する方法を解説します!
最後に、ログを分けることで実現できる「セキュリティ強化(fail2banとの連携)」のアイデアも少しだけご紹介します。
1. ログファイル出力先の変更手順
設定の変更は、rsyncdのメイン設定ファイルである /etc/rsyncd.conf を編集するだけで完了します。
Step 1. 設定ファイルを編集する
テキストエディタで設定ファイルを開きます。
sudo vi /etc/rsyncd.conf
ファイルを開いたら、グローバルセクション(共通設定エリア)に log file の行を追記します。 具体的には、# configuration example: で始まる行と、各コンテンツセクション( [share_data] などの[XXX]で囲まれたセクション)の間のどこかに、以下のように記述してください。
# configuration example:
# 🔽 ここに追記(ログの出力先を指定)
log file = /var/log/rsyncd.log
[share_data]
path = /data/share
comment = Shared Data
※ログファイルのパスやファイル名(上記の例では /var/log/rsyncd.log)は、お使いの環境に合わせて自由に変更して構いません。
Step 2. rsyncd サービスを再起動する
設定を反映させるため、rsyncdサービスを再起動します。
sudo systemctl restart rsyncd
これで設定は完了です!これ以降、rsyncの接続ログやエラーログは、指定した専用のログファイルにだけ綺麗に出力されるようになります。
2. 💡 ログを分ける最大のメリット:セキュリティ強化(fail2ban)
「わざわざログを分けるのって、見やすくするためだけでしょ?」と思うかもしれませんが、実はセキュリティ面でも絶大なメリットがあります。
現在私は、この分けたログを活用して、サーバーの不正アクセス防御ツールである「fail2ban(フェイルツーバン)」と連携させようと画策中です。
fail2banと連携するとどうなる?
fail2banは、特定のログファイルを監視し、短時間に何度もログインに失敗している不審なIPアドレスを検出すつ、自動的にファイアウォール(iptablesやfirewalld)でそのIPを一定時間ブロック(BAN)してくれる神ツールです。
もしrsyncdのログが /var/log/messages のままだと、fail2banが他のシステムログまで余計にスキャンすることになり、サーバーに負荷がかかったり、誤検知の原因になったりします。
ログを /var/log/rsyncd.log のように独立させておけば、「rsyncdへの不正アクセス(アタック)だけをピンポイントで見つけ出し、一瞬で弾く」という強固な防御壁をスマートに構築できるようになります!
まとめ
rsyncdのログを専用ファイルに分離する手順は、設定ファイルに log file = 〇〇 を1行足して再起動するだけと、非常にシンプルです。
ログの視認性が上がるだけでなく、一歩進んだセキュリティ対策(fail2ban連携)への布石にもなりますので、rsyncサーバーを運用している方はぜひ最初に設定しておくことを強くおすすめします!
