【Docker项目实战】使用Docker部署NetAlertX网络扫描器
【Docker项目实战】使用Docker部署NetAlertX网络扫描器
一、NetAlertX介绍
1.1 NetAlertX 工具简介
NetAlertX
是一款网络入侵者和存在检测工具,它通过扫描连接到您网络的设备并在发现新的未知设备时发出警报来保护您的网络安全。
1.2 主要特点
- 全面的网络扫描:监控新设备接入、重新连接、断开连接、“始终连接”设备状态变化、设备IP地址变更及互联网IP地址变化。
- 多样的发现与扫描方法:支持多种扫描方式如 arp-scan、Pi-hole 数据库/DHCP租约导入、通用DHCP租约导入、UNIFI控制器导入及SNMP路由器导入等。
- 广泛的通知网关支持:能够向超过80种服务发送通知,包括通过Apprise集成的Telegram以及原生Pushsafer、Pushover或NTFY发布者。
- 强大的集成与插件系统:可以将数据和设备变更信息输入Home Assistant,使用Webhooks设置自定义自动化流程,并且用户可以利用插件系统快速构建自己的扫描器。
- 灵活的工作流模块:提供工作流模块以自动化重复任务,增强网络管理效率,比如自动分配新发现的设备到特定网络节点、根据供应商自动分组设备等。
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为|Ubuntu 22.04.1。
hostname | IP地址 | 操作系统版本 | Docker版本 | 项目名称 |
---|---|---|---|---|
jeven01 | 192.168.3.88 | Ubuntu 22.04.1 | LTS 24.0.7 | NetAlertX网络扫描器 |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署napp自托管短链接工具。
三、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。
root@jeven01:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2025-04-20 07:26:39 UTC; 1 week 1 day ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 1063 (dockerd)
Tasks: 80
Memory: 2.2G
CPU: 5min 46.692s
CGroup: /system.slice/docker.service
├─ 1063 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
3.2 检查Docker版本
检查Docker版本
root@jeven01:~# docker -v
Docker version 24.0.7, build 24.0.7-0ubuntu2~22.04.1
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
root@jeven01:~# docker compose version
Docker Compose version v2.19.1
四、下载NetAlertX镜像
执行以下命令,拉取以下NetAlertX镜像。
root@jeven01:~# docker pull jokobsk/netalertx:25
25: Pulling from jokobsk/netalertx
f18232174bc9: Already exists
3214a9cdd72f: Pull complete
8a318d0babe7: Pull complete
fbe43fdcd7ff: Pull complete
09f197029662: Pull complete
6825ededaa86: Pull complete
fe9fcb62365f: Pull complete
Digest: sha256:e0b41d90a57b0237f81b8daa787935e68ae59ad62bb5cb7c371b420b7c78ca32
Status: Downloaded newer image for jokobsk/netalertx:25
docker.io/jokobsk/netalertx:25
五、部署NetAlertX应用
5.1 创建部署目录
- 创建部署目录
mkdir -p /data/netalertx && cd /data/netalertx
5.2 编辑部署文件
- docker-cli部署方式,可参考以下命令:
docker run -d --rm --network=host \
-v local_path/config:/app/config \
-v local_path/db:/app/db \
--mount type=tmpfs,target=/app/api \
-e PUID=200 -e PGID=300 \
-e TZ=Europe/Berlin \
-e PORT=20211 \
ghcr.io/jokob-sk/netalertx:latest
本次实践使用docker compose方式部署,在部署目录下,创建docker-compose.yaml文件,其中宿主机映射端口等可以自定义配置。
vim docker-compose.yaml
version: '3.9'
services:
netalertx:
image: jokobsk/netalertx:25
container_name: netalertx
network_mode: host
environment:
- PUID=200
- PGID=300
- TZ=Asia/Shanghai
- PORT=20211
volumes:
- /data/netalertx/config:/app/config
- /data/netalertx/db:/app/db
- type: tmpfs
target: /app/api
restart: always
- 环境变量说明
变量名 | 描述 | 示例值 |
---|---|---|
PORT |
Web 界面的端口号 | 20211 |
PUID |
应用程序用户的 UID | 102 |
PGID |
应用程序用户的 GID | 82 |
LISTEN_ADDR |
设置 nginx Web 服务器监听的特定 IP 地址。可用于多子网环境下隐藏 Web 界面以保护不受信任的网络 | 0.0.0.0 |
TZ |
显示统计信息时使用的时区。 | Europe/Berlin |
LOADED_PLUGINS |
默认加载的插件列表。插件无法通过 APP_CONF_OVERRIDE 加载,必须使用此变量指定,并通过 APP_CONF_OVERRIDE 配置插件设置 |
["PIHOLE","ASUSWRT"] |
APP_CONF_OVERRIDE |
使用 JSON 格式覆盖默认设置(LOADED_PLUGINS 除外)。 |
{"SCAN_SUBNETS":"['192.168.1.0/24 --interface=eth1']","GRAPHQL_PORT":"20212"} |
ALWAYS_FRESH_INSTALL |
如果为 true ,将删除 /db 和 /config 文件夹的内容。仅用于测试目的,可与 Watchtower 结合使用以始终保持最新安装的镜像 |
true |
5.4 创建NetAlertX容器
执行以下命令,创建NetAlertX容器。
root@jeven01:/data/netalertx# docker compose up -d
[+] Running 1/1
✔ Container netalertx Started 0.1s
5.5 查看NetAlertX容器状态
检查NetAlertX容器状态状态,确保NetAlertX容器正常启动。
root@jeven01:/data/netalertx# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
netalertx jokobsk/netalertx:25 "/init" netalertx 31 seconds ago Up 31 seconds (healthy)
5.6 检查NetAlertX容器日志
检查NetAlertX容器日志,确保NetAlertX服务正常运行。
docker compose logs
六、访问NetAlertX服务
6.1 访问主页
访问地址:http://192.168.3.88:20211,将IP替换为自己服务器IP地址。如果无法访问到以下页面,则检查宿主机的防火墙是否关闭或者放行相关端口,云服务器则还需要设置安全组规则。注意需要等待一段时间后,系统才能正常访问。
6.2扫描设备
我们在settings ——Networks to scan中,添加本地网段,这里环境为192.168.3.0/24,这里端口为enp6s18(宿主机本地网卡名称),更新后,点击“add”。填写完毕后,保存配置即可。
- 在ARPSCAN_RUN模块中,点击扫描设备。
- 扫描完毕后,点击Network ,可以看到如下效果:
七、总结
通过本次实战,我们成功地使用 Docker 部署了 NetAlertX 网络扫描器,体验了从环境准备到服务部署的全过程。NetAlertX 强大的网络监控和设备管理功能让我们能够更有效地保护网络安全,同时其灵活的通知系统和工作流模块也极大地提升了管理效率。这次实践不仅增强了我们对 Docker 和容器化应用的理解,也为今后处理网络安全问题提供了宝贵的实践经验和技术储备。未来,我们可以进一步探索 NetAlertX 的高级功能,并尝试将其集成到现有的网络管理体系中。
- 点赞
- 收藏
- 关注作者
评论(0)