2つのサーバー間でファイルを自動的に安全に転送します。

2つのサーバー間でファイルを自動的に安全に転送します。

問題は、セキュリティの面で最善の方法でバックアップをサーバーAからサーバーBに自動的に転送する方法です。

これが私の考えです:

  • 認証サーバーA公開鍵アクセスサーバーB
  • バックアップ用にのみサーバーBにユーザーを作成する
  • サーバーAでssh-agentを実行して再起動し、手動でパスワードを入力してください。
  • scp を使用して、サーバー A からサーバー B にファイルを自動的にコピーします。

ただし、悪意のある人がサーバーAにアクセスできる場合は、デフォルトでサーバーBにアクセスする可能性があります。では、サーバーBユーザーを制限する必要がありますか?どうすればいいですか、これはネットワーク経由でフルバックアップを実行する最良の方法ですか?

挨拶

答え1

  • サーバーAはサーバーBに暗黙的にアクセスできず、サーバーBはサーバーAsshに暗黙的にアクセスできません。sshパスワードが異なります。証明書ベースのログインはありません。信じられない。
  • rsyncバックアップへの読み取り専用アクセスを提供し、サーバーBからのみアクセスできるようにサーバーAにデーモンとして設定します。を通してではなくssh直接的です。
  • rsyncサーバーBにサーバーAのバックアップを定期的にコピーさせます。 (rsync経由せずに転送プロトコルをssh使用する)rsync
  • VPNなどを使用して、サーバーAとサーバーB間のトラフィックをstunnel保護します。rsync

答え2

あなたはほとんどそれを持っています。サーバーBのユーザーは、/bin/falseサーバーAの対話型ログインを無効にするシェルとして提供する必要があります(サーバーBのファイルは引き続き取得または削除できます)。

編集する:

  • /bin/falseコピーを禁止するシェルとして使用
  • また使用中です/usr/sbin/nologin(そのアカウントは現在利用できません。)

より複雑なソリューションにはvsftp(ではないftps)が含まれますが、これにはSSL証明書が必要です。

答え3

cronjobコピーファイルを使用することをお勧めしますscp

backupToServer.shバックアップするファイルをパッケージ化してサーバーに配置するシェルスクリプトを作成しますscp /path/to/backup/tar user@server:/path/where/backup/is/stored。使用SSHキー

dateまたは、同様のツールを使用してバックアップ名を正しく指定できます。

crontab -enewを追加したら、時間cronjob設定を見てください。crontab些細ですが、一見すると変に見えます。

関連情報