問題は、セキュリティの面で最善の方法でバックアップをサーバーAからサーバーBに自動的に転送する方法です。
これが私の考えです:
- 認証サーバーA公開鍵アクセスサーバーB
- バックアップ用にのみサーバーBにユーザーを作成する
- サーバーAでssh-agentを実行して再起動し、手動でパスワードを入力してください。
- scp を使用して、サーバー A からサーバー B にファイルを自動的にコピーします。
ただし、悪意のある人がサーバーAにアクセスできる場合は、デフォルトでサーバーBにアクセスする可能性があります。では、サーバーBユーザーを制限する必要がありますか?どうすればいいですか、これはネットワーク経由でフルバックアップを実行する最良の方法ですか?
挨拶
答え1
- サーバーAはサーバーBに暗黙的にアクセスできず、サーバーBはサーバーA
ssh
に暗黙的にアクセスできません。ssh
パスワードが異なります。証明書ベースのログインはありません。信じられない。 rsync
バックアップへの読み取り専用アクセスを提供し、サーバーBからのみアクセスできるようにサーバーAにデーモンとして設定します。を通してではなくssh
直接的です。rsync
サーバーBにサーバーAのバックアップを定期的にコピーさせます。 (rsync
経由せずに転送プロトコルをssh
使用する)rsync
- VPNなどを使用して、サーバーAとサーバーB間のトラフィックを
stunnel
保護します。rsync
答え2
あなたはほとんどそれを持っています。サーバーBのユーザーは、サーバーAの対話型ログインを無効にする/bin/false
シェルとして提供する必要があります(サーバー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 -e
newを追加したら、時間cronjob
設定を見てください。crontab
些細ですが、一見すると変に見えます。