GitHub - mricon/rev-proxy-grapher: Reverse proxy grapher
source link: https://github.com/mricon/rev-proxy-grapher
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Reverse proxy grapher
This is a useful little tool that will generate a nice graphviz graph illustrating your reverse proxy flow. It takes a manually curated YAML file describing the topology of your network, proxy definitions, and optionally a collection of nmap output files for additional port/service information and output a graph in any format supported by graphviz.
Usage
When run with --help:
usage: rev-proxy-grapher.py [-h] --topology TOPOLOGY [--resolve-dns] [--nmap-xml NMAP_XML [NMAP_XML ...]] [--limit-ext LIMIT_EXT [LIMIT_EXT ...]] [--font FONT] [--fontsize FONTSIZE] [--ranksep RANKSEP] [--out OUT] [--verbose] Draw a nice graph of your external to internal proxies optional arguments: -h, --help show this help message and exit --topology TOPOLOGY File describing the proxies and the topology of your networks (default: topology.yaml) --resolve-dns Attempt 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 ...] Only include these source IPs or networks (default: ()) --font FONT Font to use in the graph (default: droid sans,dejavu sans,helvetica) --fontsize FONTSIZE Font size to use in the graph (default: 11) --ranksep RANKSEP Node separation between columns (default: 1) --out OUT Write graph into this file, guessing the output format by extension (default: graph.png) --verbose Be more verbose (default: False)
Requirements
- python3-pydotplus
- python3-PyYAML
- python3-netaddr
Examples
See output of --help, and examples in the examples directory. To generate an example graph of your own, simply run:
rev-proxy-grapher.py --topology examples/topology.yaml
This will generate graph.png if everything worked well.
If you want to see what is added by running nmap:
rev-proxy-grapher.py \ --topology examples/topology.yaml \ --nmap-xml examples/nmap-external.xml \ --out graph-with-nmap.svg
Limitations
Currently, this only supports one level of proxying. For example you cannot define a haproxy->nginx->lb-cluster relationship, but this will hopefully be coming in the future, as we have a need to get that properly represented anyway.
Authors
- Konstantin Ryabitsev <[email protected]>
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK