一步一步的指南,用于加固Linux服务器,涵盖SSH安全、防火墙、入侵检测、审计和系统配置,以减少攻击面并改进防御。
一份持续更新的 Linux 服务器安全加固指南,同时也希望能让你了解一些安全知识及其重要性。
(目录使用 nGitHubTOC 生成)
本指南的目的是教你如何保护 Linux 服务器。
你可以采取很多措施来保护 Linux 服务器,本指南将尝试覆盖尽可能多的措施。随着我的学习,或者大家的贡献,会添加更多的主题/材料。
本指南对应的 Ansible 剧本可在 How To Secure A Linux Server With Ansible 找到,由 moltenbit 提供。
(返回目录)
我假设你使用本指南是因为你——希望如此——已经理解良好安全的重要性。这本身就是一个沉重的话题,详细讨论超出了本指南的范围。如果你不知道这个问题的答案,我建议你先研究一下。
概括来说,只要一台设备(比如服务器)处于公共领域——即对外部世界可见——它就会成为恶意行为者的目标。不安全的设备对恶意行为者来说是一个游乐场,他们想访问你的数据,或者将你的服务器用作大规模 DDoS 攻击的另一个节点。
更糟糕的是,如果没有良好的安全性,你可能永远不知道你的服务器是否已被入侵。恶意行为者可能已获得对服务器的未授权访问,并复制了你的数据却没有更改任何东西,因此你永远不会知道。或者你的服务器可能参与了 DDoS 攻击,而你也无从知晓。看看新闻中许多大规模数据泄露事件——公司往往在恶意行为者离开很久之后才发现数据泄露或入侵。
与普遍看法相反,恶意行为者并不总是想更改某些东西或锁住你的数据勒索钱财。有时他们只是想要你服务器上的数据用于他们的数据仓库(大数据中有巨大利润),或者秘密地将你的服务器用于他们的邪恶目的。
(返回目录)
这份指南可能看起来多余/不必要,因为网上有无数文章教你如何保护 Linux,但这些信息分散在不同的文章中,涵盖不同的内容,而且方式各异。谁有时间浏览数百篇文章呢?
在我为我的 Debian 构建进行研究时,我一直做笔记。最后我意识到,结合我已经知道的和我正在学习的,我已经掌握了一份操作指南的素材。我想把它放到网上,希望能帮助其他人学习并节省时间。
我从未找到一份涵盖所有方面的指南——本指南就是我的尝试。
本指南中涵盖的许多内容可能相当基础/琐碎,但我们大多数人不会每天都安装 Linux,很容易忘记这些基本内容。
(返回目录)
有很多由专家、行业领袖以及发行版本身提供的指南。出于实际和版权原因,不可能包含所有内容。我建议你在开始本指南之前先看看它们。
(返回目录)
(返回目录)
本指南……
(返回目录)
服务器有许多类型和不同的使用场景。虽然我希望本指南尽可能通用,但有些内容可能不适用于所有/其他场景。请在你阅读本指南时自行判断。
为了给本指南中涵盖的许多主题提供背景,我的使用场景/配置是:
(返回目录)
我非常懒,不喜欢在不需要时手动编辑文件。我还假设其他人都和我一样。:)
因此,在可能的情况下,我提供了 代码 片段来快速完成所需操作,比如在配置文件中添加或更改一行。
这些 代码 片段使用基本命令,如 echo、cat、sed、awk 和 grep。代码片段如何工作(比如每个命令/部分的作用)超出了本指南的范围——man 手册是你的朋友。
注意:代码 片段不会验证/确认更改是否生效——比如行是否真的被添加或更改了。我把验证部分留给你可靠的手。本指南中的步骤确实包括备份所有将被更改的文件。
并非所有更改都可以通过 代码 片段自动化。那些更改需要良好的、老式的手动编辑。例如,你不能简单地在 INI 类型的文件末尾附加一行。使用你喜欢的 Linux 文本编辑器。
(返回目录)
我想把本指南放在 GitHub 上,以便于协作。越多的人贡献,本指南就会变得越好越完整。
要贡献,你可以 fork 并提交 pull request,或者提交新的 issue。
(返回目录)
在开始之前,你需要明确你的原则是什么。你的威胁模型是什么?需要考虑的一些事情:
这些只是需要考虑的一些事情。在开始保护你的服务器之前,你需要了解你要防范什么以及为什么,这样你才知道你需要做什么。
(返回目录)
本指南旨在与发行版无关,这样用户可以使用他们想要的任何发行版。话虽如此,有几点需要记住:
你想要的发行版应该……