https://github.com/jekor/gressgraph
visualize your iptables firewall
https://github.com/jekor/gressgraph
Last synced: 4 months ago
JSON representation
visualize your iptables firewall
- Host: GitHub
- URL: https://github.com/jekor/gressgraph
- Owner: jekor
- License: mit
- Created: 2012-05-06T17:02:52.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2020-06-15T17:20:42.000Z (over 5 years ago)
- Last Synced: 2024-11-21T14:38:09.534Z (12 months ago)
- Language: Haskell
- Size: 50.8 KB
- Stars: 159
- Watchers: 9
- Forks: 22
- Open Issues: 3
-
Metadata Files:
- Readme: README.markdown
- License: LICENSE
Awesome Lists containing this project
- awesome-hacking-lists - jekor/gressgraph - visualize your iptables firewall (Haskell)
README
# gressgraph - Visualize Your Firewall
Visualize your firewall by graphing its rules.
Warning: This was only tested on small firewall rulesets.
## Requirements
* [Graphviz](http://www.graphviz.org/)
* iptables
If compiling from source:
* GHC (>= 6.8.2)
* lhs2TeX (>= 1.11)
* GNU Make
For Ubuntu Server 16.04 run the following to install prerequisites
```
$ sudo apt install iptables graphviz make lhs2tex ghc libghc-parsec3-dev
```
## Usage
```ShellSession
$ iptables -L -vx | gressgraph > iptables.twopi
$ twopi -Tsvg iptables.twopi > iptables.svg
```
See the source for more detailed documentation, including a description of
how the program was written.
Note: There are no commandline options. Also, I've only tested the program
on my own simple iptables ruleset. It's likely that it will fail to parse your
rules.
## Building
```ShellSession
$ make
$ make test
```
If you didn't receive gressgraph.pdf:
```ShellSession
$ make doc
```
## Troubleshooting
### The program hangs after outputting `"// Interfaces"`.
gressgraph is waiting for input. Make sure you've sent it something on its
stdin (it does not take a file as a commandline argument).
# Building
I build gressgraph with [Nix](http://nixos.org/nix/) to try to ensure reproducible builds:
```
nix-build dev.nix
```
`default.nix` is for inclusion in a top-level file (such as `all-packages.nix`). `dev.nix` builds gressgraph with a fixed version of nixpkgs, providing stability at the cost of inflating the nix store.