【Docker项目实战】使用Docker部署NetAlertX网络扫描器

举报
江湖有缘 发表于 2025/04/30 00:25:42 2025/04/30
【摘要】 【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 的高级功能,并尝试将其集成到现有的网络管理体系中。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。