Reportingreverse-proxygraphviznetwork-topologynmapvisualizationyaml

Reverse Proxy Grapher

rev-proxy-grapher generates Graphviz graphs illustrating reverse proxy flows from a YAML topology file. It optionally incorporates nmap XML files for port and service details.

Description

rev-proxy-grapher is a tool designed to visualize the topology of reverse proxy networks. Users provide a manually curated YAML file that describes the network structure, proxy definitions, and optionally nmap output files containing additional port and service information. The tool processes this input to produce a Graphviz-compatible graph in various output formats.

This utility is particularly useful for network administrators and security professionals managing complex reverse proxy setups. It helps in documenting and understanding the flow from external interfaces to internal services, making it easier to audit, troubleshoot, or present proxy configurations.

The tool supports customization through various flags for DNS resolution, output formatting, and limiting external representations, enhancing its flexibility for different visualization needs.

How It Works

The tool reads a YAML file specifying the network topology and proxy configurations. It parses this data to build a graph structure, optionally integrating details from provided nmap XML scan files for node ports and services. Using pydotplus and Graphviz, it renders the graph with customizable layout parameters like font, size, and separation. DNS resolution can be enabled to label IPs with hostnames, and external limits refine the external-facing view.

Installation

bash
sudo apt install rev-proxy-grapher

Flags

-h, --helpshow this help message and exit
--topology TOPOLOGYFile describing the proxies and the topology of your networks
--resolve-dnsAttempt to resolve DNS for all IPs (default: False)
--nmap-xml NMAP_XML [NMAP_XML ...]Get additional node details from these nmap XML scan files (default: ())
--limit-ext LIMIT_EXT [LIMIT_EXT ...]Limit external representations
--font FONTSet font for graph rendering
--fontsize FONTSIZESet font size for graph rendering
--ranksep RANKSEPSet rank separation for graph layout
--out OUTSpecify output file
--verboseEnable verbose output

Examples

Display the help message and usage information
rev-proxy-grapher -h
Generate graph from the specified YAML topology file
rev-proxy-grapher --topology topology.yaml
Generate graph with DNS resolution for all IPs
rev-proxy-grapher --topology topology.yaml --resolve-dns
Generate graph incorporating details from multiple nmap XML files
rev-proxy-grapher --topology topology.yaml --nmap-xml scan1.xml scan2.xml
Generate graph limiting external view to specified networks
rev-proxy-grapher --topology topology.yaml --limit-ext 192.168.1.0/24
Generate PNG graph with custom font and size
rev-proxy-grapher --topology topology.yaml --out proxy-graph.png --font Arial --fontsize 12
Generate graph with verbose logging
rev-proxy-grapher --topology topology.yaml --verbose
Updated 2026-04-16kali.org ↗