chomper
chomper copied to clipboard
Make Chomper compatible with MacOS.
Steps to reproduce the problem:
Chomper is not compatible with MacOS.
Any other comments? What have you tried so far?
- Do I need to replace screen in constants.py ?
- reset_nat and setup_nat in utils.py would need to be rewritten using the pf firewall.
Anyone have other ideas of what would need to be changed?
I am finally able to use pf to redirect traffic transparently to mitmproxy. MacOS has screen
so that command probably doesn't need to change. Are reset_nat
and setup_nat
the only things that must be changed then?
Awesome! I think a few other things would have to change:
- The Makefile
init
installation rule would need to be updated. I doubt that the automated certificate installation will work, since certificates are probably stored in different places in OSX. I think that the ip forwarding configuration also needs to be updated. As a note, if you want to work on modifying theinit
rule for OSX, you should look at the Makefile in the iss26 branch rather than on master. - I'm not sure if the
lock
rule will work, simply because I'm not sure whether you can create a supplementary sudoers file in the same way that you can in Linux. - In ./chomper/block.py, I interact with the root crontab through the
set_block_length
function. This is important for lifting blocks at the desired time. I don't know if cron works properly on OSX.
I've largely finished automating installation on Debian-based Linuxes, and I've cleared 0.2.1. So, time to work on this issue! Here's a new order of operations:
-
[ ] Use some package to identify the operating system at the beginning of
chomper.block.main
. -
[ ] Add an
operating_system
argument tochomper.utils.reset_nat
andchomper.utils.setup_nat
. Add control flow to these two functions to usepftables
if you're on OSX. -
[ ] Create a consistent set of instructions for manual installation on OSX. It may be easiest to just adapt the Debian automated installer (just take out the certificate installation - that's tricky to automate cross-platform).
The pf fiewall (called packet filter) originated from openBSD (my favorite OS), so if you have pf working on macOS, then it can also work on openBSD!
https://www.openbsd.org/faq/pf/ https://home.nuug.no/~peter/pf/ https://home.nuug.no/~peter/pftutorial/ https://nostarch.com/pf3