marcelofmatos/phpnetmap

GitHub: marcelofmatos/phpnetmap

基于 PHP 和 SNMP 协议的网络设备拓扑映射与端口监控 Web 应用,帮助运维人员可视化以太网连接并管理交换机端口状态。

Stars: 51 | Forks: 17

# PHPNetMap [README.pt-BR](https://github.com/marcelofmatos/phpnetmap/blob/master/README.pt-BR.md) 用于网络设备监控的 PHP 软件,支持 SNMP v(1/2c/3) 协议。已在 3Com/HP、ProCurve、Dell 和 Extreme 设备上通过测试。 其他一些支持 SNMP 的型号也能正常工作。 框架采用 [yii](http://www.yiiframework.com/),并使用了 [Bootstrap](http://www.yiiframework.com/extension/bootstrap) [Colorpicker](http://www.yiiframework.com/extension/colorpicker) 和 [CAdvancedArBehavior](http://www.yiiframework.com/extension/cadvancedarbehavior)。 地图功能使用了 JavaScript [D3](http://d3js.org/) 库。 ## 工作原理 PHPNetMap 根据 [FIB](https://en.wikipedia.org/wiki/Forwarding_information_base) 或交换机的 CAM 表以及设备的 [ARP](https://en.wikipedia.org/wiki/Address_Resolution_Protocol) 表 来显示已连接的主机。您可以通过搜索表单在多台 设备中查询这些表。通过地图视图,您可以查看主机之间的连接情况,并且每个主机都有一个界面显示端口状态及其 各自连接的主机。您可以查看端口的操作状态,以及 在支持 dot1dStpPortState OID 的交换机上查看 [Spanning Tree Protocol](https://en.wikipedia.org/wiki/Spanning_Tree_Protocol) 的状态。使用具有读/写权限的 SNMP community,您可以更改 ifAdminStatus 或设置 ifAlias。 # PHPNetMap 与 Docker [![](https://images.microbadger.com/badges/image/marcelofmatos/phpnetmap.svg)](https://microbadger.com/images/marcelofmatos/phpnetmap "在 microbadger.com 上获取您自己的 image badge") 我创建了一个包含所有配置的 Docker image,可直接运行 PHPNetMap, 可在 [Docker Hub](https://hub.docker.com/r/marcelofmatos/phpnetmap/) 上获取。 使用项目根目录下的 docker-compose.yml,您只需在项目 目录中运行 `docker-compose up` 命令即可下载 image 并启动 系统。请注意服务器配置,确保以生产模式运行(例如,在 ADMIN_PASSWORD 环境变量中设置密码)。根据需要修改 docker-compose.yml。 ## 安装 Docker ``` curl -ssl https://get.docker.com/ | sh ``` 创建并运行单个 container ``` docker run -p 80:80 --name=server1 marcelofmatos/phpnetmap ``` 打开 Web 浏览器并访问 http://;如果 `docker run` 是在本地计算机上执行的,请访问 http://localhost HTTP 用户名为 'admin',密码为 ADMIN_PASSWORD 环境变量中设置的字符串。 如果您希望在其他端口运行 container: ``` docker run -p 8081:80 --name=server1 marcelofmatos/phpnetmap ``` 然后打开 http://localhost:8081 管理 container: ``` docker start server1 docker stop server1 ``` 设置 HTTP 用户名和密码: ``` docker run -p 80:80 --name=server1 -e ADMIN_USER=admin -e ADMIN_PASSWORD=pnm marcelofmatos/phpnetmap ``` 如果未设置 ADMIN_USER,则默认值为 'admin'。 如果未设置 ADMIN_PASSWORD,系统将设置一个随机值并将其打印在 container 日志中。 查看 container 日志 ``` docker logs server1 ``` 更多信息请参阅 https://docs.docker.com/engine/getstarted/ ## 构建 image(multi-arch) 该 image 是基于官方 `php:7.4-apache` 基础镜像,通过本仓库中的 `Dockerfile` 构建的,因此它可以同时在 **linux/amd64** 和 **linux/arm64**(Raspberry Pi、Apple Silicon、ARM 服务器)上运行。 要在本地为这两个平台构建并推送到 registry: ``` docker buildx build --platform linux/amd64,linux/arm64 \ -t ghcr.io/marcelofmatos/phpnetmap:dev --push . ``` 为当前主机构建单架构 image 并在本地加载: ``` docker build -t phpnetmap . docker run -p 80:80 phpnetmap ``` 检查发布的 manifest(列出 `amd64` 和 `arm64`): ``` docker buildx imagetools inspect ghcr.io/marcelofmatos/phpnetmap:latest ``` ## 结合 docker-compose 使用 使用以下命令安装 docker-compose ``` apt-get install python-pip pip install docker-compose ``` 运行 [docker-compose.yml](https://github.com/marcelofmatos/phpnetmap/blob/master/docker-compose.yml) 中的配置: ``` docker-compose up ``` 运行特定的 YML 文件,例如 [docker-compose-multiple-servers.yml](https://github.com/marcelofmatos/phpnetmap/blob/master/docker-compose-multiple-servers.yml): ``` docker-compose -f docker-compose-multiple-servers.yml up ``` # 服务器 该软件已在 Debian 和 Ubuntu Server 上经过测试,并安装了以下 软件包: * apache2 * libapache2-mod-php5 * php5-snmp * php5-sqlite * php-apc * snmpd * sqlite3 登录信息配置在 .htaccess 和 .htpasswd 中,因此必须配置 apache 以 读取这些指令。 # 截图 ## 主页 ![主页截图](https://static.pigsec.cn/wp-content/uploads/repos/cas/96/9660358c30549a3f7944e2c465882f18956f3673856ac3408f76d857deb9b615.png) ## 主机和网络地图 ![主机截图](https://static.pigsec.cn/wp-content/uploads/repos/cas/50/50174c6a6aa821a0bd4991117fdab69d11bc537f965350aa4e9c7a789157b4c1.png) ## 流量端口 ![流量截图](https://static.pigsec.cn/wp-content/uploads/repos/cas/ff/ff495f94462dc3b462551e7f14e10f2188a7e820414030103e6f40cbd41bef62.png) # 参考资料 * http://www.yiiframework.com/ * http://d3js.org/ * https://docs.docker.com/engine/getstarted/ * https://docs.docker.com/engine/installation/ * https://docs.docker.com/compose/compose-file/
标签:Docker, Docker 部署, ffuf, OpenVAS, PHP, SNMP监控, 以太网映射, 安全防御评估, 流量捕获, 网络拓扑, 网络运维, 请求拦截