web-dev-qa-db-ja.com

rsync、ポート873、およびNAS

NASが提供する「バックアップステーション」を使用して、Ubuntu 16.10を実行しているPCに、NAS(QNAP TS-469 Pro))からバックアップをセットアップしようとしています。

NAS=にsshして次のコマンドを実行すると、rsyncが機能します。

touch file.txt                             # Create "file.txt" on the QNAP 
rsync file.txt username@ipaddress:~        # Backup "file.txt" on the backup PC

ただし、NAS(ブラウザで)のGUIからバックアップを設定すると、エラーが発生する

無効なポート番号またはサービスが無効になっています

私はポート873についていくつか読んだり、rsyncデーモンを実行したりしましたが、これらはすべて私には非常に不明確です。

「バックアップステーション」でエラーが発生するのに、手動でrsyncを実行しても動作するのはなぜですか?もちろん、最終的には自動バックアップを作成することに興味があります。

1
anderstood

Rsyncは2つの異なるモードで動作できます。

  • SSH経由:SSHトンネル内のRsync接続(制御とデータ転送の両方)(基本的にパイプを使用)。 SSHアクセスの遍在性とそのセキュリティのため、これは多くの場合、推奨されるアプローチです。ただし、本当に透過的で自動化される(パスワードは不要)には、RSA認証をセットアップする必要がありました。さらに、すべてのデータはSSHによって暗号化されるため、他のアプローチよりも遅くなる可能性があります。
  • デーモン(またはサービス)モード経由:リモートシステムでは、Rsyncはデーモン/サービスとして実行され、ポートTCP 873でリッスンします。 。このモードには暗号化機能が組み込まれていないため、SSHトンネルより高速で安全性が劣ります。これは、QNAPがローカルおよびリモートのバックアップに使用するモードです。 QNAPがPCをバックアップターゲットとして使用できるようにする(つまり、PCでNASをバックアップする)には、PCでRsyncサービスを有効にする必要があります。難しくはありませんが、単純なSSHトンネルよりも複雑です。 here など、ネットに関する詳細情報を確認できます。
2
shodanshok

おそらくrsync over rsyncrsync over ssh混乱しています。

Rsync over SSH(ssh設定を使用)

rsync -av file.txt username@ipaddress:~

このメソッドはSSHチャネルを通過し、暗号化されます。

Rsync over Rsync標準のrsyncプロトコルを使用

rsync -av file.txt ipaddress::myhome/.

後者では、rsyncd.confを設定し、rsyncをデーモンとして開始したと想定しています。デーモンとして、すべての認証/セキュリティはrsyncd.confで定義され、これは暗号化を使用しません。

違いを見つける簡単な方法は、アドレスの後に2つのコロンを付け、2つのコロンの後に共有名を付けることです。

これは本当にシンプルで、rsyncd.confのdangerousの例です(rootとアクセス権は問題ではないため、単純です。chrootではなくrootとして実行しているため、危険です)。

uid = root
gid = root
use chroot = no
max connections = 64
lock file = /var/tmp/rsyncd.lock
syslog facility = local5
pid file = /var/tmp/rsyncd.pid 
strict modes = false
hosts allow = 192.168.120.2
timeout = 60
dont compress = *.xz *.gz *.tgz *.Zip *.rpm *.bz2 *.7z *.rar *.jp* *.gif *.png *.avi *.mp* *.wmv *.asf *.flv *.m4v *.mkv *.mov *.ogm *.rm *.3g*
#refuse options = checksum delete
refuse options = delete
#
[myhome]
list = false
comment = "myhome"
path = /home/myself/mydir
read only = no

そしてここに私が言ったデーモンを始めています:

#!/bin/bash
set -o posix
set -u
# keep nagios happy
renice 19 -p $$ > /dev/null 2>&1
ionice -c3 -p $$ > /dev/null 2>&1
rsync --daemon --ipv4 --address=192.168.120.1 --config=/home/myhome/rsyncd.conf --log-file=/dev/shm/rsync.log
2
Aaron