即使我的非特权用户受到威胁,我也希望 root 帐户安全。
在 Ubuntu 上,默认情况下您只能出于“安全原因”使用 sudo。但是,我不确定它是否比仅在文本模式控制台上使用登录更安全。如果攻击者可以以我的普通用户身份运行代码,那么可能会出错的事情太多了。例如添加别名、向我的 PATH 添加东西、设置 LD_PRELOAD 和 X11 键盘记录器等等。我能看到的唯一优势是超时,所以我永远不会忘记注销。
我对 su 也有同样的疑问,但它甚至没有时间限制。某些操作(尤其是 IO 重定向)对 su 更方便,但在安全方面这似乎更糟。
在文本模式控制台上登录似乎是最安全的。由于它是由 init 启动的,如果攻击者可以控制 PATH 或 LD_PRELOAD,那么他已经是 root。按键事件无法被 X 上运行的程序拦截。我不知道 X 上运行的程序是否可以拦截 [ctrl]+[alt]+[f1](并打开一个看起来像控制台的全屏窗口)或它就像 Windows 上的 [ctrl]+[alt]+[del] 一样安全。除此之外,我看到的唯一问题是没有超时。
所以我错过了什么吗?为什么 Ubuntu 的人决定只允许 sudo?我可以做些什么来提高任何方法的安全性?
SSH呢?传统上 root 不能通过 SSH 登录。但是使用上述逻辑不是最安全的做法:
我想从 shell 脚本(更具体地说是 .zshrc)中检测它是否是通过 SSH 控制的。我尝试了 HOST 变量,但它始终是运行 shell 的计算机的名称。我可以访问来自 SSH 会话的主机名吗?比较两者将解决我的问题。
每次登录时都会出现一条消息,说明上次登录时间和主机:
Last login: Fri Mar 18 23:07:28 CET 2011 from max on pts/1
Last login: Fri Mar 18 23:11:56 2011 from max
Run Code Online (Sandbox Code Playgroud)
这意味着服务器具有此信息。
前段时间我家里有一个RAID5系统。4 个磁盘中的一个出现故障,但在移除并放回后似乎没问题,所以我开始重新同步。当它完成时,我惊恐地意识到 4 个磁盘中有 3 个出现故障。但是我不相信这是可能的。磁盘上有多个分区,每个分区是不同 RAID 阵列的一部分。
md0 和 md2 报告所有磁盘已启动,而 md1 报告 3 个失败(sdb2、sdc2、sdd2)。我的理解是,当硬盘驱动器出现故障时,所有分区都应该丢失,而不仅仅是中间的分区。
那时我关闭了计算机并拔掉了驱动器。从那时起,我使用那台计算机和一个较小的新磁盘。
有没有希望恢复数据?我能以某种方式说服 mdadm 我的磁盘实际上在工作吗?唯一可能真正有问题的磁盘是 sdc,但其他阵列也报告了该磁盘。
更新
我终于有机会连接旧磁盘并从 SystemRescueCd 启动这台机器。以上都是凭记忆写的。现在我有一些硬数据。这是输出mdadm --examine /dev/sd*2
/dev/sda2:
Magic : a92b4efc
Version : 0.90.00
UUID : 53eb7711:5b290125:db4a62ac:7770c5ea
Creation Time : Sun May 30 21:48:55 2010
Raid Level : raid5
Used Dev Size : 625064960 (596.11 …Run Code Online (Sandbox Code Playgroud) 我必须连接到 WPA2 Enterprise 网络,该网络仅在我不验证证书时才有效。我不想这样做,因为这样任何人都可以看到 MSCHAPv2 消息。
解决此问题的第一步是查看 AP 提供的证书,然后将 wpa_supplicant 配置为仅信任该证书。但我不知道如何获得证书。wpa_cli“status”命令不显示它,也不在任何日志中。
我也很好奇使用了哪些 SSL/TLS 密码套件。是否可以手动连接,也许使用 openssl s_client?
我想收集有关谁在使用计算机以及使用时间的统计信息。我可以使用该users命令查看谁已登录,但我想知道谁在当前活动的 VT 上。我不关心通过 SSH 登录或在锁定会话中运行下载的人。我只关心实际坐在机器前面的是谁。
我需要有关 X 和控制台会话的信息。
获取上次活动的时间(移动鼠标等)也很有用,但我可以没有它。
我怎样才能做到这一点?