以服务模式运行「rsync」(LAUNCHING THE RSYNC DAEMON)
以服务模式启动rsync是通过在rsync启动时指定–daemon选项。
如果要使用chroot、绑定1024以下的端口号、设置文件的所有权,则rsync守护进程必须以root权限运行。否则的话,只需要有读写相应的数据、日志、锁定文件的权限就可以了。
可以使用inetd来运行rsync,也可以以独立守护进程来运行rsync,或者通过远程shell来访问rsync。如果以守护进程的方式启动rsync,只需要使用”rsync –daemon”命令。
当通过inetd来运行rsync时
首先,需要在/etc/services中配置如下行:
然后,需要在/etc/inetd.conf配置如下行:
最后,向inetd发送HUP信号来告诉inetd重新读取配置文件。
注意:你不应该向rsync守护进程发送HUP信号来强制rsync重新读取rsyncd.conf配置文件。该文件在每个客户端连接中会重新读取。
仅用于全局参数
文件中的第一个参数([module]头之前)是全局参数。 Rsync还允许使用“[global]”模块名称来指示一个或多个全局参数节的开始(global必须小写)。
您也可以在配置文件的全局部分包含任何模块参数,在这种情况下,提供的值将覆盖该参数的默认值。
您可以在参数值中使用对环境变量的引用。字符串参数将尽可能延迟%VAR%引用(当在程序中使用该字符串时),从而允许在rsync连接时使用设置的变量,例如RSYNC_USER_NAME。从配置文件读取时,非字符串参数(如真/假设置)会被展开。如果环境中不存在变量,或者一系列字符不是有效的引用(例如未配对的百分号),则原始字符将保持不变。这有助于向后兼容性和安全性(例如,将不存在的%VAR%扩展为路径中的空字符串可能会导致非常不安全的路径)。将%插入值的最安全方法是使用%%。
motd file
该选项允许你指定一个“”message of the day”“来向每个连接上的客户端展示。类似于Linux中的/etc/motd的功能。
默认值:无默认值。
通常是一些站点信息或者一些其他内容。可以在命令行选项中使用–dparam=motdfile=FILE来覆盖该选项的设置。
pid file
该参数告诉rsync守护进程将PID写入指定的文件中。如果文件已经存在,rsync守护进程将终止,而不是覆盖文件。
可以在命令行选项中使用–dparam=pidfile=FILE来覆盖该选项的设置。
port
通过指定该值来覆盖rsync守护进程监听的默认端口号。
默认值:873
如果守护进程是由inetd运行的,那么会忽略此选项的配置。
可以在命令行选项中使用–port来覆盖该选项的设置。
address
通过指定该值来覆盖rsync守护进程监听的默认IP地址。
如果守护进程是由inetd运行的,那么会忽略此选项的配置。
可以在命令行选项中使用–address来覆盖该选项的设置。
socket options
这个参数可以为喜欢最大限度地调整系统的人们提供无尽的乐趣。 您可以设置各种套接字选项,这可能会使传输更快(或更慢!)。 请阅读setsockopt()系统调用的手册页,以获取有关可能设置的一些选项的详细信息。 默认情况下,不设置特殊的套接字选项。
这些设置也可以通过–sockopts命令行选项指定。
listen backlog
当守护程序侦听连接时,您可以覆盖默认的backlog值。
默认值:5
模块参数(MODULE PARAMETERS)
After the global parameters you should define a number of modules, each module
exports a directory tree as a symbolic name. Modules are exported by specifying a
module name in square brackets [module] followed by the parameters for that module.
The module name cannot contain a slash or a closing square bracket. If the name con‐
tains whitespace, each internal sequence of whitespace will be changed into a single
space, while leading or trailing whitespace will be discarded. Also, the name cannot
be “global” as that exact name indicates that global parameters follow (see above).
As with GLOBAL PARAMETERS, you may use references to environment variables in the
values of parameters. See the GLOBAL PARAMETERS section for more details.
comment
module name when clients obtain a list of available modules. The default is no
comment.
path
This parameter specifies the directory in the daemon’s filesystem to make
rsyncd.conf.
the variable name with percent signs. You can even reference a variable that
is set by rsync when the user connects. For example, this would use the
authorizing user’s name in the path:
batim (which means that you shouldn’t try to escape them). If your final
directory has a trailing space (and this is somehow not something you wish to
fix), append a trailing slash to the path to avoid losing the trailing white‐
space.
use chroot
starting the file transfer with the client. This has the advantage of extra
protection against possible implementation security holes, but it has the dis‐
advantages of requiring super-user privileges, of not being able to follow
symbolic links that are either absolute or outside of the new root path, and
of complicating the preservation of users and groups by name (see below).
“path” to indicate the point where the chroot should occur. This allows rsync
to run in a chroot with a non-“/” path for the top of the transfer hierarchy.
Doing this guards against unintended library loading (since those absolute
paths will not be inside the transfer hierarchy unless you have used an unwise
pathname), and lets you setup libraries for the chroot that are outside of the
transfer. For example, specifying “/var/rsync/./module1” will chroot to the
“/var/rsync” directory and set the inside-chroot path to “/module1”. If you
had omitted the dot-dir, the chroot would have used the whole path, and the
inside-chroot path would have been “/”.
(1) munge symlinks by default for security reasons (see “munge symlinks” for a
way to turn this off, but only if you trust your users), (2) substitute lead‐
ing slashes in absolute paths with the module’s path (so that options such as
–backup-dir, –compare-dest, etc. interpret an absolute path as rooted in the
module’s “path” dir), and (3) trim “..” path elements from args if rsync
believes they would escape the module hierarchy. The default for “use chroot”
is true, and is the safer choice (especially if the module is not read-only).
being enabled (disabling name lookups). See below for what a chroot needs in
order for name lookups to succeed.
tect them through your OS’s normal user/group or ACL settings (to prevent the
rsync module’s user from being able to change them), and then hide them from
the user’s view via “exclude” (see how in the discussion of that parameter).
At that point it will be safe to enable the mapping of users and groups by
name using this “numeric ids” daemon parameter.
chroot area that is different from your normal system. For example, you could
abbreviate the list of users and groups.
numeric ids
the current daemon module. This prevents the daemon from trying to load any
user/group-related files or libraries. This enabling makes the transfer
behave as if the client had passed the –numeric-ids command-line option. By
default, this parameter is enabled for chroot modules and disabled for
non-chroot modules. Also keep in mind that uid/gid preservation requires the
module to be running as root (see “uid”) or for “fake super” to be configured.
taken steps to ensure that the module has the necessary resources it needs to
translate names, and that it is not possible for a user to change those
resources. That includes being the code being able to call functions like
getpwuid() , getgrgid() , getpwname() , and getgrnam() ). You should test
what libraries and config files are required for your OS and get those setup
before starting to test name mapping in rsync.
munge symlinks
(non-daemon-affecting) –munge-links command-line option (using a method
described below). This should help protect your files from user trickery when
your daemon module is writable. The default is disabled when “use chroot” is
on and the inside-chroot path is “/”, otherwise it is enabled.
tricks that a user can play with uploaded symlinks to access daemon-excluded
items (if your module has any), and, if “use chroot” is off, rsync can even be
tricked into showing or changing data that is outside the module’s path (as
access-permissions allow).
string “/rsyncd-munged/”. This prevents the links from being used as long as
that directory does not exist. When this parameter is enabled, rsync will
refuse to run if that path is a directory or a symlink to a directory. When
using the “munge symlinks” parameter in a chroot area that has an
inside-chroot path of “/”, you should add “/rsyncd-munged/” to the exclude
setting for the module so that a user can’t try to create it.
module’s hierarchy are as safe as you want them to be (unless, of course, it
just copied in the whole hierarchy). If you setup an rsync daemon on a new
area or locally add symlinks, you can manually protect your symlinks from
being abused by prefixing “/rsyncd-munged/” to the start of every symlink’s
value. There is a perl script in the support directory of the source code
named “munge-symlinks” that can be used to add or remove this prefix from your
symlinks.
(or the inside-chroot path is not “/”), incoming symlinks will be modified to
drop a leading slash and to remove “..” path elements that rsync believes will
allow a symlink to escape the module’s hierarchy. There are tricky ways to
work around this, though, so you had better trust your users if you choose
this combination of parameters.
charset
are stored. If the client uses an –iconv option, the daemon will use the
value of the “charset” parameter regardless of the character set the client
actually passed. This allows the daemon to support charset conversion in a
chroot module without extra files in the chroot area, and also ensures that
name-translation is done in a consistent manner. If the “charset” parameter
is not set, the –iconv option is refused, just as if “iconv” had been speci‐
fied via “refuse options”.
“no-iconv” to the “refuse options” parameter. Keep in mind that this will
restrict access to your module to very new rsync clients.
max connections
nections you will allow. Any clients connecting when the maximum has been
reached will receive a message telling them to try later. The default is 0,
which means no limit. A negative value disables the module. See also the
“lock file” parameter.
log file
will log messages to the indicated file rather than using syslog. This is par‐
ticularly useful on systems (such as AIX) where syslog() doesn’t work for
chrooted programs. The file is opened before chroot() is called, allowing it
to be placed outside the transfer. If this value is set on a per-module basis
instead of globally, the global log will still contain any authorization fail‐
ures or config-file error messages.
syslog and output an error about the failure. (Note that the failure to open
the specified log file used to be a fatal error.)
file=FILE command-line options. The former overrides all the log-file parame‐
ters of the daemon and all module settings. The latter sets the daemon’s log
file and the default for all the modules, which still allows modules to over‐
ride the default setting.
syslog facility
ging messages from the rsync daemon. You may use any standard syslog facility
name which is defined on your system. Common names are auth, authpriv, cron,
daemon, ftp, kern, lpr, mail, news, security, syslog, user, uucp, local0,
local1, local2, local3, local4, local5, local6 and local7. The default is dae‐
mon. This setting has no effect if the “log file” setting is a non-empty
string (either set in the per-modules settings, or inherited from the global
settings).
max verbosity
that you’ll allow the daemon to generate (since the information goes into the
log file). The default is 1, which allows the client to request one level of
verbosity.
–debug logging. If the max value is 2, then no info and/or debug value that
is higher than what would be set by -vv will be honored by the daemon in its
logging. To see how high of a verbosity level you need to accept for a par‐
ticular info/debug level, refer to “rsync –info=help” and “rsync
–debug=help”. For instance, it takes max-verbosity 4 to be able to output
debug TIME2 and FLIST3.
lock file
parameter. The rsync daemon uses record locking on this file to ensure that
the max connections limit is not exceeded for the modules sharing the lock
file. The default is /var/run/rsyncd.lock.
read only
该参数用于决定是否允许客户端上传文件。如果read only = true,则客户端的上传操作将会失败;如果read only = false,则可以进行上传,但前提是守护进程端的文件权限允许它们。
默认值:true
注意:”auth users”参数可以基于每个用户覆盖该设置。
write only
该参数用于决定是否允许客户端下载文件。如果write only = true,则客户端的下载操作将会失败;如果write only = false,则可以进行下载,但前提是守护进程端的文件权限允许它们。
默认值:false
list
for a listing of available modules. In addition, if this is false, the daemon
will pretend the module does not exist when a client denied by “hosts allow”
or “hosts deny” attempts to access it. Realize that if “reverse lookup” is
disabled globally but enabled for the module, the resulting reverse lookup to
a potentially client-controlled DNS server may still reveal to the client that
it hit an existing module. The default is for modules to be listable.
uid
This parameter specifies the user name or user ID that file transfers to and
bination with the “gid” parameter this determines what file permissions are
available. The default when run by a super-user is to switch to the system’s
“nobody” user. The default for a non-super-user is to not try to change the
user. See also the “gid” parameter.
as the authorizing user. For example, if you want a rsync to run as the same
user that was received for the rsync authentication, this setup is useful:
gid = *
gid
This parameter specifies one or more group names/IDs that will be used when
ones be set as supplemental groups. You may also specify a “*” as the first
gid in the list, which will be replaced by all the normal groups for the
transfer’s user (see “uid”). The default when run by a super-user is to
switch to your OS’s “nobody” (or perhaps “nogroup”) group with no other sup‐
plementary groups. The default for a non-super-user is to not change any
group attributes (and indeed, your OS may not allow a non-super-user to try to
change their group settings).
fake super
the –fake-super command-line option had been specified. This allows the full
attributes of a file to be stored without having to have the daemon actually
running as root.
filter
The daemon has its own filter chain that determines what files it will let the
filters the client may have specified. Files excluded by the daemon filter
chain (daemon-excluded files) are treated as non-existent if the client tries
to pull them, are skipped with an error message if the client tries to push
them (triggering exit code 23), and are never deleted from the module. You
can use daemon filters to prevent clients from downloading or tampering with
private administrative files, such as files you may add to support uid/gid
name translations.
“exclude from”, and “exclude” parameters, in that order of priority. Anchored
patterns are anchored at the root of the module. To prevent access to an
entire subtree, for example, “/secret”, you must exclude everything in the
subtree; the easiest way to do this is with a triple-star pattern like
“/secret/***”.
though it is smart enough to know not to split a token at an internal space in
a rule (e.g. “- /foo – /bar” is parsed as two rules). You may specify one or
more merge-file rules using the normal syntax. Only one “filter” parameter
can apply to a given module in the config file, so put all the rules you want
in a single parameter. Note that per-directory merge-file rules do not pro‐
vide as much protection as global rules, but they can be used to make –delete
work better during a client download operation if the per-dir merge files are
included in the transfer and the client requests that they be used.
exclude
with the client –exclude option, patterns can be qualified with “- ” or “+ ”
to explicitly indicate exclude/include. Only one “exclude” parameter can
apply to a given module. See the “filter” parameter for a description of how
excluded files affect the daemon.
include
“include” parameter can apply to a given module. See the “filter” parameter
for a description of how excluded files affect the daemon.
exclude from
exclude patterns, one per line. Only one “exclude from” parameter can apply
to a given module; if you have multiple exclude-from files, you can specify
them as a merge file in the “filter” parameter. See the “filter” parameter
for a description of how excluded files affect the daemon.
include from
“include from” parameter can apply to a given module. See the “filter” param‐
eter for a description of how excluded files affect the daemon.
incoming chmod
that will affect the permissions of all incoming files (files that are being
received by the daemon). These changes happen after all other permission cal‐
culations, and this will even override destination-default and/or existing
permissions when the client does not specify –perms. See the description of
the –chmod rsync option and the chmod(1) manpage for information on the for‐
mat of this string.
outgoing chmod
that will affect the permissions of all outgoing files (files that are being
sent out from the daemon). These changes happen first, making the sent per‐
missions appear to be different than those stored in the filesystem itself.
For instance, you could disable group write permissions on the server while
having it appear to be on to the clients. See the description of the –chmod
rsync option and the chmod(1) manpage for information on the format of this
string.
auth users
rules. In its simplest form, you list the usernames that will be allowed to
connect to this module. The usernames do not need to exist on the local sys‐
tem. The rules may contain shell wildcard characters that will be matched
against the username provided by the client for authentication. If “auth
users” is set then the client will be challenged to supply a username and
password to connect to the module. A challenge response authentication proto‐
col is used for this exchange. The plain text usernames and passwords are
stored in the file specified by the “secrets file” parameter. The default is
for all users to be able to connect without a password (this is called “anony‐
mous rsync”).
prefix. When using groupname matching, the authenticating username must be a
real user on the system, or it will be assumed to be a member of no groups.
For example, specifying “@rsync” will match the authenticating user if the
named user is a member of the rsync group.
“deny” a user or a group, set the access to “ro” (read-only), or set the
access to “rw” (read/write). Setting an auth-rule-specific ro/rw setting
overrides the module’s “read only” setting.
checking stops at the first matching user or group, and that is the only auth
that is checked. For example:
that is in the group “guest” is also denied access. The user “admin” gets
access in read/write mode, but only if the admin user is not in group “guest”
(because the admin user-matching rule would never be reached if the user is in
group “guest”). Any other user who is in group “rsync” will get read-only
access. Finally, users susan, joe, and sam get the ro/rw setting of the mod‐
ule, but only if the user didn’t match an earlier group-matching rule.
words as well as per-group passwords. It also explains how a user can authen‐
ticate using their user password or (when applicable) a group password,
depending on what rule is being authenticated.
CONNECTION” in rsync(1) for information on how handle an rsyncd.conf-level
username that differs from the remote-shell-level username when using a remote
shell to connect to an rsync daemon.
secrets file
word and/or @groupname:password pairs used for authenticating this module.
This file is only consulted if the “auth users” parameter is specified. The
file is line-based and contains one name:password pair per line. Any line has
a hash (#) as the very first character on the line is considered a comment and
is skipped. The passwords can contain any characters but be warned that many
operating systems limit the length of passwords that can be typed at the
client end, so you may find that passwords longer than 8 characters don’t
work.
authorized using a matching “@groupname” rule. When that happens, the user
can be authorized via either their “username:password” line or the “@group‐
name:password” line for the group that triggered the authentication.
users, groups, or both. The use of group rules in “auth users” does not
require that you specify a group password if you do not want to use shared
passwords.
(such as /etc/rsyncd.secrets). The file must normally not be readable by
“other”; see “strict modes”. If the file is not found or is rejected, no
logins for a “user auth” module will be possible.
strict modes
will be checked. If “strict modes” is true, then the secrets file must not be
readable by any user ID other than the one that the rsync daemon is running
under. If “strict modes” is false, the check is not performed. The default
is true. This parameter was added to accommodate rsync running on the Windows
operating system.
hosts allow
against a connecting clients hostname and IP address. If none of the patterns
match then the connection is rejected.
address must match exactly.
match the masked IP address will be allowed in.
IPv4, or similar for IPv6, e.g. ffff:ffff:ffff:ffff:: instead of /64.
All IP addresses which match the masked IP address will be allowed in.
(using the same rules as normal unix filename matching), the client is
allowed in. This only works if “reverse lookup” is enabled (the
default).
given hostname is matched against the connecting IP (if “forward
lookup” is enabled, as it is by default). Any match will be allowed
in.
fe80::%link1/64
fe80::%link1/ffff:ffff:ffff:ffff::
both parameters are specified then the “hosts allow” parameter is checked
first and a match results in the client being able to connect. The “hosts
deny” parameter is then checked and a match means that the host is rejected.
If the host does not match either the “hosts allow” or the “hosts deny” pat‐
terns then it is allowed to connect.
hosts deny
against a connecting clients hostname and IP address. If the pattern matches
then the connection is rejected. See the “hosts allow” parameter for more
information.
reverse lookup
address to determine its hostname, which is used for “hosts allow”/”hosts
deny” checks and the “%h” log escape. This is enabled by default, but you may
wish to disable it to save time if you know the lookup will not return a use‐
ful result, in which case the daemon will use the name “UNDETERMINED” instead.
lookup as soon as a client connects, so disabling it for a module will not
avoid the lookup. Thus, you probably want to disable it globally and then
enable it for modules that need the information.
forward lookup
fied in an hosts allow/deny setting. By default this is enabled, allowing the
use of an explicit hostname that would not be returned by reverse DNS of the
connecting IP.
ignore errors
whether to run the delete phase of the transfer. Normally rsync skips the
–delete step if any I/O errors have occurred in order to prevent disastrous
deletion due to a temporary resource shortage or other I/O error. In some
cases this test is counter productive so you can use this parameter to turn
off this behavior.
ignore nonreadable
by the user. This is useful for public archives that may have some non-read‐
able files among the directories, and the sysadmin doesn’t want those files to
be seen at all.
transfer logging
somewhat similar to that used by ftp daemons. The daemon always logs the
transfer at the end, so if a transfer is aborted, no mention will be made in
the log file.
log format
fers when transfer logging is enabled. The format is a text string containing
embedded single-character escape sequences prefixed with a percent (%) charac‐
ter. An optional numeric field width may also be specified between the per‐
cent and the escape letter (e.g. “%-50n %8l %07p”). In addition, one or more
apostrophes may be specified prior to a numerical escape to indicate that the
numerical value should be made more human-readable. The 3 supported levels
are the same as for the –human-readable command-line option, though the
default is for human-readability to be off. Each added apostrophe increases
the level (e.g. “%”l %’b %f”).
always prefixed when using the “log file” parameter. (A perl script that will
summarize this default log format is included in the rsync source code distri‐
bution in the “support” subdirectory: rsyncstats.)
–itemize-changes option in the rsync manpage.
sions. For instance, deleted files were only output as verbose messages prior
to rsync 2.6.4.
timeout
this module. Using this parameter you can ensure that rsync won’t wait on a
dead client forever. The timeout is specified in seconds. A value of zero
means no timeout and is the default. A good choice for anonymous rsync daemons
may be 600 (giving a 10 minute timeout).
refuse options
line options that will be refused by your rsync daemon. You may specify the
full option name, its one-letter abbreviation, or a wild-card string that
matches multiple options. For example, this would refuse –checksum (-c) and
all the various delete options:
–delete, and implied options are refused just like explicit options. As an
additional safety feature, the refusal of “delete” also refuses
remove-source-files when the daemon is the sender; if you want the latter
without the former, instead refuse “delete-*” — that refuses all the delete
modes without affecting –remove-source-files.
prevent all compression when serving files, you can use “dont compress = *”
(see below) instead of “refuse options = compress” to avoid returning an error
to a client that requests compression.
dont compress
should not be compressed when pulling files from the daemon (no analogous
parameter exists to govern the pushing of files to a daemon). Compression is
expensive in terms of CPU usage, so it is usually good to not try to compress
files that won’t compress well, such as already compressed files.
wildcard patterns. Any source filename matching one of the patterns will not
be compressed during transfer.
suffixes that are not compressed by default. Specifying a value for the “dont
compress” parameter changes the default when the daemon is the sender.
pre-xfer exec, post-xfer exec
pre-xfer exec command fails, the transfer is aborted before it begins. Any
output from the script on stdout (up to several KB) will be displayed to the
user when aborting, but is NOT displayed if the script returns success. Any
output from the script on stderr goes to the daemon’s stderr, which is typi‐
cally discarded (though see –no-detatch option for a way to see the stderr
output, which can assist with debugging).
the pre-xfer or the post-xfer environment:
request can be something like “mod/path1 mod/path2”, etc.
that were used in RSYNC_ARG1, and so on. There will be a value of “.”
indicating that the options are done and the path args are beginning —
these contain similar information to RSYNC_REQUEST, but with values
separated and the module name stripped off.
server generated, or a -1 if rsync failed to exit properly. Note that
an error that occurs on the client side does not currently get sent to
the server side, so this is not the final exit status for the whole
transfer.
run using the permissions of the user that started the daemon (not the mod‐
ule’s uid/gid setting) without any chroot restrictions.
配置指令(CONFIG DIRECTIVES)
There are currently two config directives available that allow a config file to
incorporate the contents of other files: &include and &merge. Both allow a refer‐
ence to either a file or a directory. They differ in how segregated the file’s con‐
tents are considered to be.
The &include directive treats each file as more distinct, with each one inheriting
the defaults of the parent file, starting the parameter parsing as globals/defaults,
and leaving the defaults unchanged for the parsing of the rest of the parent file.
The &merge directive, on the other hand, treats the file’s contents as if it were
simply inserted in place of the directive, and thus it can set parameters in a module
started in another file, can affect the defaults for other files, etc.
When an &include or &merge directive refers to a directory, it will read in all the
*.conf or *.inc files (respectively) that are contained inside that directory (with‐
out any recursive scanning), with the files sorted into alpha order. So, if you have
a directory named “rsyncd.d” with the files “foo.conf”, “bar.conf”, and “baz.conf”
inside it, this directive:
&include /path/rsyncd.d
would be the same as this set of directives:
&include /path/rsyncd.d/bar.conf
&include /path/rsyncd.d/baz.conf
&include /path/rsyncd.d/foo.conf
except that it adjusts as files are added and removed from the directory.
The advantage of the &include directive is that you can define one or more modules in
a separate file without worrying about unintended side-effects between the self-con‐
tained module files.
The advantage of the &merge directive is that you can load config snippets that can
be included into multiple module definitions, and you can also set global values that
will affect connections (such as motd file), or globals that will affect other
include files.
For example, this is a useful /etc/rsyncd.conf file:
port = 873
log file = /var/log/rsync.log
pid file = /var/lock/rsync.lock
&merge /etc/rsyncd.d
&include /etc/rsyncd.d
This would merge any /etc/rsyncd.d/*.inc files (for global values that should stay in
effect), and then include any /etc/rsyncd.d/*.conf files (defining modules without
any global-value cross-talk).
认证强度(AUTHENTICATION STRENGTH)
The authentication protocol used in rsync is a 128 bit MD4 based challenge response
system. This is fairly weak protection, though (with at least one brute-force
hash-finding algorithm publicly available), so if you want really top-quality secu‐
rity, then I recommend that you run rsync over ssh. (Yes, a future version of rsync
will switch over to a stronger hashing method.)
Also note that the rsync daemon protocol does not currently provide any encryption of
the data that is transferred over the connection. Only authentication is provided.
Use ssh as the transport if you want encryption.
Future versions of rsync may support SSL for better authentication and encryption,
but that is still being investigated.
参考文献
man 5 rsyncd.conf, version 3.1.2-2