1

在维护 Linux 服务器时,您强烈推荐哪些安全最佳实践?
(即打开防火墙,禁用不必要的服务,提防 suid 可执行文件,等等。)

另外:是否有关于 Selinux 的明确参考?

编辑:是的,我打算把机器放在互联网上,至少有 openvpn、ssh 和 apache(目前,没有动态内容),并为某些人提供 shell 访问。

4

8 回答 8

5

对于 SELinux,我发现SELinux By Example非常有用。它非常深入地保持服务器尽可能安全,并且针对如此广泛的主题编写得非常好。

但总的来说:

  • 禁用任何你不需要的东西。攻击范围越广,您就越有可能遭到破坏。
  • 在任何有意义的服务器前使用入侵检测系统 (IDS) 层。
  • 将服务器保持在与内部网络不同的安全区域中。
  • 尽快部署更新。
  • 随时了解可远程访问的应用程序的 0 天攻击。
于 2008-10-09T11:31:53.153 回答
4

简短的回答是,这取决于。这取决于您使用它的目的,这反过来又会影响您应该投入多少精力来保护它。

这个问题的答案中有一些方便的提示: Securing a linux webserver for public access

如果您不将盒子扔到互联网上,那么其中一些答案将不相关。如果你把它扔到互联网上在上面托管一些甚至有点有趣的东西,那么这些答案对你来说太自由放任了。

于 2008-10-09T11:27:17.127 回答
4

有一个 NSA 文件“RHEL5 的 NSA 安全指南”可在以下位置获得:

http://www.nsa.gov/ia/_files/os/redhat/rhel5-guide-i731.pdf

这很有帮助,至少是系统的。

于 2008-10-09T12:11:18.363 回答
2
  • 将软件限制为您真正使用的唯一软件
  • 通过 sudo、ACL、内核功能和 SELinux/AppArmor/PaX 策略限制用户的权限
  • 强制使用硬密码(没有人类可以理解的单词,没有生日日期等)
  • 为“危险”应用程序制作 LXC 计数器、chroot 或 vserver 监狱
  • 安装一些 IDS,例如用于网络流量的 Snort 和用于日志分析的 OSSEC
  • 监控服务器
  • 加密您的敏感数据(truecrypt 是神的礼物)
  • 用 GRSecurity 给你的内核打补丁:这增加了一个非常好的偏执水平

这或多或少是我会做的。

编辑:我添加了一些我以前忘记命名的想法......

于 2008-10-09T13:05:12.937 回答
1

1.) 仅启用必要和相关的端口。

2.) 定期扫描网络数据进出

3.) 定期扫描访问服务器的 IP 地址,并验证是否从日志/跟踪中发现与这些 IP 地址相关的任何异常数据活动

4.)如果一些关键和机密的数据和代码,需要在服务器上存在,可能是可以加密的

-广告

于 2008-10-09T11:25:59.703 回答
1

目标:最困难的部分始终是定义您的安全目标。在这一点上,其他一切都相对容易。

探测/研究:考虑攻击者采取的相同方法,即网络侦察(namp 对此非常有帮助)。

更多信息:SELinux by example 是一本很有帮助的书,要找到一个集中的 SELinux 信息来源仍然很困难。我有一小部分有用的链接,我不时觉得这些链接很有用http://delicious.com/reverand_13/selinux

有用的解决方案/工具:正如大多数人所说的,少即是多。对于带有 SELinux 的开箱即用的精简框,我建议使用剪辑 ( http://oss.tresys.com/projects/clip )。我的一个朋友在一个学术模拟中使用了它,在这个模拟中,盒子受到其他参与者的直接攻击。我记得这个故事对这个盒子的结局非常有利。

您将希望熟悉编写 SELinux 策略。模块化策略也可以变得有用。诸如 SLIDE 和 seedit 之类的工具(尚未尝试过)可能会对您有所帮助。

于 2009-06-20T00:34:32.377 回答
0

除非必须,否则不要使用 DNS 服务器。BIND 一直是安全问题和漏洞利用的热点。

于 2008-10-09T13:29:48.020 回答
0

强化 Linux 服务器是一个庞大的主题,主要取决于您的需求。

通常,您需要考虑以下关注组(我将举例说明每个组中的最佳实践):

  1. 引导和磁盘
    Ex1:禁用从外部设备引导。
    Ex2:为 GRUB 引导加载程序设置密码 - Ref

  2. 文件系统分区
    Ex1:将用户分区 ( /home, /tmp, /var) 与操作系统分区分开。
    Ex2:nosuid在分区上设置——为了防止权限升级setuid

  3. 内核
    Ex1:更新安全补丁。
    Ex2:在这里阅读更多内容。

  4. 联网
    Ex1:关闭未使用的端口。
    Ex2:禁用 IP 转发。
    Ex3:禁用发送数据包重定向。

  5. 用户/帐户
    Ex1:强制使用强密码 (SHA512)。
    Ex2:设置密码的时效和过期。
    Ex3:限制用户使用旧密码。

  6. 审计和日志记录
    Ex1:Configure auditd- ref
    Ex2:使用 journald- ref配置日志记录。

  7. 服务
    Ex1:删除未使用的服务,例如:FTP、DNS、LDAP、SMB、DHCP、NFS、SNMP 等。
    EX2:如果您使用的是 Apache 或 nginx 之类的 Web 服务器 - 不要以 root 身份运行它们 -在此处阅读更多信息。
    Ex3:安全 SSH参考

  8. 软件
    确保删除未使用的软件包。

阅读更多:

https://www.computerworld.com/article/3144985/linux-hardening-a-15-step-checklist-for-a-secure-linux-server.html

https://www.tecmint.com/linux-server-hardening-security-tips/

https://cisofy.com/checklist/linux-security/

https://www.ucd.ie/t4cms/UCD%20Linux%20Security%20Checklist.pdf

https://www.cyberciti.biz/faq/linux-kernel-etcsysctl-conf-security-hardening/

https://securecompliance.co/linux-server-hardening-checklist/


现在专门针对 SELinux:
首先,确保在您的机器中启用了 SELinux。

继续阅读以下指南:
https ://www.digitalocean.com/community/tutorials/an-introduction-to-selinux-on-centos-7-part-1-basic-concepts

https://linuxtechlab.com/beginners-guide-to-selinux/

https://www.computernetworkingnotes.com/rhce-study-guide/selinux-explained-with-examples-in-easy-language.html

于 2019-10-04T22:46:00.540 回答