ルートなしでSSHを介してリモートシステム上のすべてのファイルを再同期するには?

ルートなしでSSHを介してリモートシステム上のすべてのファイルを再同期するには?

リモートコンピュータをバックアップするには、このコマンドがあります。問題は、すべてのファイルを読み取り、コピーするにはrootアクセス権が必要であることです。セキュリティ上の理由から、ルートを有効にせずにsudoUbuntu方式を使用しました。これを行うには、素晴らしいパイプや他のものが必要ですか?

rsync -chavzP --stats [email protected]:/ /media/backupdisk/myserverbackup/

ベストアンサー1

まず、rootアカウントを使用することをお勧めします。次のように設定すると:

  • sshd_configターゲットコンピュータの構成をPermitRootLogin without-password
  • バックアップが抽出されたコンピュータからssh-keygenSSH秘密鍵を生成するために使用します(まだSSH鍵がない場合のみ)。パスワードを設定しないでください。これに関する詳細情報が必要な場合は、Googleチュートリアルがたくさんあります。
  • /root/.ssh/id_rsa.pubバックアップコンピュータの内容を/root/.ssh/authorized_keysターゲットコンピュータの内容に追加します。
  • これで、バックアップマシンは、パスワード認証を使用せずにターゲットマシンへのルートアクセス権を持つことができます。

これにより、最終設定が非常に安全になります。


sudo特にNOPASSWD注釈で提案されているものと組み合わせて、rootアカウントを使用するよりもセキュリティ上の利点はありません。たとえば、次の提案があります。

ファイルに以下を追加します/etc/sudoersrsyncuser ALL= NOPASSWD:/usr/bin/rsync

とにかく、デフォルトでrsyncuserrootアクセスを許可します。尋ねる:

rsync@MartinvonWittich ?を使用してフルルートシェルを取得するのは簡単ですsudo。 go[m]e[through]してください。

まあ、簡単です。推奨設定では、パスワードを入力しなくてもrsyncuserルートとして実行できるようになりました。ファイルを操作する非常に強力なツールなので、ルート権限でファイルを操作できる非常に強力なツールがあります。この問題を悪用する方法を見つけるには数分しかかかりませんでした(Ubuntu 13.04でテストされており、必須ですが成功しませんでした)。rsyncrsyncrsyncuserdashbash

martin@martin ~ % sudo rsync --perms --chmod u+s /bin/dash /bin/rootdash
martin@martin ~ % rootdash
# whoami
root
# touch /etc/evil
# tail -n1 /etc/shadow
dnsmasq:*:15942:0:99999:7:::

ご覧のとおり、私はwhoami自分のアカウントをrootとして識別し、その中にファイルを作成して/etc読み取ることができるルートシェルを作成しました/etc/shadow。私の脆弱性は設定です設定値dashバイナリビットLinuxは常に所有者(この場合はroot)の権限でバイナリを実行します。

実際の根を持つことは妥当な理由のために推奨されません。 – redanimalwar 15時間前

いいえ、rootアカウントが絶対に適切な場合は、不器用に解決する理由はありません。それは別の形に過ぎません。貨物崇拝プログラミング- あなたは実際にはsudoとrootの概念を理解しておらず、どこかで読んだので、「ルートは悪く、sudoは良い」という信念を盲目的に適用しています。

一方では、それがsudo確かに作業に適したツールである状況があります。たとえば、グラフィカルLinuxデスクトップ(Ubuntuなど)でインタラクティブに作業するときに、rootアクセスが必要なまれなsudo場合に使用することをお勧めします。 Ubuntuは、sudoユーザーが常にrootアカウントにログインするのを防ぐために、rootアカウントを意図的に無効にし、デフォルトでそれを使用するように強制します。 rootとしてログインすることは、ユーザーがWebブラウザのみを使用したい場合には危険です。

一方、あなたのような場合には、自動化スクリプトにバックアップを実行するなどの操作へのルートアクセスが必要です。sudo問題を解決するためにルートアカウントを使用することは意味がないだけでなく、危険です。rsyncuser一見すると、権限のない一般アカウントのように見えます。ただし、すでに説明したように、攻撃者がすでにアクセス権を持っている場合は、完全なルートアクセス権を簡単に取得できますrsyncuser。したがって、本質的にルートアカウントのように見えない追加のルートアカウントがありましたが、これは良いことではありません。

おすすめ記事