不要允许远程 root 登录。这可以通过配置文件来控制,例如/etc/securetty。删除任何以 “pts” 开头的行。这是一个很大的安全漏洞。
避免在不受信任的网络(如互联网)上使用需要明文登录的程序。Telnet 就是一个典型的例子。ssh 要好得多。如果有任何对 SSL(安全套接字层)的支持,请使用它。例如,您的 ISP 是否通过 SSL 提供 POP 或 IMAP 邮件?最近的 Red Hat 版本确实包含 openssl,并且许多 Linux 应用程序可以在支持 SSL 的情况下使用 SSL。
设置资源限制。有很多种方法可以做到这一点。对于访问给定系统的用户数量,对此的需求可能会增加。不仅对磁盘空间等设置限制可以防止故意的恶作剧,还可以帮助处理意外行为不端的应用程序或进程。quota (man quota) 可用于设置磁盘空间限制。Bash 包含 ulimit 命令 (man ulimit或man bash),它可以限制每个用户的各种功能。
此外,这里没有详细讨论,但 PAM(可插拔身份验证模块)对于控制各种系统功能和资源有一种非常复杂的方法。请参阅man pam以开始使用。PAM 通过以下任一方式配置:/etc/pam.conf或/etc/pam.d/*。还有/etc/security/*中的文件,包括/etc/security/limits.conf,在这里可以再次施加各种合理的限制。深入了解 PAM 超出了本文档的范围。《用户身份验证 HOWTO》(https://tldp.cn/HOWTO/User-Authentication-HOWTO/index.html)有更多关于这方面的内容。
确保有懂行的人收到 root 用户的邮件。这可以使用“别名”来完成。通常,邮件服务器会有一个文件,例如/etc/aliases,可以在其中定义别名。如果需要,这可以想象是另一台机器上的帐户
# Person who should get root's mail. This alias # must exist. # CHANGE THIS LINE to an account of a HUMAN root: hal@bigcat |
记住之后运行 newaliases(或等效命令)。
小心您获取软件的地方。使用可信来源。您有多信任完全陌生人?如果正在寻找特定的软件包,请首先检查 Red Hat 的 ftp 站点(或镜像站点)。无论如何,它可能最适合您的系统。或者,原始软件包的项目站点也不错。从原始源代码(tarball 或 src.rpm)安装至少让您能够检查代码。即使您不理解它 ;-) 虽然这似乎不是 Linux 软件站点普遍存在的问题,但对于某些人来说,添加非常少的代码,将那个看起来无害的二进制文件变成“特洛伊木马”,从而打开您系统的后门,是非常容易的。然后就完了。
那么有人扫描了您、探测了您,或者似乎想进入您的系统?不要报复。很有可能源 IP 地址是一个被入侵的系统,而所有者已经是受害者。此外,您可能违反了某些人的服务条款,并给您自己的 ISP 带来麻烦。您能做的最好的事情是将您的日志发送到源 IP 的 ISP 或所有者的滥用部门。这通常类似于 “abuse@someisp.com”。只是不要期望收到太多回复。一般来说,除非实际发生闯入,否则这种活动在法律上不是犯罪。此外,即使是犯罪,除非能证明重大损失(读作:巨额资金),否则永远不会受到起诉。
Red Hat 用户可以安装 “Bastille Hardening System”,http://www.bastille-linux.org/。这是一个用于“加固” Red Hat 和 Mandrake 系统安全的多用途系统。它具有 GUI 界面,可用于从头开始构建防火墙脚本并配置 PAM 以及许多其他功能。Debian 支持是新增的。
所以您通过电缆调制解调器或 DSL 连接全天候互联网。但您总是使用它,或者总是需要它吗?有句老话说“唯一真正安全的系统,是断开连接的系统”。好吧,这当然是一种选择。所以关闭该接口,或停止控制守护进程(dhcpcd,pppoed 等)。甚至可以设置 cron 作业,根据您的正常时间表和使用情况来启动和关闭您的连接。
那么经常被宣传为“防火墙”的电缆和 DSL 路由器呢?价格较低的设备主要将 NAT(网络地址转换)与通过它打开端口漏洞的能力等同于防火墙。虽然 NAT 本身确实为 NAT 网关后面的系统提供了一定程度的安全性,但这仅仅构成了一个非常简陋的防火墙。如果漏洞被打开,仍然存在风险。此外,您还依赖于路由器的固件和实现没有缺陷。在这些路由器后面有一些额外的保护措施是明智的。
无线网卡和集线器怎么样?不安全,尽管制造商可能声称安全。像对待互联网连接一样对待这些连接。仅使用 ssh 等安全协议!即使只是一个 LAN 盒子到另一个 LAN 盒子。
如果您发现需要运行特定的服务,并且它仅供您自己或可能相对较少的人使用,请使用非标准端口。大多数服务器守护进程都支持这一点。例如,sshd 默认在端口 22 上运行。所有蠕虫和脚本小子都会在那里期望找到它,并寻找它。所以,在另一个端口上运行它!请参阅 sshd 手册页。
那么根据应用程序阻止互联网连接的防火墙呢(例如 Windows 域的 ZoneAlarm)?这些防火墙的设计主要考虑到病毒和木马在 MS 操作系统中非常普遍。这在 Linux 上实际上不是问题。因此,目前 Linux 上实际上不存在这样的应用程序。而且似乎没有足够的需求,以至于有人花时间来实现它。通过遵循本文档中的其他建议,可以在 Linux 上获得更好的防火墙。
最后,了解您的系统!让我们面对现实,如果您是 Linux 新手,您不可能已经了解您从未用过的东西。可以理解。但是在学习的过程中,学习如何以正确的方式做事,而不是最简单的方式。在“正确的方式”做事背后有几十年的历史。这经受了时间的考验。现在看起来可能不必要或繁琐的事情,在适当的时候就会变得有意义。
熟悉您正在运行的任何服务,以及如果出现问题,这些服务可能对系统的整体健康状况产生的影响。尽可能多地阅读,并提出问题。不要“仅仅因为我可以”,或者因为安装程序将其放在那里,就将某些东西作为服务运行。显然,您不可能一开始就是经验丰富的系统管理员。但是您可以努力学习足够多的关于您自己系统的知识,以便您能够掌控它。这是 *nix 与 MS 系统的区别之一:我们永远无法完全控制 MS,但我们可以控制 *nix。反之,如果发生不好的事情,我们常常只能责怪自己。