Every time I picked up a new smart device to look at, I'd end up rebuilding the same setup on a Linux box. Edit hostapd.conf, edit dnsmasq.conf, figure out the
iptables rules for NAT, fight NetworkManager for control of the radio. By the time the AP came up the afternoon was gone.
So I packaged it. Mezz is a docker compose stack. Two curl commands, edit .env, bring it up.
What's inside:
- isolated wifi AP via hostapd, WPA2-PSK
- DHCP and DNS via dnsmasq, with per-query logging so you can see exactly what each device is talking to
- NAT out through a wired uplink
- local
.landomain - optional mitmproxy profile for transparent HTTP/HTTPS interception
The name is from mezzanine, the half-floor between two main floors of a building. This network sits in the same place: between your devices and the rest of your home network.
I used Mezz to do the lab work for my last writeup, the cheap video doorbell teardown. Got what I needed in about an hour. The full post is on my blog if you want to see the workflow end to end.
Give it a try. If something breaks or you have a feature request, open an issue on GitHub.
Source: https://github.com/ABGEO/mezz
Project page: https://www.abgeo.dev/projects/mezz/
Top comments (0)