| 最近の更新 | |
|---|---|
| 夢
| 2025/10/21 |
| お出かけチェックリスト
| 2025/08/30 |
| 韓国
| 2025/08/18 |
| 音楽データをDisplayAudioで聞く
| 2025/08/18 |
| 飛行機はなぜ飛ぶか
| 2025/08/18 |
| 養老孟司
| 2025/08/18 |
| 駅探(3646)
| 2025/08/18 |
| 騙す方が悪いのか・騙される方が悪いのか?
| 2025/08/18 |
| 高麗神社
| 2025/08/18 |
| 鴨川シーワールド
| 2025/08/18 |
| 黒岩一美
| 2025/08/18 |
| 網野善彦
| 2025/08/18 |
| 縄文聖地巡礼
| 2025/08/18 |
| 老荘
| 2025/08/18 |
| 聖方位
| 2025/08/18 |
| 自分のためにやるからこそ、それがチームのためになる
| 2025/08/18 |
| 自転車
| 2025/08/18 |
| 自転車のライトに泣く
| 2025/08/18 |
| 落合史観の用語補足
| 2025/08/18 |
| 落合莞爾
| 2025/08/18 |
rsync を使って家サーバのバックアップを行っている。
+-----------+ push +----------+ | bkpマシン | <--> | 家サーバ | +-----------+ pull +----------+
従来、sshd の設定を 'PermitRootLogin: yes' とし、かつ IPで制約を付けた上でルートパスワード無しで行っていたが、 これではセキュリティが弱いと思っていたので、 指定コマンドのみを許すオプションを使って
ルート権限でパスワード無しで、バックアップのみリモートから実行可能
とすることにする。 けっこう手間だったので、記録しておく。 結論から言うと、
PermitRootLogin forced-commands-only + rsyncd
という組み合わせで行くことにした。その他の選択肢をなぜ止めたのかについても 記す。
(2013/03/06 追記) この場合、バックアップ先 rsyncd 側マシンの /etc/ssh/sshd_config の UsePAM は yes である必要がある。
sshd には特定のコマンドのみ許可するオプション
PermitRootLogin forced-commands-only
がある。ググってみても、この方式 + rsync でバックアップする、 という記事が多かった (一番参考になったのは http://www2s.biglobe.ne.jp/~nuts/labo/inti/cron-rsync-ssh-nodaemon.html )。
しかし、実際やってみると以下の制限があることに気づく:
Ubuntu-10.04 の rsync 3.0.7 では、以下となった: rsync --server --sender -logDtprze.iLsf . /home
ということでこの案は止めた。
rsync の daemon モードを調べてみると、今回の目的には コマンドは以下の1つで済むようだ:
rsync --server --daemon .
他の引数(SRC等)は、自由にクライアントから指定できる。
ただし、--exclude オプションで渡したパスは以下の用に異なっている:
| remote shell モード: | ルートからの相対パス(var/, etc/, home/ 等) |
| daemon モード: | モジュール名で指定した path からの相対パス |
そこで、従来、backup3.conf で指定した exclude は /etc/rsyncd.conf で定義することとする。
なお、daemon モードと言っても、常時 rsyncd を走らせる必要はない。 rsync(1) の USING RSYNC-DAEMON FEATURES VIA A REMOTE-SHELL CONNECTION という節にその方法が書かれている。
同一ホストからは任意のルート権限によるコマンドが実行できてしまうので、 自由度が高すぎる。 まあ、そのホストの管理者に秘密鍵を盗まれない限りは大丈夫なのだが…。