ARL资产侦察灯塔部署与实战:从Docker环境搭建到自动化扫描策略
1. 项目概述:一次完整的资产侦察灯塔部署实录
最近在梳理内部网络资产,发现手动维护的Excel表格越来越力不从心。资产IP变了、端口服务更新了,靠人工去一个个扫描核对,效率低还容易遗漏。正好团队有安全巡检的需求,就决定在云服务器上部署一套ARL(Asset Reconnaissance Lighthouse,资产侦察灯塔),把资产发现、端口扫描、服务识别这些活儿自动化起来。
ARL是斗象能力中心开源的一款自动化资产侦察工具,它集成了子域名枚举、端口扫描、服务识别、指纹识别、漏洞探测等多个模块,能通过一个Web界面集中管理和查看资产信息。对于安全运维、红队演练或者只是单纯想摸清自己家底的IT管理员来说,都非常实用。这次我选择在一台新购置的云服务器上从头搭建,记录下从环境准备、安装部署、配置优化到实际使用的全过程,过程中遇到的坑和解决技巧也会一并分享。
2. 环境准备与规划
2.1 服务器选型与系统初始化
部署ARL的第一步是准备一台合适的服务器。ARL的组件包括前端Web、后端API、任务队列(Redis)、数据库(MongoDB)以及多个扫描引擎,对资源有一定要求。
我选择的是某主流云服务商的通用计算型实例,配置为2核4GB内存,系统盘50GB SSD。这个配置对于中小规模的资产侦察任务来说是起步线。如果资产量很大(例如子域名超过数万),或者需要高并发扫描,建议将内存提升到8GB或以上。
操作系统我选择了Ubuntu 22.04 LTS。选择LTS(长期支持)版本是为了系统的稳定性和长期的安全更新支持。在购买并启动云服务器后,第一件事就是进行基础安全加固:
- 更新系统源与软件包:
sudo apt update && sudo apt upgrade -y,确保系统处于最新状态。 - 修改SSH端口并禁用root登录:这是云服务器安全的基本操作。编辑
/etc/ssh/sshd_config文件,修改Port为非常用端口(如2222),并将PermitRootLogin设置为no。重启SSH服务生效。 - 配置防火墙:使用
ufw简单防火墙。只开放必要的端口:SSH端口(如2222)、ARL的Web端口(默认5003)、以及MongoDB和Redis如果需要在外部管理的话(但生产环境不建议对外)。命令如下:BASHsudo ufw allow 2222/tcpsudo ufw allow 5003/tcpsudo ufw --force enable
注意:云服务商的控制台通常也有安全组(或防火墙)配置,务必确保两边的规则一致,即控制台安全组也放行了你设置的SSH端口和ARL的Web端口,否则无法访问。
2.2 核心依赖安装:Docker与Docker Compose
ARL官方推荐使用Docker Compose进行一键化部署,这能极大简化复杂应用的管理,避免环境污染。因此,我们需要先安装Docker引擎和Docker Compose插件。
对于Ubuntu 22.04,安装步骤如下:
安装完