Linux中的最佳安全实践

Linux中的最佳安全实践,linux,security,selinux,Linux,Security,Selinux,在维护Linux服务器时,您强烈推荐哪些安全最佳做法?i、 e.设置防火墙,禁用不必要的服务,提防suid可执行文件,等等 另外:是否有关于Selinux的明确参考 编辑:是的,我计划把这台机器放到互联网上,目前至少有openvpn、ssh和apache,没有动态内容,并为一些人提供shell访问。 更多信息: SelinuxByExample是一本很有帮助的书,为SELinux信息找到一个好的集中式来源仍然很困难。 我有一个有用的链接小列表,我发现有用的时间 有用的解决方案/工具: 正如大多数

在维护Linux服务器时,您强烈推荐哪些安全最佳做法?i、 e.设置防火墙,禁用不必要的服务,提防suid可执行文件,等等

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


编辑:是的,我计划把这台机器放到互联网上,目前至少有openvpn、ssh和apache,没有动态内容,并为一些人提供shell访问。

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

二,。定期扫描网络数据输入输出

三,。定期扫描访问服务器的ip地址,并验证是否有任何异常数据活动与日志/跟踪中发现的ip地址相关

四,。如果服务器上需要一些关键和机密的数据和代码,则可能需要对其进行加密


-广告。仅启用必要的相关端口

二,。定期扫描网络数据输入输出

三,。定期扫描访问服务器的ip地址,并验证是否有任何异常数据活动与日志/跟踪中发现的ip地址相关

四,。如果服务器上需要一些关键和机密的数据和代码,则可能需要对其进行加密


-简而言之,这要看情况而定。这取决于你使用它的目的,而这反过来又会影响到你应该投入多少精力来保护它

这个问题的答案中有一些方便的提示:


如果你不把这个盒子扔到互联网上,其中一些答案就不相关了。如果你把它扔到互联网上,并在上面托管一些甚至有点意思的东西,这些答案对你来说太放任了。

简而言之,这要看情况而定。这取决于你使用它的目的,而这反过来又会影响到你应该投入多少精力来保护它

这个问题的答案中有一些方便的提示:

如果你不把这个盒子扔到互联网上,其中一些答案就不相关了。如果你把它扔到互联网上,并在上面托管一些甚至有点意思的东西,这些答案对你来说太放任了。

对于SELinux,我发现它真的很有用。它在尽可能保证服务器安全方面做得相当深入,并且针对如此广泛的主题写得相当好

但总体而言:

禁用任何你不需要的东西。攻击域越宽,你就越有可能有漏洞。 在任何有意义的服务器前使用入侵检测系统IDS层。 将服务器与内部网络保持在不同的安全区域。 尽快部署更新。 随时了解您的远程可访问应用的最新0天攻击。 对于SELinux,我发现它非常有用。它在尽可能保证服务器安全方面做得相当深入,并且针对如此广泛的主题写得相当好

但总体而言:

禁用任何你不需要的东西。攻击域越宽,你就越有可能有漏洞。 在任何有意义的服务器前使用入侵检测系统IDS层。 将服务器与内部网络保持在不同的安全区域。 尽快部署更新。 随时了解您的远程可访问应用的最新0天攻击。
NSA文件《RHEL5的NSA安全指南》可在以下网址获得:


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

NSA文件《RHEL5的NSA安全指南》可从以下网址获得:

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

将软件限制为您真正使用的软件 通过sudo、acl、内核功能和SELinux/AppArmor/PaX策略限制用户的权限 强制使用硬密码,不使用人类可以理解的词语,不使用生日日期等。 为危险的应用程序设置LXC countainers、chroot或vserver监狱 安装一些ID,例如用于网络流量的Snort和用于日志分析的OSSEC 监视服务器 加密您的敏感数据truecrypt是上帝的礼物 用GRSecurity修补你的内核:这增加了一个非常好的paranoïa级别 那或多或少是我会做的

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

将软件限制为您真正使用的软件 通过sudo、acl、内核功能和SELinux/AppArmor/PaX策略限制用户的权限 强制使用硬密码,不使用人类可以理解的词语,不使用生日日期等。 为危险的应用程序设置LXC countainers、chroot或vserver监狱 安装一些ID,例如用于网络流量的Snort和用于日志分析的OSSEC 监视服务器 加密您的敏感数据truecrypt是上帝的礼物 用GRSecurity修补你的内核:这增加了一个非常好的paranoïa级别 那或多或少是我会做的


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

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

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

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

探索/研究: 考虑攻击者将采取的相同方法,即网络侦察NAMP对此非常有帮助。p> 更多信息: SelinuxByExample是一本很有帮助的书,为SELinux信息找到一个好的集中式来源仍然很困难。 我有一个有用的链接小列表,我发现有用的时间

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

您将希望熟悉SELinux策略的编写。模块化策略也会有所帮助。SLIDE和seedit等工具可能对您有所帮助。

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

探索/研究: 考虑攻击者将采取的相同方法,即网络侦察NAMP对此非常有帮助。p> 更多信息: SelinuxByExample是一本很有帮助的书,为SELinux信息找到一个好的集中式来源仍然很困难。 我有一个有用的链接小列表,我发现有用的时间

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


您将希望熟悉SELinux策略的编写。模块化策略也会有所帮助。像SLIDE和seedit这样尚未尝试过的工具可能会对您有所帮助。

强化Linux服务器是一个广泛的主题,它主要取决于您的需要

一般来说,你需要考虑以下几组关注点:我将给出每组最佳实践的例子:

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

文件系统分区 Ex1:将用户分区/home、/tmp、/var与操作系统分区分开。 Ex2:在分区上设置nosuid–以防止使用setuid位升级权限

内核 Ex1:更新安全补丁。 例2:请在中阅读更多信息

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

用户/帐户 Ex1:强制使用强密码SHA512。 Ex2:设置密码老化和过期。 Ex3:限制用户使用旧密码

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

服务 Ex1:删除未使用的服务,如:FTP、DNS、LDAP、SMB、DHCP、NFS、SNMP等。 EX2:如果您使用的是Apache或nginx之类的web服务器—不要以root用户身份运行—请阅读更多。 Ex3:安全SSH

软件 确保删除未使用的软件包

阅读更多:

现在特别针对SELinux: 首先,确保在您的机器中启用了SELinux

继续使用以下指南:


强化Linux服务器是一个广泛的主题,它主要取决于您的需要

一般来说,你需要考虑以下几组关注点:我将给出每组最佳实践的例子:

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

文件系统分区 Ex1:将用户分区/home、/tmp、/var与操作系统分区分开。 Ex2:在分区上设置nosuid–以防止使用setuid位升级权限

内核 Ex1:更新安全补丁。 例2:请在中阅读更多信息

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

用户/帐户 Ex1:强制使用强密码SHA512。 Ex2:设置密码老化和过期。 Ex3:限制用户使用旧密码

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

服务 Ex1:删除未使用的服务,如:FTP、DNS、LDAP、SMB、DHCP、NFS、SNMP等。 EX2:如果您使用的是Apache或nginx之类的web服务器—不要以root用户身份运行—请阅读更多。 Ex3:安全SSH

软件 确保删除未使用的软件包

阅读更多:

现在特别针对SELinux: 首先,确保在您的机器中启用了SELinux

继续使用以下指南:


而且,如果您需要本地子网的DNS服务器,但不需要提供外部DNS,则将BIND配置为不侦听外部端口和防火墙块
外部DNS传入访问。并且,如果您需要本地子网的DNS服务器,但不需要提供外部DNS,则将绑定配置为不侦听外部端口,并通过防火墙阻止外部DNS传入访问。