# EM Script Library 🚀 **EM Script Library** - Debian 12 系统部署优化脚本库 专为解决国内 Debian 12 系统部署时的各种配置问题而设计,提供一站式自动化配置解决方案。 ## 📋 特性 - 🎯 **专注 Debian 12** - 专门针对 Debian 12 优化 - 🌏 **国内源支持** - 支持阿里云、清华、网易、中科大、华为云等多源 - 🔧 **模块化设计** - 独立脚本,便于调试和维护 - ⚡ **自动化配置** - 一键执行完整配置流程 - 🔒 **安全加固** - 内置安全配置和入侵检测 - 📊 **状态监控** - 提供详细的配置状态检查 ## 📁 目录结构 ``` em-script/ ├── em-setup.sh # 主入口脚本 ├── scripts/ │ ├── sources/ # 国内源配置 │ │ └── configure_sources.sh │ ├── packages/ # 包管理配置 │ │ └── configure_packages.sh │ ├── system/ # 系统配置 │ │ └── configure_system.sh │ ├── network/ # 网络优化 │ │ └── configure_network.sh │ └── security/ # 安全配置 │ └── configure_security.sh ├── config/ # 配置文件目录 ├── lib/ # 公共函数库 ├── docs/ # 文档 └── tests/ # 测试脚本 ``` ## 🚀 快速开始 ### 1. 下载脚本库 ```bash git clone https://github.com/your-repo/em-script.git cd em-script ``` ### 2. 给脚本执行权限 ```bash chmod +x em-setup.sh chmod +x scripts/*/*.sh ``` ### 3. 执行完整配置 ```bash sudo ./em-setup.sh all ``` ## 📖 使用方法 ### 主入口脚本 ```bash # 显示帮助信息 ./em-setup.sh -h # 执行完整配置 sudo ./em-setup.sh all # 配置国内源 sudo ./em-setup.sh sources aliyun # 配置系统 sudo ./em-setup.sh system # 配置网络 sudo ./em-setup.sh network # 配置安全 sudo ./em-setup.sh security ``` ### 单独执行脚本 ```bash # 配置阿里云源 sudo ./scripts/sources/configure_sources.sh aliyun # 安装基础工具 sudo ./scripts/packages/configure_packages.sh basic # 配置时区 sudo ./scripts/system/configure_system.sh timezone # 测试网络 sudo ./scripts/network/configure_network.sh network-test # 配置防火墙 sudo ./scripts/security/configure_security.sh fail2ban ``` ## 🔧 功能模块 ### 📡 国内源配置 (sources) - ✅ 阿里云镜像源 - ✅ 清华大学镜像源 - ✅ 网易镜像源 - ✅ 中科大镜像源 - ✅ 华为云镜像源 - ✅ 自动选择最快源 - ✅ 源配置备份恢复 ```bash # 配置阿里云源 sudo ./scripts/sources/configure_sources.sh aliyun # 自动选择最快源 sudo ./scripts/sources/configure_sources.sh test # 备份当前配置 sudo ./scripts/sources/configure_sources.sh backup ``` ### 📦 包管理配置 (packages) - ✅ apt 配置优化 - ✅ 基础工具安装 - ✅ 开发工具安装 - ✅ **Docker CE 安装 (国内源)** - ✅ **Docker 镜像加速器配置** - ✅ 网络工具安装 - ✅ 监控工具安装 - ✅ 包缓存清理 ```bash # 优化 apt 配置 sudo ./scripts/packages/configure_packages.sh optimize # 从国内源安装 Docker CE sudo ./scripts/packages/configure_packages.sh docker # 或单独运行 sudo ./scripts/packages/install_docker.sh # Docker 镜像加速器设置 sudo ./scripts/packages/setup_docker_mirrors.sh add aliyun # 添加阿里云镜像 sudo ./scripts/packages/setup_docker_mirrors.sh recommend # 设置推荐组合 sudo ./scripts/packages/setup_docker_mirrors.sh test # 测试镜像源速度 # 安装开发环境 (不含 Docker) sudo ./scripts/packages/configure_packages.sh dev # 查看包信息 sudo ./scripts/packages/configure_packages.sh info ``` ### ⚙️ 系统配置 (system) - ✅ 时区配置 (Asia/Shanghai) - ✅ NTP 时间同步 - ✅ 语言环境配置 - ✅ 系统限制优化 - ✅ SSH 服务配置 - ✅ UFW 防火墙配置 - ✅ 日志轮转配置 ```bash # 配置时区和 NTP sudo ./scripts/system/configure_system.sh timezone # 配置防火墙 sudo ./scripts/system/configure_system.sh firewall # 执行所有系统配置 sudo ./scripts/system/configure_system.sh all ``` ### 🌐 网络优化 (network) - ✅ DNS 配置 (国内 DNS) - ✅ DNS 解析速度测试 - ✅ 网络接口配置 - ✅ 代理配置 - ✅ 网络连接测试 - ✅ IPv6 支持配置 ```bash # 配置国内 DNS sudo ./scripts/network/configure_network.sh dns # 测试网络连接 sudo ./scripts/network/configure_network.sh network-test # 配置 HTTP 代理 sudo ./scripts/network/configure_network.sh proxy http 127.0.0.1 8080 # 查看网络信息 sudo ./scripts/network/configure_network.sh info ``` ### 🔒 安全配置 (security) - ✅ Fail2Ban 入侵检测 - ✅ 自动安全更新 - ✅ SSH 配置强化 - ✅ AppArmor 配置 - ✅ 内核安全参数 - ✅ ClamAV 杀毒软件 - ✅ sudo 安全策略 ```bash # 配置入侵检测 sudo ./scripts/security/configure_security.sh fail2ban # 强化 SSH 配置 sudo ./scripts/security/configure_security.sh ssh-harden # 查看安全状态 sudo ./scripts/security/configure_security.sh status ``` ## 🔍 测试和验证 ### 运行测试脚本 ```bash # 执行所有测试 bash tests/run_all_tests.sh # 测试源配置 bash tests/test_sources.sh # 测试网络连接 bash tests/test_network.sh ``` ### 验证配置结果 ```bash # 检查源配置 cat /etc/apt/sources.list # 检查 DNS 配置 cat /etc/resolv.conf # 检查防火墙状态 ufw status # 检查 SSH 配置 sshd -T | grep -E "(permitrootlogin|passwordauthentication)" # 检查安全状态 sudo ./scripts/security/configure_security.sh status ``` ## 📝 日志和调试 ### 日志位置 - 系统日志: `/var/log/syslog` - 认证日志: `/var/log/auth.log` - apt 日志: `/var/log/apt/` - Fail2Ban 日志: `/var/log/fail2ban.log` - 自定义日志: `/var/log/em-script/` ### 调试模式 ```bash # 启用调试模式运行 sudo DEBUG=1 ./em-setup.sh sources # 查看详细日志 tail -f /var/log/syslog # 检查脚本执行状态 echo $? ``` ## 🤝 贡献指南 1. Fork 本项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情 ## ⚠️ 注意事项 - 🔴 **生产环境使用前请务必测试** - 🔴 **建议在测试环境先验证配置** - 🔴 **重要操作前请备份数据** - 🔴 **定期更新系统和安全补丁** ## 🆘 常见问题 ### Q: 配置失败怎么办? A: 检查日志文件,常见问题: - 网络连接问题 - 权限不足 - 依赖包缺失 ### Q: 如何回滚配置? A: 大部分脚本都支持备份恢复: ```bash # 恢复源配置 sudo ./scripts/sources/configure_sources.sh restore /path/to/backup # 重新配置网络 sudo ./scripts/network/configure_network.sh interfaces ``` ### Q: 如何自定义配置? A: 编辑对应的配置文件: - `/etc/apt/sources.list` - 源配置 - `/etc/resolv.conf` - DNS 配置 - `/etc/ssh/sshd_config` - SSH 配置 ## 📞 联系我们 - 项目主页: [GitHub](https://github.com/your-repo/em-script) - 问题反馈: [Issues](https://github.com/your-repo/em-script/issues) - 邮箱: your-email@example.com --- ⭐ 如果这个项目对你有帮助,请给它一个 Star!