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 安全加固脚本
[](https://opensource.org/licenses/MIT)
[](https://www.gnu.org/software/bash/)
[](https://www.debian.org/)
[](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, 企业级安全, 子域名枚举, 安全加固, 安全扫描, 安全日志, 安全最佳实践, 安全配置, 审计监控, 应用安全, 时序注入, 生产环境, 用户安全, 系统安全, 终端安全, 脚本安全, 自动化运维, 随机密码