# 可乐音乐自动部署与安全加固系统

**目标：** 实现一键自动安装部署模式，完成服务器环境初始化、应用部署及安全加固
**技术栈：** Bash Shell 脚本 + Systemd 服务 + 配置文件模板

---

## Task 1: 自动安装主控脚本

> 核心入口脚本，检测环境、调用各模块完成全自动部署

**文件：** `auto-install.sh`

- [x] 系统环境检测（CentOS 版本、磁盘空间、内存）
- [x] 目录结构自动创建（/mnt/www、/mnt/logs、/mnt/mysql）
- [x] 依赖软件自动安装（Apache、MySQL、PHP8.0、Redis）
- [x] 配置文件模板渲染（根据环境变量生成配置）
- [x] 服务启动与状态验证
- [x] 部署完成报告生成

---

## Task 2: Web 服务自动部署模块

> Apache + PHP 环境自动配置，可乐音乐应用部署

**文件：** `deploy-web.sh`

- [x] Apache 虚拟主机配置生成（指向/mnt/www）
- [x] PHP8.0 及必备扩展自动安装（mysqli、gd、mbstring、redis 等）
- [x] 可乐音乐文件部署到/mnt/www 目录
- [x] 静态资源缓存策略配置
- [x] Web 服务启动与健康检查

---

## Task 3: 数据库自动部署模块

> MySQL 服务初始化，数据目录迁移至/mnt/mysql

**文件：** `deploy-database.sh`

- [x] MySQL 数据目录迁移到/mnt/mysql
- [x] 数据库初始化与 root 密码安全设置
- [x] 可乐音乐数据库自动创建
- [x] 数据库用户权限最小化配置
- [x] 定时备份任务自动配置

---

## Task 4: 日志系统自动部署模块

> 集中式日志管理，日志目录配置为/mnt/logs

**文件：** `deploy-logging.sh`

- [x] 日志目录结构初始化（access、error、application、security）
- [x] Apache 日志路径重定向到/mnt/logs
- [x] 应用日志统一收集配置
- [x] 日志轮转策略自动配置（logrotate）
- [x] 日志分析工具部署（GoAccess）

---

## Task 5: SSH 安全加固模块

> SSH 服务深度加固，禁用危险配置

**文件：** `harden-ssh.sh`

- [x] SSH 配置备份与版本控制
- [x] 禁用 root 直接登录（PermitRootLogin no）
- [x] 禁用密码认证，强制密钥认证（PasswordAuthentication no）
- [x] 修改默认端口（建议改为非 22 端口）
- [x] 限制登录用户白名单（AllowUsers）
- [x] 会话超时与连接数限制配置
- [x] SSH 服务重启与连接测试

---

## Task 6: 文件权限策略优化模块

> 全局文件权限审计与自动修复

**文件：** `harden-permissions.sh`

- [ ] /mnt/www 目录权限标准化（755 目录、644 文件）
- [ ] /mnt/mysql 目录权限加固（700 数据文件）
- [ ] /mnt/logs 目录权限配置（755 目录、644 日志文件）
- [ ] SUID/SGID 特权文件审计标记
- [ ] 敏感配置文件权限修复（my.cnf、ssh_config 等）
- [ ] 权限变更日志记录与报告

---

## Task 7: 入侵检测系统部署模块

> 实时入侵检测与防御系统部署

**文件：** `deploy-ids.sh`

- [ ] Fail2ban 自动安装与配置（防暴力破解）
- [ ] 自定义防护规则（SSH、Apache、MySQL）
- [ ] 端口扫描检测与自动封禁
- [ ] Web 应用防火墙基础规则（ModSecurity）
- [ ] 异常行为检测脚本部署
- [ ] IDS 服务启动与规则测试

---

## Task 8: 安全监控告警模块

> 全方位安全监控与实时告警

**文件：** `deploy-monitoring.sh`

- [ ] 系统资源监控（CPU、内存、磁盘、网络）
- [ ] 安全事件监控（登录失败、权限变更、文件篡改）
- [ ] 告警规则配置（阈值、频率、升级策略）
- [ ] 多渠道告警通知（邮件、Webhook、日志）
- [ ] 监控 Dashboard 部署
- [ ] 告警测试与验证

---

## Task 9: MySQL 配置权限修复模块

> 数据库安全配置与权限加固

**文件：** `harden-mysql.sh`

- [ ] MySQL 配置文件权限修复（my.cnf 644）
- [ ] 删除匿名用户与测试数据库
- [ ] 远程 root 访问禁用
- [ ] 数据库审计日志启用
- [ ] 连接数与资源限制配置
- [ ] 安全参数加固（local_infile、symbolic-links 等）

---

## Task 10: 部署验证与报告模块

> 全链路验证与部署报告生成

**文件：** `verify-deployment.sh`

- [ ] 各服务状态验证（Apache、MySQL、Redis、PHP）
- [ ] 端口连通性测试（80、443、3306、6379）
- [ ] 安全基线扫描验证
- [ ] 性能基准测试
- [ ] 部署报告 HTML 生成（含状态、配置、建议）
- [ ] 回滚方案文档生成

---

## 执行顺序

```bash
# 一键执行全部部署
sudo ./auto-install.sh

# 或分步执行
sudo ./deploy-web.sh
sudo ./deploy-database.sh
sudo ./deploy-logging.sh
sudo ./harden-ssh.sh
sudo ./harden-permissions.sh
sudo ./deploy-ids.sh
sudo ./deploy-monitoring.sh
sudo ./harden-mysql.sh
sudo ./verify-deployment.sh
```