最近の更新 | |
---|---|
ドライランのありがたみを改めて知る
| 2024/04/04 |
伊豆半島
| 2024/03/31 |
お出かけチェックリスト
| 2024/03/29 |
Ruby
| 2024/03/27 |
Kubernetes
| 2024/03/22 |
音楽データをDisplayAudioで聞く
| 2024/03/09 |
Redmine
| 2024/02/05 |
git
| 2024/02/02 |
経済
| 2024/01/08 |
どうする家康
| 2023/12/17 |
MX-Linux
| 2023/11/06 |
國體関連学-休学のご連絡
| 2023/08/13 |
Debian
| 2023/08/02 |
CentOS
| 2023/06/13 |
Dell-XPS13
| 2023/05/23 |
ベルト
| 2023/05/18 |
SourceForge
| 2023/04/17 |
確定申告
| 2023/02/19 |
さらば「まぐまぐ」
| 2023/01/09 |
風猷縄学
| 2022/11/23 |
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 という節にその方法が書かれている。
同一ホストからは任意のルート権限によるコマンドが実行できてしまうので、 自由度が高すぎる。 まあ、そのホストの管理者に秘密鍵を盗まれない限りは大丈夫なのだが…。