保姆级教程:在CentOS 8.2上用Docker-Compose一键部署ARL灯塔资产系统
零基础实战:CentOS 8.2环境下的ARL灯塔资产侦察系统高效部署指南
当你第一次接触网络安全资产侦察时,面对海量工具往往无从下手。ARL灯塔系统就像黑暗中的探照灯,能快速扫描暴露在互联网的资产端口、子域名和敏感信息。不同于传统手动扫描工具,它通过Docker容器化部署,将复杂的依赖环境打包成开箱即用的解决方案。本教程专为刚接触网络安全的新手设计,即使你从未使用过Docker,也能在30分钟内完成全套部署。
1. 环境准备:打造坚如磐石的部署基础
1.1 系统初始化检查
在开始前,请确保你的CentOS 8.2系统满足以下条件:
- 已配置sudo权限的非root用户
- 内存≥4GB(ARL运行时约占用3.5GB)
- 磁盘空间≥20GB
- 开放5003端口的防火墙规则
执行以下命令进行基础环境检测:
# 检查系统版本 cat /etc/redhat-release # 检查内存和存储 free -h && df -h # 检查SELinux状态(建议关闭) getenforce1.2 Docker引擎的智能安装方案
虽然官方文档建议自行安装Docker,但我们推荐使用自动化脚本避免版本冲突:
# 一键安装Docker CE最新稳定版 curl -fsSL https://get.docker.com | sh # 配置镜像加速(替换为你获得的阿里云或腾讯云加速地址) sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://your-mirror.mirror.aliyuncs.com"] } EOF # 启动并设置开机自启 sudo systemctl enable --now docker注意:若出现
Failed to start docker.service: Unit not found错误,尝试先执行sudo yum install -y device-mapper-persistent-data lvm2安装依赖
1.3 Docker-Compose的版本陷阱规避
网络上的安装教程常忽略版本兼容性问题。ARL要求docker-compose≥1.25.0,但CentOS 8默认源中的版本往往过低。推荐以下方式安装指定版本:
# 卸载旧版(如有) sudo pip uninstall docker-compose # 安装Python3和pip3 sudo yum install -y python3 sudo pip3 install --upgrade pip # 安装特定版本docker-compose sudo pip3 install docker-compose==1.29.2 # 验证版本 docker-compose --version2. ARL部署实战:从拉取到启动的全流程解析
2.1 镜像下载的加速技巧
直接拉取官方镜像可能因网络问题失败,可尝试以下方法:
# 方法1:使用国内镜像仓库 docker pull registry.cn-hangzhou.aliyuncs.com/tophant/arl # 方法2:设置HTTP代理(需替换实际参数) export HTTP_PROXY=http://proxy_ip:port && export HTTPS_PROXY=http://proxy_ip:port docker pull tophant/arl2.2 代码仓库克隆的备选方案
当git clone因网络问题失败时,不要慌张:
# 常规克隆命令 git clone https://github.com/TophantTechnology/ARL # 备用方案1:使用SSH协议 git clone git@github.com:TophantTechnology/ARL.git # 备用方案2:下载ZIP包 wget https://github.com/TophantTechnology/ARL/archive/refs/heads/master.zip unzip master.zip && mv ARL-master ARL2.3 数据卷创建的隐藏要点
创建数据库卷时添加参数可优化性能:
docker volume create --driver local --name=arl_db \ --opt type=ext4 \ --opt device=/dev/sdb1 \ # 建议指定独立磁盘 --opt o=uid=1000,gid=10003. 启动与验证:确保系统健康运行
3.1 服务启动的进阶参数
在docker-compose启动前,建议修改默认配置:
# 编辑ARL目录下的docker-compose.yml version: '3' services: web: image: tophant/arl ports: - "5003:5003" volumes: - ./config.yaml:/opt/ARL/config.yaml # 挂载自定义配置 environment: - TZ=Asia/Shanghai # 设置时区 deploy: resources: limits: cpus: '2' memory: 4G启动命令建议添加日志输出:
# 后台启动并实时查看日志 docker-compose up -d && docker-compose logs -f --tail=1003.2 服务状态的多维度检查
仅用docker-compose ps可能无法发现深层次问题,推荐完整检查方案:
# 检查容器运行状态 docker ps -a --filter "name=arl" # 检查服务端口监听 ss -tulnp | grep 5003 # 检查服务日志中的错误 docker logs arl_web_1 2>&1 | grep -i error # 测试API接口响应 curl -k https://localhost:5003/api/ # 应返回401未授权4. 故障排除:常见问题与解决方案
4.1 端口冲突处理
当5003端口被占用时,可修改映射端口:
# 修改docker-compose.yml中的ports配置 ports: - "5004:5003" # 外部访问改为5004端口4.2 数据库连接失败
若出现database connection error,尝试重建数据卷:
docker-compose down -v # 删除旧数据卷 docker volume rm arl_db docker volume create --name=arl_db docker-compose up -d4.3 内存不足导致崩溃
通过限制资源使用防止OOM:
# 临时解决方案:停止其他容器释放内存 docker stats # 查看资源占用 docker stop $(docker ps -q | grep -v arl) # 永久方案:修改docker-compose资源配置 deploy: resources: limits: memory: 3.5G reservations: memory: 2G5. 安全加固与日常维护
5.1 修改默认凭证
首次登录后务必修改admin密码:
# 进入容器执行密码修改 docker exec -it arl_web_1 python3 manage.py changepassword admin # 或通过Web界面:设置→账户安全5.2 定期备份策略
创建自动化备份脚本/opt/backup_arl.sh:
#!/bin/bash BACKUP_DIR=/opt/arl_backups mkdir -p $BACKUP_DIR docker exec arl_db_1 sh -c 'exec mongodump --archive' > $BACKUP_DIR/arl_$(date +%Y%m%d).archive # 保留最近7天备份 find $BACKUP_DIR -type f -mtime +7 -delete添加到cron计划任务:
chmod +x /opt/backup_arl.sh (crontab -l ; echo "0 3 * * * /opt/backup_arl.sh") | crontab -5.3 版本升级指南
升级前务必做好备份,然后执行:
cd ARL git pull origin master docker-compose down docker pull tophant/arl docker-compose up -d