Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

rsync で CCLUB サーババックアップ

っていうか分かりにくすぎやしませんか? root で rsync やりとりしたい(permission 保存の問題など)& cron で動かしたい & ssh2 じゃないとダメ、っていうよくありそうな話なのに……

  • root で空のパスフレーズの鍵を作ってホスト間で交換し rsync -e ssh で使う
    • いちばん分かりやすいけど鍵が漏れたら何でもできちゃう証拠なの! ヤバい!
  • 空のパスフレーズ + コマンド指定の鍵
    • キーワード は forced-commands-only
    • 鍵が漏れても結構大丈夫、安全そうに見える
    • rsync -e ssh で使われる鍵にコマンドが指定されているってどういう意味なの? rsync で認証にその鍵を使ったら、同期じゃなくて鍵に指定されたコマンドが実行されるって意味に見えるよ
    • もしくは、作った鍵を使って ssh 接続するけどそこから rsync で逆向きに(接続先から接続元へ)接続するときの認証ってどうするの?
    • これらの問題はバックアップすべきデータを「送り出し」にするときも「吸い出し」にするときも同じ
  • ホストベース認証+鍵
    • 空パスの鍵だけを使うよりも安全に見える(鍵だけ縛り or 鍵と FDQN 縛り)
    • コマンド指定ができないっぽい
    • root に限らず全ユーザについてホストベース認証がなされてしまう
  • rsyncd を立てる
    • rsyncd specific な認証方法があって、これは分かりやすい。DSL (Domain Specific Language) みたいなもんか。
    • 認証方法が rsyncd specific だからパスワードが漏れてもひどいことにはならない?(なるかも)
    • 経路が暗号化されない
    • rsyncd に穴が見つかったときに危険(だけどこれは他のサービスについても言えること)
    • 溜まり場は一部のホストに tcp/22 を通してるだけ。しかもファイアウォールの設定変更がちょっと面倒
      • これは w3m からでもできることが分かったので解決

UNIX で調べものをすると歴史的背景やら基礎概念やら周辺技術やら全部知ってないとならない、ってのがよくあるように思うんですが(フォントの設定とか)、そこまで調べさすな!と思うことがよくあったり。助けて!