以 root 身份使用 rsync 在服务器之间同步 /etc/letsencrypt 和 /etc/nginx 是不是一个坏主意?

以 root 身份使用 rsync 在服务器之间同步 /etc/letsencrypt 和 /etc/nginx 是不是一个坏主意?

我有两台服务器的故障转移设置,并且想要在主服务器和副本服务器之间同步 /etc/letsencrypt 和 /etc/nginx。

我计划Match Address在副本上使用仅设置PermitRootLogin yes单个 IP。

这是个坏主意吗?如果是,我该如何安全地同步这些文件?

答案1

为了避免使用 root,您可以在两台主机上创建专用的 rsync 用户(例如 rsync),并添加文件 ACL 以授予其读/写权限:

# Primary: make source files readable
setfacl -R -m u:rsync:rX,d:u:rsync:rX   /etc/letsencrypt /etc/nginx

# Replica: make target files writeable
setfacl -R -m u:rsync:rwX,d:u:rsync:rwX /etc/letsencrypt /etc/nginx

原则上这比使用 root 更好,因为 rsync 用户只能执行您授予其权限的操作,而 root 可以执行任何操作,除非您有效地限制它。

不过,您可能不得不时不时地重新应用 ACL。ACLd:的默认 () 部分应该使它们适用于新创建的文件,但根据我的经验,随着时间的推移,这种情况往往会消失。如果 rsync 作业失败,您就会知道。

相关内容