em-script/README.md

334 lines
7.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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