Debian和其他Linux系统通常带有世界可读的日志/configuration/目录。 例如,在新的Debian安装中,这些文件是世界可读的:
尽pipe能够读取这些文件并不是直接的威胁,但是在所有用户都不可信的系统中,最小化系统可见性是明智的。
有没有一种Linux风格/标准的工具,以避免这种情况下,新用户可以收集有关他们正在使用的服务器的许多细节? 理想情况下,他们应该限于自己的目录。
过去我已经build立了chroot监狱,但是我正在寻找替代解决scheme或者哄骗你们中的一些人。
谢谢!
在“解决”这个问题之前,您可能需要深入一点,并确保您的修改得到充分的思考。 你提到的文件中有:
我碰巧知道/ etc / passwd必须对于任何数量的程序(ls)都是可读的,才能在标准configuration中访问用户名信息。 / etc / passwd中的任何内容在任何现代机器上都是秘密的或特权的,因为这是影子文件的目的,或者秘密通过LDAP,Kerberos或其他类似的东西托pipe在networking上。
我对其他两个不太确定。 cron以用户的身份运行,所以它可能需要能够以任何可以运行cron的用户的身份读取该文件。 平均系统上的任何用户都可以最后运行,查看最近和当前的login(从lastlog和wtmp,afair中读取),因此这些文件是可读的。 你一定可以删除这些命令,或者用户对它们的访问权限,然后你可能想要改变这些文件的权限,或者完全删除它们,一旦你确定它们没有被使用。
“ 保障Debian手册”可以为您解答更多的这些问题,或者更好地解释这些问题。 虽然没有得到积极维护,但仍然相当不错。 其他发行版也有类似的资源。
/ etc / passwd应该是世界可读的; 许多程序需要阅读它。 这不是安全风险(除非您考虑显示机器上存在哪些用户是安全风险); 密码现在不存储在里面,从来没有被encryption存储过。
/ var / log / lastlog – 如果这是世界上可读的,这意味着人们可以查看pipe理员需要查看的是否有问题,而不必先pipe理pipe理员。
正在运行的cron作业列表 – 这是显示'PS',我认为? 如果您担心用户在同一台机器上看到其他人正在做什么,那么您有问题。 Unix和Linux通常在机器上的用户之间存在一点信任的情况下工作得最好。 您可以安全地运行相当一般的公共读取权限; 没有它就更难运行。
如果你想运行一个安全的系统,考虑SELinux 。 我不确定是否处理这些特定的问题,但是在所有的Linux系统中,SELinux或者其中一个衍生产品是最有可能的。