em-script/README.md

7.4 KiB
Raw Blame History

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. 下载脚本库

git clone https://github.com/your-repo/em-script.git
cd em-script

2. 给脚本执行权限

chmod +x em-setup.sh
chmod +x scripts/*/*.sh

3. 执行完整配置

sudo ./em-setup.sh all

📖 使用方法

主入口脚本

# 显示帮助信息
./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

单独执行脚本

# 配置阿里云源
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)

  • 阿里云镜像源
  • 清华大学镜像源
  • 网易镜像源
  • 中科大镜像源
  • 华为云镜像源
  • 自动选择最快源
  • 源配置备份恢复
# 配置阿里云源
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 镜像加速器配置
  • 网络工具安装
  • 监控工具安装
  • 包缓存清理
# 优化 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 防火墙配置
  • 日志轮转配置
# 配置时区和 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 支持配置
# 配置国内 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 安全策略
# 配置入侵检测
sudo ./scripts/security/configure_security.sh fail2ban

# 强化 SSH 配置
sudo ./scripts/security/configure_security.sh ssh-harden

# 查看安全状态
sudo ./scripts/security/configure_security.sh status

🔍 测试和验证

运行测试脚本

# 执行所有测试
bash tests/run_all_tests.sh

# 测试源配置
bash tests/test_sources.sh

# 测试网络连接
bash tests/test_network.sh

验证配置结果

# 检查源配置
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/

调试模式

# 启用调试模式运行
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 文件了解详情

⚠️ 注意事项

  • 🔴 生产环境使用前请务必测试
  • 🔴 建议在测试环境先验证配置
  • 🔴 重要操作前请备份数据
  • 🔴 定期更新系统和安全补丁

🆘 常见问题

Q: 配置失败怎么办?

A: 检查日志文件,常见问题:

  • 网络连接问题
  • 权限不足
  • 依赖包缺失

Q: 如何回滚配置?

A: 大部分脚本都支持备份恢复:

# 恢复源配置
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 配置

📞 联系我们


如果这个项目对你有帮助,请给它一个 Star