UNIX:控制特权访问权限

在UNIX系统上为安全性做出最重要的事情之一是限制root访问权限。但问题比谁知道root的密码更复杂。

如果您的工作涉及到保护Unix服务器的安全性,那么您需要了解并验证人们可以使用root(即超级用户)特权的各种方式。当您发现自己从别人那里继承了系统管理员角色时,尤其如此。快速检查一些问题可以帮助您确定您对安全性的看法

服务器是现实的。

谁有root访问?

如果答案是“没有人,但你”,那是一个很好的起点,但你应该定期改变root的密码。此外,您应该将其存放在一个安全的地方 - 也许是一个安全的密码工具,如KeepAss,也许是在实际的安全。我几十年前的我的老板让我写下我们在我们的大型Solaris网络上使用的根密码,并将它们放在安全的安全性上,几乎没有人可以访问。如果我被背锄过来,有人将能够将我们的服务器保持到鼻烟。

他们是怎么做到的?

即使您不知道root的密码,也可能无法忘记root访问权限,所以您不应该忘记您关闭了其他人的访问权限,因为您将root密码更改为“n01canguessme @所有!”。检查/ etc / sudoers文件以查看是否已通过它授予root权限。个人可能能够以root身份运行特定命令,或者可能能够使用命令“sudo su - ”并只是假设root的身份。当他们这样做时,当然,他们将提示他们输入密码但不是根本 - 他们自己。

他们能以根用户身份登录吗?

关于任何能够直接以root登录的人最糟糕的是,你就没有对root登录时的这些人的表现。你所知道的是,有人在星期六晚上11点之后以root登录,也许他们所做的一切 - 或者也许不是。合法用户应该自己登录,并在需要更改系统的情况下更改它们的权限时将用户切换为root。如果您有同事,那些帮助管理UNIX系统,它们只执行有限的任务,您可能只给他们必要的权限。也许他们可以添加或删除帐户或重新启动服务器,但没有其他。

要防止直接登录作为root,请将root的shell设置为/ etc / passwd文件中/ sbin / nolin。验证系统上是否存在/ sbin / nolog,因为这可能不适用于所有UNIX系统。在注销之前验证此工作。你仍然应该能够扎根。

根的UID是0

在查看谁时在UNIX系统上进行root访问权限时,请不要忘记root权限与UID相关0.如果您在系统上设置了另一个用户,那些也将UID设置为0,那么该人将拥有root他或她登录时的特权。不要被愚弄。

Justme:X:0:20​​00:简迪:/家/ JDOE:/ Bin / Bash

谁通过sudoers文件访问?

sudoers文件有许多授予访问权限的选项。它可能非常严格;例如,您可以赋予用户仅在特定系统上运行单个命令的权限。或者是非常宽松;例如,可以让一组用户切换到root用户,然后使用超级用户的权限做任何他们想做的事情。

这行代码使服务器上名为“boson”的管理组能够升级软件。

%admin boson =(root)nopasswd:/ usr / bin / apt-get更新,/ usr / bin / apt-get升级

另一方面,此行为管理员组中的每个人提供右侧以root方式运行任何命令。

%admin all =(全部)所有

要查找谁是载有轮子组,请查看/ etc / group文件,但请记住,用户可以通过其/ etc / passwd文件条目成为车轮组的成员。

#grep wheel / etc / group轮:x:10:root,jdoe,spongebob#grep:10:/ etc / passwd samq:x:1234:10:sam可直:/ home / samq:/ bin / bash

要查看wheel组是否被赋予了特殊特权(这并不少见),请查看/etc/sudoers文件。但是,如果您想知道谁能做什么,最好的实践是阅读和理解整个文件。

#grep wheel / etc / sudoers#取消注释允许集团轮中的人员运行所有命令%轮子=(全部)所有

root的密码最后发生变化?

要检查root的密码最后更改时,请从/ etc / shadow文件中拉出root的记录。

grep ^ root:/ etc / shadow root:$ 1 $ iilwuehbo $ tn9buuf4sf.l5lwto0sf10:15960:0:99999:7 :::

后第一个数字字段(密码散列)告诉你日期最后一次修改密码,但在一个格式表示日期的数量表示,自1月1日,1970年,一个Unix类Unix的事情,因为它代表了“时代”之前,电脑真的没有那么热。如果它看起来像你上面看到的,不要惊慌。做一个简单的计算。首先,使用该命令以同样的格式显示今天的日期回声$(($(日期+%s)/ 86400))).然后使用一个expr命令查看自密码上次设置以来已通过了多少天。

#grep根/ etc / shadow root:$ 1 $ r7x / .qmb $ .95hcizzjwkxbo1ttasqd0:162999:0:99999:7 :::#echo $(($(日期+%s)/ 86400))16279#expr 16279  -15960 319.

在这种情况下,距离上次设置root用户的密码已经将近一年了。即使您是唯一知道根密码的人,最好定期更改它,以防任何类型的系统泄漏使散列落入他人之手。你不希望任何人有足够的时间来看看他们可以用这些信息做什么。

谁可以从其他系统访问?

当您试图判断Unix系统的漏洞时,另一件要注意的事情是谁可以从其他系统访问。如果您正在检查的服务器信任其他系统的根用户,那么对这些服务器具有根用户访问权限的任何人都可以在您的服务器上假定根用户。查找一个名为~root/.ssh/authorized_keys的文件。那可能是/。ssh / authorized_keys或/root/.ssh/authorized_keys取决于您正在运行的Unix版本。

包起来

无论如何,不要给根用户一个简单的密码。将15个字符或以上作为经验法则。并提醒您至少每2-3个月更改密码。

加入网络世界社区有个足球雷竞技app脸谱网linkedin对自己最关心的话题发表评论。

版权所有©2014 IDG ComRaybet2munications,Inc。

SD-WAN买家指南:向供应商(和您自己)提出的关键问题