Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
How-To-Secure-A-Linux-Server — 一步一步的指南,用于加固Linux服务器,涵盖SSH安全、防火墙、入侵检测、审计和系统配置,以减少攻击面并改进防御。 | Kitploit
工具/GitHubGitHub/imthenachoman/how-to-secure-a-linux-server
漏洞扫描器配置审计网络安全恶意软件分析身份验证入侵检测学习与教育事件响应精选资源

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
日志分析
GitHubimthenachoman/how-to-secure-a-linux-server

How-To-Secure-A-Linux-Server

一步一步的指南,用于加固Linux服务器,涵盖SSH安全、防火墙、入侵检测、审计和系统配置,以减少攻击面并改进防御。

查看仓库
30.3k2.0k6022天前Kitploit 审核通过
分享

如何保护 Linux 服务器

一份持续更新的 Linux 服务器安全加固指南,同时也希望能让你了解一些安全知识及其重要性。

CC-BY-SA

目录

  • 引言
    • 指南目标
    • 为什么要保护你的服务器
    • 为什么又出一份指南
    • 其他指南
    • 待办/待添加
  • 指南概述
    • 关于本指南
    • 我的使用场景
    • 编辑配置文件——给懒人看的
    • 贡献
  • 开始之前
    • 明确你的原则
    • 选择 Linux 发行版
    • 安装 Linux
    • 安装前/后的要求
    • 其他重要说明
    • 使用 Ansible 剧本保护你的 Linux 服务器
  • SSH 服务器
    • 进行 SSH 更改前的重要说明
    • SSH 公钥/私钥
    • 为 AllowGroups 创建 SSH 组
    • 保护 /etc/ssh/sshd_config
    • 移除短 Diffie-Hellman 密钥
    • SSH 的 2FA/MFA
  • 基础
    • 限制谁可以使用 sudo
    • 限制谁可以使用 su
    • 使用 FireJail 在沙箱中运行应用程序
    • NTP 客户端
    • 保护 /proc
    • 强制账户使用安全密码
    • 自动安全更新和警报
    • 更安全的随机熵池(待完成)
    • 添加恐慌/备用/虚假密码登录安全系统
  • 网络
    • 用 UFW(简易防火墙)设置防火墙
    • 使用 PSAD 进行 iptables 入侵检测和防御
    • 使用 Fail2Ban 进行应用入侵检测和防御
    • 使用 CrowdSec 进行应用入侵检测和防御
  • 审计
    • 使用 AIDE 进行文件/文件夹完整性监控(待完成)
    • 使用 ClamAV 进行反病毒扫描(待完成)
    • 使用 Rkhunter 进行 Rootkit 检测(待完成)
    • 使用 chrootkit 进行 Rootkit 检测(待完成)
    • logwatch - 系统日志分析器和报告器
    • ss - 查看服务器正在监听的端口
    • Lynis - Linux 安全审计
    • OSSEC - 主机入侵检测
  • 危险区域
  • 杂项
    • MSMTP(简单 Sendmail)配合 Google
    • Gmail 和 Exim4 作为隐式 TLS 的 MTA
    • 独立的 iptables 日志文件
  • 遗留
    • 联系我
    • 有用链接
    • 致谢
    • 许可和版权

(目录使用 nGitHubTOC 生成)

引言

指南目标

本指南的目的是教你如何保护 Linux 服务器。

你可以采取很多措施来保护 Linux 服务器,本指南将尝试覆盖尽可能多的措施。随着我的学习,或者大家的贡献,会添加更多的主题/材料。

本指南对应的 Ansible 剧本可在 How To Secure A Linux Server With Ansible 找到,由 moltenbit 提供。

(返回目录)

为什么要保护你的服务器

我假设你使用本指南是因为你——希望如此——已经理解良好安全的重要性。这本身就是一个沉重的话题,详细讨论超出了本指南的范围。如果你不知道这个问题的答案,我建议你先研究一下。

概括来说,只要一台设备(比如服务器)处于公共领域——即对外部世界可见——它就会成为恶意行为者的目标。不安全的设备对恶意行为者来说是一个游乐场,他们想访问你的数据,或者将你的服务器用作大规模 DDoS 攻击的另一个节点。

