
LSM(Linux安全模块)
即AppArmor或SELINUX,他们最近是否为你做过任何事情?
Linux内核加固
这里我建议大家直接去查看 PaX和grsecurity补丁。前不久被曝出的 Spectre和 Meltdown漏洞,也为我们的内核安全问题敲响了。
查看: grsecurity.net, Linux 内核安全卫士, 内核自我保护项目
移除不必要的设备
如果你没有使用Thunderbolt,Firewire,无线网卡或任何具有DMA(直接内存访问)模式的模块,那么你就没有理由加载这些内核模块。
查看: 内核模块黑名单列表
也许你还在通过手动的方式检查日志文件,那么你应该学会编写Logstash过滤和grok pattern。Grok是Logstash 最重要的插件。你可以在 grok 里预定义好命名正则表达式,在稍后(grok参数或者其他正则表达式里)引用它。它非常适用于syslog logs,apache和一些其他的webserver logs,以及mysql logs。grok有很多定义好pattern,当然也可以自己定义。
查看: Filebeat, rsyslog, Logstash
你如何监控资源的使用情况?
RAM,CPU负载,可用磁盘空间。这些虽然看上去无关紧要,但这些地方都是发生异常活动的关键位置,因此值得一提。
查看: Metricbeat, Prometheus node_exporter, Nagios, Osquery
基础设施测试
人们对软件测试的各个方面都很熟悉,但对于基础设施的测试却并不熟悉。你如何确保你的系统状态始终符合你的预期?
查看: Serverspec, Testinfra
平台和固件安全
你的BIOS和其他低级接口受到错误影响。英特尔®AMT和管理引擎,以及Computrace应被禁用。下面链接提供了一个非常有用的用于分析系统固件和硬件组件安全性的框架。
查看: CHIPSEC
保护远程shell
sshd通用准则:禁用root登录,使用密钥代替密码,并设置暴破防护。而更好的解决方案是将其放置在VPN后面,通过验证的 Tor隐藏服务,或者需要 端口试探来动态开启一些特定端口连接主机。
查看: fail2ban, denyhosts, sshguard, Secure Secure Shell
Webserver最佳实践
如果你不想泄露你当前正在运行服务器的版本信息,对于nginx你可以通过将参数server_tokens设为off来实现,如果是Apache则将ServerSignature设为off即可。
在运行依赖于动态脚本语言的复杂应用程序时,请考虑运行类似 ModSecurity的WAF(Web应用程序防火墙)。 Cloudflare正的向其客户提供此项服务。
次要因素
我强烈推荐使用 YubiKey,它有很多有用的功能。它可以配置为输出静态密码(非常适合PAM用户登录或挂载卷加密),HOTP或 通用双因素(U2F)认证,或者可以使用OpenPGP智能卡。僵尸主机ddos攻击这些设备对于任何系统管理员来说都是不可或缺的。为此,我已经发布了详细的 YubiKey GPG+SSH的安装指南。
DNS解析
你的/etc/resolv.conf文件是否正确配置? Quad9是 谷歌公共DNS或 OpenDNS的替代产品,可阻止客户端访问恶意域名,这与Chrome浏览器通过 安全浏览功能来保护用户的功能类似。僵尸主机ddos攻击所以将你的域名服务器设置为9.9.9.9将能更好的保障你的安全。
审计信任方
除了让系统的可信根证书存储保持最新之外,还应该每隔一段时间检查一次包管理器,以查看哪些第三方是可信的,他们的存储库签名密钥是否足够强大(许多仍使用1024-bit DSA),并删除那些过期的。
尝试:apt-key list, rpm -qa gpg-pubkey
签名git提交和标签
目前,几乎所有人都在使用git进行版本控制。当你发布新版本时,它是否基于GPG签名git标签?如果你喜欢,你也可以签名提交。
查看: 使用GPG签名标签, Git签名, Git工具 签名你的工作
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-83684-3.html
我也在不断的去追求