我有一台运行 Ubuntu 20.04 Server 的计算机。我大约在 1 年前在 Digital Ocean 购买了服务器,每个月我都会尝试提高其安全性,而且进展顺利。但对于用户组织,我总是心存疑虑。
这是一个个人服务器,因此我实际上想提高我的理解能力,以便未来可能涉及更多用户的项目。
我的根目录权限是:
0 lrwxrwxrwx 1 root root 7 May 14 2020 bin -> usr/bin
4 drwxr-xr-x 4 root root 4096 Feb 10 06:59 boot
0 drwxr-xr-x 16 root root 3820 Oct 12 02:34 dev
12 drwxr-xr-x 110 root root 12288 Feb 16 18:11 etc
4 drwxr-xr-x 4 root root 4096 Apr 3 2021 home
0 lrwxrwxrwx 1 root root 7 May 14 2020 lib -> usr/lib
0 lrwxrwxrwx 1 root root 9 May 14 2020 lib32 -> usr/lib32
0 lrwxrwxrwx 1 root root 9 May 14 2020 lib64 -> usr/lib64
0 lrwxrwxrwx 1 root root 10 May 14 2020 libx32 -> usr/libx32
16 drwx------ 2 root root 16384 May 14 2020 lost+found
4 drwxr-xr-x 2 root root 4096 May 14 2020 media
4 drwxr-xr-x 2 root root 4096 May 14 2020 mnt
4 drwxr-xr-x 3 root root 4096 Dec 18 13:48 opt
0 dr-xr-xr-x 197 root root 0 Jun 12 2021 proc
4 drwx------ 10 root root 4096 Feb 6 19:31 root
0 drwxr-xr-x 31 root root 1040 Feb 16 13:04 run
0 lrwxrwxrwx 1 root root 8 May 14 2020 sbin -> usr/sbin
4 drwxr-xr-x 8 root root 4096 Feb 16 17:56 snap
4 drwxr-xr-x 3 root root 4096 Apr 3 2021 srv
0 dr-xr-xr-x 13 root root 0 Jun 12 2021 sys
4 drwxrwxrwt 20 root root 4096 Feb 16 18:39 tmp
4 drwxr-xr-x 15 root root 4096 Aug 6 2021 usr
4 drwxr-xr-x 16 root root 4096 Dec 4 18:50 var
你可以看到有多少文件具有others groups
执行权限,但这真的有必要吗?x
权限意味着任何用户都可以做
cd /boot
或者类似的东西。我知道他们不能编辑或删除那里的任何内容,但如果他们可以进入目录并写入ls
,那么随机用户就可以获得我可能不希望用户获得的信息。有一次,一个比我更了解 Linux 的朋友告诉我,如果你想弄乱 Ubuntu 服务器,你可以通过更改文件的权限来实现。所以我不想测试它。
我的目标是让每个用户都无法使用额外的权力(输入/dev
或/boot
)做任何事情,只能做用户的事情。
但我担心更改权限会破坏某些东西。
我的想法是:我是服务器所有者,我可以获得 root 权限,所以我的第一步是:
在根目录中我会这样做sudo chown root:power
,其中power
有一个组,我可以在里面放一些可以做比平常更多事情的用户,然后chmod 750
在所有(例如较少的临时)中
但是我听说如果你做这样的事情,例如www-data
无法管理 apache 服务或改变某些东西。
因此我必须将power
用户添加到组中www-data
,好的,然后它就可以管理其内容,但我认为还有很多其他系统用户/组需要类似的调整,而我目前还不知道。
我希望你能大致了解我想要做什么,以及我的目标是:修改服务器以更好地管理用户,roles
例如通过限制。但我有点不知道如何开始。
谢谢大家。
答案1
不。
系统文件的权限和所有权已经设置为安全的。
通过更改系统文件的所有权和权限,你唯一能做的事情就是破坏你的系统。
这是一个非常危险的思维过程,特别是如果你不熟悉使用 Linux。如果你知道自己在做什么,那么修修补补通常没问题。但是,费尽心思去改进没有问题的东西通常不是一个好主意。
Ubuntu 的开发人员花了数十年时间对软件进行微调和改进,以使其更清洁、更安全。
如果你认为你已经找到了使系统更好或更安全的方法,请考虑为 Ubuntu 的发展做出贡献通过参与开发,许多其他人会在您提议的更改成为操作系统的一部分之前对其进行审查和审核。
答案2
Unix 安全以及后来的 Linux 安全始终默认尽可能开放。需要关闭时就关闭,需要关闭时就开放。
这意味着如果你尝试做一些不同寻常但又不是真的很危险的事情,那么你很有可能被允许这样做。
安全专家不喜欢这种方法。他们希望尽可能地关闭,只在必要时打开。这样可以减少令人不快的意外。看来你的直觉是这样的。
在封闭系统中,你只能做自己的事情,没有别的权限。每当你想做一些超出自己能力范围的事情时,你都需要获得许可。开发人员讨厌在这样的系统中工作。
很难将像 Ubuntu 这样的老旧开放系统关闭。您会发现其中存在未记录的依赖关系,当访问关闭时,看似不相关的程序会停止运行并显示奇怪的错误消息。
所以,这是一个优先考虑的问题,对你来说,安全性和可用性哪个更重要?是比 Ubuntu 更封闭的 Unix 版本。这些是由安全专家制作的,他们付出了艰苦的努力来追踪那些未记录的依赖关系。
尽管如此,Nmath 的回答也是正确的。很多非常聪明的人都研究过 Ubuntu 的安全性,并认为它足够了。你被未知的安全漏洞攻击的几率非常低。