ARL(资产灯塔)从 Docker 安装到部署启动 完整详细流程(复习专用)

张开发
2026/4/4 10:50:44 15 分钟阅读
ARL(资产灯塔)从 Docker 安装到部署启动 完整详细流程(复习专用)
适用环境CentOS 7 系统本地虚拟机 / 物理机全程可落地每一步都标注避坑点适合复习复盘一、前置准备系统环境检查1. 系统版本确认bash运行# 确认CentOS 7系统 cat /etc/redhat-release # 输出示例CentOS Linux release 7.9.2009 (Core)避坑ARL 源码安装仅支持 CentOS 7/8、Ubuntu 20.04其他版本会出现依赖问题2. 关闭防火墙与 SELinux避免端口拦截bash运行# 1. 关闭firewalld防火墙永久生效重启不恢复 systemctl stop firewalld systemctl disable firewalld # 2. 临时关闭SELinux立即生效 setenforce 0 # 3. 永久关闭SELinux重启后生效避免后续拦截 sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config # 4. 验证状态确认关闭 getenforce # 输出Disabled 即为成功避坑SELinux 是 CentOS 隐藏防火墙即使 firewalld 关闭也会拦截网络请求必须关闭二、Docker 安装CentOS 7 国内源方案解决官方源超时1. 安装依赖包解决 yum 锁问题bash运行# 1. 解决yum锁PackageKit占用导致的报错 kill -9 $(ps -ef | grep PackageKit | grep -v grep | awk {print $2}) rm -f /var/run/yum.pid # 2. 安装Docker依赖 yum install -y yum-utils device-mapper-persistent-data lvm2 curl # 输出无须任何处理 即为依赖已安装成功避坑CentOS 7 默认会后台运行 PackageKit 自动更新会占用 yum 锁必须先杀进程删锁文件2. 配置 Docker 国内镜像源阿里云解决官方源连接失败bash运行# 1. 添加阿里云Docker CE源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 2. 替换源地址为阿里云确保后续安装走国内镜像 sed -i sdownload.docker.commirrors.aliyun.com/docker-ce /etc/yum.repos.d/docker-ce.repo # 3. 清理yum缓存并重建 yum clean all yum makecache fast避坑直接用官方源https://download.docker.com会被墙导致connection reset by peer必须用国内源3. 安装 Docker 引擎bash运行# 安装Docker CE、CLI、containerd.io、docker-compose插件 yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin # 验证安装成功 docker --version # 输出示例Docker version 26.1.0, build 9714adc4. 启动 Docker 并设置开机自启bash运行# 启动Docker服务 systemctl start docker # 设置开机自启 systemctl enable docker # 验证服务状态 systemctl status docker # 输出active (running) 即为正常5. 配置 Docker 镜像加速器可选提升拉取速度bash运行# 创建Docker配置目录 mkdir -p /etc/docker # 写入加速器配置科大镜像国内稳定 tee /etc/docker/daemon.json -EOF { registry-mirrors: [https://docker.mirrors.ustc.edu.cn, https://hub-mirror.c.163.com] } EOF # 重载配置并重启Docker systemctl daemon-reload systemctl restart docker # 验证加速器生效 docker info # 找到 Registry Mirrors 字段显示配置的镜像地址即为成功三、ARL资产灯塔部署源码自动化脚本方案零手动配置1. 下载 ARL 自动化部署脚本bash运行# 1. 安装git如果未安装 yum install -y git # 2. 克隆ARL社区维护版源码国内Gitee镜像避免GitHub访问失败 git clone https://gitee.com/Aabyss-Team/ARL.git cd ARL避坑原官方仓库TophantTechnology/ARL已删除必须用社区维护版否则下载失败2. 执行自动化部署脚本bash运行# 给脚本执行权限 chmod x misc/setup-arl.sh # 执行脚本 ./misc/setup-arl.sh脚本菜单操作步骤按顺序执行输入1→ 切换镜像源使用 LinuxMirrors首次安装必做将系统 yum 源换为国内源解决后续依赖下载慢问题输入2→ 源码安装支持 CentOS 7/8Ubuntu 20.04区分国内外环境选择「国内环境」脚本自动完成安装 Docker用国内源解决安装失败拉取 ARL 源码、配置环境启动 ARL Web 服务、Worker 服务可选输入5→ 添加指纹默认 7k 指纹仅限源码安装安装完成后执行补充大量指纹规则提升资产识别、漏洞扫描准确率可选输入6→ 安装 ARL 管理面板安装可视化管理面板输入arl命令即可唤起方便管理服务输入7→ 退出脚本脚本执行完成后会输出plaintextARL 安装完成 ARL 管理面板已安装成功 使用arl命令就可唤起面板 ARL 访问地址https://192.168.1.4:5003你的服务器内网IP 用户名admin 初始密码xxxxxx随机生成务必保存四、ARL 服务配置与端口监听修复解决公网 / 内网访问失败1. 核心问题默认仅本地监听需修改配置对外访问bash运行# 1. 进入ARL配置目录 cd /opt/ARL/app # 2. 备份原配置防止出错 cp config.py config.py.bak # 3. 修改配置监听所有网卡、端口5003、关闭SSL用HTTP访问 sed -i s/host 127.0.0.1/host 0.0.0.0/ config.py sed -i s/port 5013/port 5003/ config.py sed -i s/ssl True/ssl False/ config.py # 4. 重启ARL服务让配置生效 systemctl restart arl-web.service systemctl restart arl-worker.service # 5. 验证端口监听关键必须显示*:5003 ss -tulnp | grep 5003 # 正常输出 # tcp LISTEN 0 128 *:5003 *:* users:((nginx,pidxxxx,fd7),...)避坑脚本默认将 ARL 绑定到127.0.0.1:5013仅本地可访问必须修改为0.0.0.0:5003否则外网 / 其他设备无法访问2. 验证服务状态bash运行# 检查ARL Web服务状态 systemctl status arl-web.service # 检查ARL Worker服务状态 systemctl status arl-worker.service # 输出active (running) 即为正常五、ARL 访问与登录1. 内网访问本地虚拟机 / 局域网内访问地址http://你的服务器内网IP:5003示例http://192.168.1.4:5003用户名admin初始密码脚本随机生成若忘记可在/opt/ARL/app/config.py中查看ADMIN_PASSWORD字段避坑不要用公网 IP 访问本地虚拟机会因路由器端口未映射导致超时必须用内网 IP2. 公网访问可选需路由器端口映射如果需要在外网访问需在家庭路由器中配置端口映射内网 IP192.168.1.4你的虚拟机 IP内网端口5003外网端口5003协议TCP配置完成后即可用公网 IP 访问http://你的公网IP:5003六、常见问题排查复习重点踩坑解决方案1. yum 锁问题PackageKit 占用报错/var/run/yum.pid 已被锁定PID 为 xxxx 的另一个程序正在运行解决bash运行kill -9 $(ps -ef | grep PackageKit | grep -v grep | awk {print $2}) rm -f /var/run/yum.pid2. Docker 源连接失败报错Could not fetch/save url https://download.docker.com/linux/centos/docker-ce.repo解决用阿里云源重新配置执行步骤二的 2 小节3. 端口访问超时ERR_CONNECTION_TIMED_OUT原因服务仅监听127.0.0.1未对外监听防火墙 / 安全组未放行 5003 端口用公网 IP 访问本地虚拟机未做端口映射解决执行步骤四的 1 小节修改监听地址为0.0.0.0关闭防火墙 / 放行 5003 端口用内网 IP 访问或配置路由器端口映射4. Telnet 命令无法识别Windows报错telnet : 无法将“telnet”项识别为 cmdlet解决用 PowerShell 自带的端口测试命令powershellTest-NetConnection 你的服务器IP -Port 5003 # 输出TcpTestSucceeded : True 即为端口通5. Nginx 反向代理问题端口监听正常但无法访问原因Nginx 配置错误未正确转发到 ARL 的 5013 端口解决bash运行# 编辑Nginx配置 vi /etc/nginx/conf.d/arl.conf # 写入正确配置 server { listen 5003; server_name _; location / { proxy_pass http://127.0.0.1:5013; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } # 验证配置并重启Nginx nginx -t systemctl restart nginx七、登录后必做操作安全 功能优化1. 第一时间修改初始密码登录后进入「个人中心」→「修改密码」更换强密码避免被暴力破解2. 更新指纹库进入「系统设置」→「指纹管理」→「更新指纹」获取最新的资产识别规则提升扫描准确率3. 熟悉核心功能资产发现批量扫描网段梳理内网 / 公网资产漏洞扫描集成 POC一键扫描目标漏洞子域名收集自动化收集站点子域名信息收集神器端口扫描全端口快速扫描定位开放服务4. 定期备份数据bash运行# 备份ARL数据库MongoDB mongodump -h 127.0.0.1:27017 -d arl -o /opt/arl_backup/$(date %Y%m%d)八、ARL 服务管理命令日常运维bash运行# 启动ARL服务 systemctl start arl-web.service systemctl start arl-worker.service # 停止ARL服务 systemctl stop arl-web.service systemctl stop arl-worker.service # 重启ARL服务 systemctl restart arl-web.service systemctl restart arl-worker.service # 查看ARL服务状态 systemctl status arl-web.service systemctl status arl-worker.service # 查看ARL日志 journalctl -u arl-web.service -f journalctl -u arl-worker.service -f # 唤起ARL管理面板 arl九、关键知识点总结帮你彻底理解原理IP 地址原理192.168.x.x是内网 IP仅局域网内可访问公网 IP 是运营商给家庭 / 服务器的出口 IP需端口映射才能访问内网设备端口监听原理127.0.0.1:5013仅本地可访问外部无法连接0.0.0.0:5003监听所有网卡所有设备可访问防火墙原理firewalld 是 CentOS 用户态防火墙SELinux 是内核态防火墙两者都会拦截网络请求反向代理原理Nginx 监听 5003 端口将请求转发到 ARL 的 5013 端口实现外网访问

更多文章