更糟糕的是,如果没有良好的安全性,你可能永远不知道你的服务器是否已被入侵。恶意行为者可能已获得对服务器的未授权访问,并复制了你的数据却没有更改任何东西,因此你永远不会知道。或者你的服务器可能参与了 DDoS 攻击,而你也无从知晓。看看新闻中许多大规模数据泄露事件——公司往往在恶意行为者离开很久之后才发现数据泄露或入侵。

与普遍看法相反,恶意行为者并不总是想更改某些东西或锁住你的数据勒索钱财。有时他们只是想要你服务器上的数据用于他们的数据仓库(大数据中有巨大利润),或者秘密地将你的服务器用于他们的邪恶目的。

(返回目录)

为什么又出一份指南

这份指南可能看起来多余/不必要,因为网上有无数文章教你如何保护 Linux,但这些信息分散在不同的文章中,涵盖不同的内容,而且方式各异。谁有时间浏览数百篇文章呢?

在我为我的 Debian 构建进行研究时,我一直做笔记。最后我意识到,结合我已经知道的和我正在学习的,我已经掌握了一份操作指南的素材。我想把它放到网上,希望能帮助其他人学习并节省时间。

我从未找到一份涵盖所有方面的指南——本指南就是我的尝试。

本指南中涵盖的许多内容可能相当基础/琐碎,但我们大多数人不会每天都安装 Linux,很容易忘记这些基本内容。

(返回目录)

其他指南

有很多由专家、行业领袖以及发行版本身提供的指南。出于实际和版权原因,不可能包含所有内容。我建议你在开始本指南之前先看看它们。

  • 互联网安全中心 (CIS) 提供了基准,这些基准是详尽、行业信任的、一步步保护多种 Linux 变种的说明。查看他们的关于我们页面了解详情。我的建议是先读本指南(你现在读的这份),然后再读 CIS 的指南。这样他们的建议将优先于本指南中的任何内容。
  • 针对特定发行版的安全加固/安全指南,请查看你发行版的文档。
  • https://security.utexas.edu/os-hardening-checklist/linux-7 - Red Hat Enterprise Linux 7 加固检查清单
  • https://cloudpro.zone/index.php/2018/01/18/debian-9-3-server-setup-guide-part-1/ - # Debian 9.3 服务器设置指南
  • https://blog.vigilcode.com/2011/04/ubuntu-server-initial-security-quick-secure-setup-part-i/ - Ubuntu 服务器初始安全指南
  • https://www.tldp.org/LDP/sag/html/index.html
  • https://seifried.org/lasg/
  • https://news.ycombinator.com/item?id=19178964
  • https://wiki.archlinux.org/index.php/Security - 很多人也推荐了这个
  • https://securecompliance.co/linux-server-hardening-checklist/

(返回目录)

待办/待添加

  • Fail2ban 的自定义 Jail
  • MAC(强制访问控制)和 Linux 安全模块
    • https://wiki.archlinux.org/index.php/security#Mandatory_access_control
    • SELinux
      • https://en.wikipedia.org/wiki/Security-Enhanced_Linux
      • https://linuxtechlab.com/beginners-guide-to-selinux/
      • https://linuxtechlab.com/replicate-selinux-policies-among-linux-machines/
      • https://teamignition.us/how-to-stop-being-a-scrub-and-learn-to-use-selinux.html
    • AppArmor
      • https://wiki.archlinux.org/index.php/AppArmor
      • https://security.stackexchange.com/questions/29378/comparison-between-apparmor-and-selinux
      • http://www.insanitybit.com/2012/06/01/why-i-like-apparmor-more-than-selinux-5/
  • 磁盘加密
  • Rkhunter 和 chrootkit
    • http://www.chkrootkit.org/
    • http://rkhunter.sourceforge.net/
    • https://www.cyberciti.biz/faq/howto-check-linux-rootkist-with-detectors-software/
    • https://www.tecmint.com/install-rootkit-hunter-scan-for-rootkits-backdoors-in-linux/
  • 发送/备份日志 - https://news.ycombinator.com/item?id=19178681
  • CIS-CAT - https://learn.cisecurity.org/cis-cat-landing-page
  • debsums - https://blog.sleeplessbeastie.eu/2015/03/02/how-to-verify-installed-packages/

