Linux中的最佳安全实践

时间:2008-10-09 11:15:37

标签: linux security selinux

您强烈建议在维护Linux服务器时使用哪些安全性最佳做法?
(即启动防火墙,禁用不必要的服务,小心suid可执行文件等等。)

另外:Selinux上有明确的参考资料吗?

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

8 个答案:

答案 0 :(得分:5)

对于SELinux,我发现SELinux By Example非常有用。它非常深入地保持了一个尽可能安全的服务器,并为这么广泛的主题编写得非常好。

一般情况下:

  • 禁用您不需要的任何内容。攻击域越宽,就越有可能发生攻击。
  • 在任何有意义的服务器前使用入侵检测系统(IDS)层。
  • 将服务器与内部网络保持在不同的安全区域。
  • 尽快部署更新。
  • 及时了解可远程访问的应用的0天攻击。

答案 1 :(得分:4)

简短的回答是,这取决于。这取决于你使用它的方式,这反过来会影响你应该花多少精力去保护它。

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

如果你没有将盒子扔到互联网上,那么这些答案中的一些将无关紧要。如果你把它扔到互联网上主持一些甚至有点模糊的东西,那些答案对你来说太过放任了。

答案 2 :(得分:4)

有一份NSA文件“适用于RHEL5的NSA安全指南”,可从以下网址获取:

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

非常有帮助,至少是系统性的。

答案 3 :(得分:2)

  • 将软件限制为您真正使用的软件
  • 通过sudo,ACL,内核功能和SELinux / AppArmor / PaX政策限制用户的权利
  • 强制使用硬密码(没有人类可理解的单词,没有生日日期等)
  • 为“危险”应用程序制作LXC计数器,chroot或vserver监狱
  • 安装一些IDS,例如Snort用于网络流量,OSSEC用于日志分析
  • 监控服务器
  • 加密您的敏感数据(真实加密是众神的礼物)
  • 使用GRSecurity修补你的内核:这增加了一个非常好的paranoïa级别

这或多或少都是我要做的。

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

答案 4 :(得分:1)

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

2。)定期扫描网络数据

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

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

-AD

答案 5 :(得分:1)

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

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

更多信息: 通过示例SELinux是一本有用的书,找到SELinux信息的良好集中源仍然很难。 我有一小段有用的链接,我发现有用的时间http://delicious.com/reverand_13/selinux

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

您需要熟悉编写SELinux政策。模块化政策也可能会有所帮助。 SLIDE和seedit等工具(未尝试过)可能会对您有所帮助。

答案 6 :(得分:0)

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

答案 7 :(得分:0)

加固Linux服务器是一个广泛的话题,它主要取决于您的需求。

通常,您需要考虑以下关注的组(我将在每个组中提供最佳实践的示例):

  1. 启动和磁盘
    示例1:禁止从外部设备启动。
    例2:为GRUB引导程序-Ref设置密码。

  2. 文件系统分区
    示例1:将用户分区(/home/tmp/var)与OS分区分开。
    例2:在分区上设置nosuid –以防止使用特权setuid升级特权。

  3. 内核
    例1:更新安全补丁。
    例2:在here中了解更多信息。

  4. 网络
    示例1:关闭未使用的端口。
    示例2:禁用IP转发。
    示例3:禁用发送数据包重定向。

  5. 用户/帐户
    Ex1:强制使用强密码(SHA512)。
    示例2:设置密码的有效期和有效期。
    示例3:限制用户使用旧密码。

  6. 审核和记录
    示例1:配置auditd-ref
    示例2:使用日志-ref配置日志记录。

  7. 服务
    示例1:删除未使用的服务,例如:FTP,DNS,LDAP,SMB,DHCP,NFS,SNMP等。
    EX2:如果您使用的是Apache或nginx之类的Web服务器-不要以root用户身份运行它们-阅读更多here
    示例3:安全SSH ref

  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