334 lines
7.4 KiB
Markdown
334 lines
7.4 KiB
Markdown
# 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! |