(返回目录)

指南概述

关于本指南

本指南……

  • ……是一份持续更新中的作品。
  • ……专注于家庭环境下的 Linux 服务器。这里的所有概念/建议也适用于更大/专业的环境,但这些场景需要更高级和专门的配置,超出了本指南的范围。
  • ……不教你 Linux 是什么、如何安装 Linux 或如何使用它。如果你刚接触 Linux,请查看 https://linuxjourney.com/。
  • ……旨在成为发行版无关的指南。
  • ……不教你所有需要知道的安全知识,也不深入系统/服务器安全的各个方面。例如,物理安全不在本指南范围内。
  • ……不讨论程序/工具的工作原理,也不深入它们的细节。本指南引用的大多数程序/工具非常强大且高度可配置。目标是覆盖基本需求——足以吊起你的胃口,让你想进一步学习。
  • ……旨在通过提供可复制粘贴的代码来简化操作。你可能需要修改命令后再粘贴,所以手边最好有你喜欢的文本编辑器。
  • ……按照我觉得有逻辑的顺序组织——即先保护 SSH,再安装防火墙。因此,本指南建议按呈现的顺序进行,但并非必须。不过如果你以不同顺序操作要小心——某些部分可能依赖前面的内容。

(返回目录)

我的使用场景

服务器有许多类型和不同的使用场景。虽然我希望本指南尽可能通用,但有些内容可能不适用于所有/其他场景。请在你阅读本指南时自行判断。

为了给本指南中涵盖的许多主题提供背景,我的使用场景/配置是:

  • 一台桌面级计算机……
  • 拥有单个网卡……
  • 连接到消费级路由器……
  • 通过 ISP 获得动态 WAN IP……
  • WAN+LAN 运行在 IPv4……
  • LAN 使用NAT……
  • 我希望能够从未知计算机和未知位置(例如朋友家)通过 SSH 远程访问该服务器。

(返回目录)

编辑配置文件——给懒人看的

我非常懒,不喜欢在不需要时手动编辑文件。我还假设其他人都和我一样。:)

因此,在可能的情况下,我提供了 代码 片段来快速完成所需操作,比如在配置文件中添加或更改一行。

这些 代码 片段使用基本命令,如 echo、cat、sed、awk 和 grep。代码片段如何工作(比如每个命令/部分的作用)超出了本指南的范围——man 手册是你的朋友。

注意:代码 片段不会验证/确认更改是否生效——比如行是否真的被添加或更改了。我把验证部分留给你可靠的手。本指南中的步骤确实包括备份所有将被更改的文件。

并非所有更改都可以通过 代码 片段自动化。那些更改需要良好的、老式的手动编辑。例如,你不能简单地在 INI 类型的文件末尾附加一行。使用你喜欢的 Linux 文本编辑器。

(返回目录)

贡献

我想把本指南放在 GitHub 上,以便于协作。越多的人贡献,本指南就会变得越好越完整。

要贡献,你可以 fork 并提交 pull request,或者提交新的 issue。

(返回目录)

开始之前

明确你的原则

在开始之前,你需要明确你的原则是什么。你的威胁模型是什么?需要考虑的一些事情:

  • 你为什么想要保护你的服务器?
  • 你希望或不希望有多少安全性?
  • 你愿意为了安全性妥协多少便利性,反之亦然?
  • 你想要防范哪些威胁?你的情况有什么特殊之处?例如:
    • 物理接触你的服务器/网络是否是一个可能的攻击向量?
    • 你是否会在路由器上开放端口,以便从家庭网络外部访问你的服务器?
    • 你是否会在服务器上托管一个文件共享,并挂载到桌面级机器上?桌面机器被感染并进而感染服务器的可能性有多大?
  • 如果你的安全实现将你锁在服务器之外,你有恢复的方法吗?例如,你禁用了 root 登录或为 GRUB 设置了密码。

这些只是需要考虑的一些事情。在开始保护你的服务器之前,你需要了解你要防范什么以及为什么,这样你才知道你需要做什么。

(返回目录)

选择 Linux 发行版

本指南旨在与发行版无关,这样用户可以使用他们想要的任何发行版。话虽如此,有几点需要记住:

你想要的发行版应该……

下载工具