Z-A-P-P-I-T/Debian-Ubuntu-Security-Hardening-Script

GitHub: Z-A-P-P-I-T/Debian-Ubuntu-Security-Hardening-Script

一款面向 Debian/Ubuntu 的自动化安全加固脚本,通过批量执行加固步骤与集成监控工具提升系统安全性。

Stars: 10 | Forks: 2

# 🔒 Debian/Ubuntu 安全加固脚本 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Bash](https://img.shields.io/badge/Bash-5.0+-green.svg)](https://www.gnu.org/software/bash/) [![Platform](https://img.shields.io/badge/Platform-Debian%20%7C%20Ubuntu-blue.svg)](https://www.debian.org/) [![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/Z-A-P-P-I-T/Debian-Ubuntu-Security-Hardening-Script/graphs/commit-activity) 一个适用于 Debian/Ubuntu 系统的全面、生产就绪的加固脚本。它应用安全最佳实践,创建安全的 admin 用户,并配置监控和审计工具。支持交互式或全自动模式运行。 ## 📋 目录 - [功能](#功能) - [加固内容](#what-gets-hardened) - [先决条件](#prerequisites) - [快速开始](#快速开始) - [使用模式](#使用模式) - [命令行标志](#命令行标志) - [脚本执行操作](#脚本做什么) - [安全特性](#安全特性) - [运行后操作](#运行后操作) - [日志与报告](#日志与报告) - [验证](#验证) - [故障排除](#故障排除) - [常见问题](#常见问题) - [贡献](#贡献) - [许可证](#许可证) - [免责声明](#免责声明) ## ✨ 功能 - 🚀 **可选全自动**运行 - 🔐 **自动创建用户**,生成随机管理员用户名 - 🛡️ **全面加固**SSH、内核、用户和服务 - 🔍 **安全扫描**:Lynis、RKHunter、AIDE - 📊 **详细日志**记录每一步操作 - ♻️ **可重复安全运行** - 🎯 **VPS 安全**:在禁用 root 前验证新管理员访问 - 🔄 **SSH 配置回滚**(出错时) - 📦 **最小依赖**(使用系统包) - 🌐 **安装后可在离线运行** ## 🎯 加固内容 ### 系统安全 - SSH 加固(禁用 root 登录、仅密钥认证、端口限制) - 防火墙配置(Fail2Ban) - 内核参数(sysctl 加固) - 敏感文件权限 - 用户账户策略(密码老化、质量要求) - 禁用不必要的服务与网络协议 - 编译器访问限制 - 禁止核心转储 ### 监控与检测 - 文件完整性监控(AIDE) - 根套件检测(RKHunter) - 系统审计(auditd 规则) - 安全扫描(Lynis) - 进程记账 - 日志监控与轮转 ### 访问控制 - PAM 配置(密码质量、历史) - Sudo 限制 - `su` 限制(wheel 组) - 会话超时 - 法律横幅 ### 网络安全 - TCP SYN Cookies - 禁用 IP 转发 - 禁用 ICMP 重定向 - 禁用源路由 - 反向路径过滤 - IPv6 加固 ## 📋 先决条件 ### 必需 - **操作系统**:Debian 10+ 或 Ubuntu 18.04+ - **用户**:root 权限(sudo) - **磁盘**:约 500MB 空间用于日志和包 ### 远程服务器(VPS) - root 应已配置 SSH 密钥 - 保持当前 SSH 会话在测试期间打开 ### 本地虚拟机 / 工作站 - 使用 `--local-vm` 跳过 SSH 密钥检查 ## 🚀 快速开始 ### 1) 克隆或下载 ``` # 克隆存储库 git clone https://github.com/Z-A-P-P-I-T/Debian-Ubuntu-Security-Hardening-Script.git cd Debian-Ubuntu-Security-Hardening-Script # 或者直接下载脚本 curl -L -o debian-ubuntu-hardening-script.sh \ https://raw.githubusercontent.com/Z-A-P-P-I-T/Debian-Ubuntu-Security-Hardening-Script/main/debian-ubuntu-hardening-script.sh chmod +x debian-ubuntu-hardening-script.sh ``` ### 2) 运行(交互模式) ``` sudo bash debian-ubuntu-hardening-script.sh ``` ### 3) 保存凭据 脚本会创建一个安全的 admin 用户并打印凭据: ``` Username: sec_a3f9c2b1 Password: xK8#mP2$vR9@wL4!qT7y ``` ⚠️ 请立即保存这些信息。 ## 🎮 使用模式 ### 交互模式(默认) 适合首次用户和生产服务器。 ``` sudo bash debian-ubuntu-hardening-script.sh ``` ### 全自动模式 适用于 CI/CD 和大规模部署。 ``` sudo bash debian-ubuntu-hardening-script.sh --disable-root-login ``` ### 安全模式 保持 root SSH 启用以供谨慎的管理员使用。 ``` sudo bash debian-ubuntu-hardening-script.sh --keep-root-login ``` ### 本地虚拟机 / 测试模式 跳过 SSH 密钥检查并保持密码认证启用。 ``` sudo bash debian-ubuntu-hardening-script.sh --local-vm ``` ## 🚩 命令行标志 | 标志 | 描述 | 使用场景 | |------|------|----------| | `--disable-root-login` | 自动禁用 root SSH 登录 | 自动化 / CI | | `--keep-root-login` | 保持 root SSH 登录启用 | 谨慎的管理员 | | `--local-vm` | 跳过 SSH 密钥检查 | 本地虚拟机测试 | | `--skip-user-creation` | 不创建新管理员 | 已有管理员设置 | | `--enable-pam-lockout` | 启用 PAM 锁定 | 高安全环境 | 示例: ``` sudo bash debian-ubuntu-hardening-script.sh --local-vm --keep-root-login ``` ## 🔧 脚本执行操作 **阶段 1:加固前** - 系统检查与 root 验证 - SSH 密钥检查(除非使用 `--local-vm`) - 创建安全管理员用户 - 验证 sudo 访问 **阶段 2:安装包** - 更新软件包 - 安装安全工具(Lynis、AIDE、RKHunter、Fail2Ban、auditd) **阶段 3:基线扫描** - 运行初始 Lynis 审计 **阶段 4:安全配置** - Fail2Ban、auditd、sysctl 加固 - 密码策略、AIDE 初始化 - SSH 加固 - 横幅设置与访问限制 **阶段 5:自动修复** - 修复文件权限 - 禁用未使用的模块 - 应用网络加固 - 应用 Lynis 建议 **阶段 6:验证** - 重新运行 Lynis - 完整性检查(debsums) - RKHunter 扫描 ## 🛡️ 安全特性 - 在禁用 root 前验证新管理员登录 - SSH 配置错误时自动回滚 - 可重复安全运行 ## ✅ 运行后操作 - 测试新管理员账户 - 验证 SSH 登录 - 查看日志与报告 ## 📄 日志与报告 日志存储在 `/var/log/` 以及脚本输出目录中。请检查: - Lynis 报告 - AIDE 数据库与扫描日志 - RKHunter 日志 ## 🔍 验证 推荐操作: ``` sudo lynis audit system sudo rkhunter --check ``` ## 🧯 故障排除 - 在确认新登录可用前保持 SSH 会话打开 - 使用 `--local-vm` 进行虚拟机测试 - 如果 SSH 损坏,从脚本创建的备份中恢复 ## ❓ 常见问题 **Q:这适用于 Ubuntu/Debian 服务器吗?** A:是的 — Debian 10+ 和 Ubuntu 18.04+。 **Q:可以多次运行吗?** A:可以 — 脚本设计为幂等。 ## 🤝 贡献 欢迎提交问题和 PR。 ## 📜 许可证 MIT 许可证。 ## ⚠️ 免责声明 本脚本会进行重大的安全变更。使用前请审阅代码,并在非生产环境中先测试。 ## 👤 作者 由 Kimi Autto 创建(github.com/Z-A-P-P-I-T)
标签:AIDE, Debian, GitHub Advanced Security, Lynis, RKHunter, rootkit检测, Shell脚本, SSH硬化, x64dbg, 企业级安全, 子域名枚举, 安全加固, 安全扫描, 安全日志, 安全最佳实践, 安全配置, 审计监控, 应用安全, 时序注入, 生产环境, 用户安全, 系统安全, 终端安全, 脚本安全, 自动化运维, 随机密码