edo*_*oze 7 server permissions security backup networking
我有许多连接的系统,并且正在考虑为增量备份和完整备份设置单独的服务器。
为了防止在某个系统/备份遭到破坏时丢失所有系统/备份,我正在考虑将其作为一种投递箱式事务,在备份推送到的每个系统上安装一个只写共享。
我打算,如果某些东西受到攻击,备份可以通过新创建的只读共享暴露给或推送到受影响的系统,然后从那里恢复 - 但系统本身无法访问。
我们的一个竞争对手最近失去了他们的全部业务,因为即使他们的备份也是连接的——所以他们没有什么可以恢复的。
我还将以适当的时间间隔下载完整的备份。
请戳破我的计划。
谢谢。
Rin*_*ind 19
请戳破我的计划。
当然。仅删除 read 并不能阻止您遇到问题。任何修改尝试都需要写权限。然后攻击者仍然可以将文件写为空(他只需要知道文件在哪里)。
除了附加新数据之外,为什么不锁定该磁盘上有关备份的任何内容?
可能的设置:
/backups/20160911/backup.tar.gz
/backups/20160912/backup.tar.gz
/backups/20160913/backup.tar.gz
Run Code Online (Sandbox Code Playgroud)
创建一个脚本
chattr -R +a /backups/
chattr -R +i /backups/*.tar.gz
Run Code Online (Sandbox Code Playgroud)
+i意思是“不可变的”;对这些文件或目录无能为力。甚至 root 也不能改变它(包括删除、编辑、写入、添加新文件。任何东西)。-i在 root 可以对这些文件执行某些操作之前,甚至 root 也需要删除它(使用)。
+a意思是“附加”;-i与 1 个例外相同的规则。除了添加文件或目录外,任何人都不得对文件或目录进行任何更改。再说一遍:即使是 root 也需要删除它(使用-a),然后才能更改文件或目录,而更改不会向其附加内容。
(以上可能需要一些调整。1 个大备份文件可能不是最好的方法。带有子目录和文件的东西可能会更好。所以这需要对这两行进行调整:例如,仅在旧目录上执行此操作并执行备份完成后手动“今天”。然后变成
chattr -R +i /backups/{not_today}
chattr -R +a /backups/{today}
Run Code Online (Sandbox Code Playgroud)
每隔一段时间运行此脚本,以便在任何时候有人更改其中的某些内容时,/backups/都会重置所有备份的权限。
目录和文件可以添加到“今天”,备份完成后,您可以手动添加 +i。创建一个好的管理员密码,除了管理员之外没有人会接触这些文件。曾经。
顺便说一句:还可以考虑在线存储备份。我们在多个 google 实例中有我们的备份(我们在 3 个大洲有 3 个实时系统,它们共享数据,每个系统在另一个大陆上创建一个备用实例,每个系统共享一个备份系统)。
删除read您想要不可读的文件或目录的权限。
权限是:
u - Owner
g - group
o - others
Run Code Online (Sandbox Code Playgroud)
关闭每个人的读取权限,并为您希望拥有写入权限的每个人关闭权限。
$ chmod -R ugo-r [path]
Run Code Online (Sandbox Code Playgroud)
目录 [path] 及其所有文件和子目录都将具有此属性。在这种情况下-r(无读访问权限)。