Kieran's opinionated (and probably slightly dumb) nix config

feat: update the mitm functions

dunkirk.sh d7f5d057 f0c799fd

verified
Changed files
+60
machines
atalanta
+60
machines/atalanta/home/default.nix
···
programs.zsh.initContent = ''
eval "$(/usr/libexec/path_helper)"
'';
# Let Home Manager install and manage itself
···
programs.zsh.initContent = ''
eval "$(/usr/libexec/path_helper)"
+
+
# MITM proxy management functions
+
MITM_SERVICE="Wi-Fi" # Change to "Ethernet" if needed
+
MITM_CERT="$HOME/.mitmproxy/mitmproxy-ca-cert.pem"
+
+
mitmup() {
+
# Generate mitmproxy CA certificate if it doesn't exist
+
if [ ! -f "$MITM_CERT" ]; then
+
echo "Generating mitmproxy CA certificate..."
+
(timeout 0.1 mitmproxy --set confdir="$HOME/.mitmproxy" 2>/dev/null; true)
+
fi
+
+
networksetup -setwebproxy "$MITM_SERVICE" localhost 8080 &&
+
networksetup -setsecurewebproxy "$MITM_SERVICE" localhost 8080 &&
+
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain "$MITM_CERT" &&
+
echo "mitmproxy enabled and cert added"
+
}
+
+
mitmdown() {
+
networksetup -setwebproxystate "$MITM_SERVICE" off &&
+
networksetup -setsecurewebproxystate "$MITM_SERVICE" off &&
+
sudo security delete-certificate -c mitmproxy /Library/Keychains/System.keychain &&
+
echo "mitmproxy disabled and cert removed"
+
}
+
+
mitmstatus() {
+
GREEN='\033[0;32m'
+
RED='\033[0;31m'
+
NC='\033[0m' # No Color
+
+
echo "========== Proxy Status =========="
+
for proto in webproxy securewebproxy; do
+
proxy_status=$(networksetup -get''${proto} "$MITM_SERVICE")
+
enabled=$(echo "$proxy_status" | grep "Enabled: Yes")
+
PROTO_UPPER=$(echo "$proto" | tr '[:lower:]' '[:upper:]')
+
if [ -n "$enabled" ]; then
+
echo -e "''${PROTO_UPPER} : ''${GREEN}ENABLED''${NC}"
+
else
+
echo -e "''${PROTO_UPPER} : ''${RED}DISABLED''${NC}"
+
fi
+
echo "$proxy_status" | grep -E "Server:|Port:"
+
done
+
+
echo "========== mitmproxy Certificate =========="
+
if security find-certificate -c mitmproxy /Library/Keychains/System.keychain > /dev/null 2>&1; then
+
echo -e "mitmproxy certificate: ''${GREEN}PRESENT''${NC}"
+
else
+
echo -e "mitmproxy certificate: ''${RED}NOT PRESENT''${NC}"
+
fi
+
+
echo "========== mitmproxy Process =========="
+
if pgrep -f mitmproxy > /dev/null; then
+
echo -e "mitmproxy process: ''${GREEN}RUNNING''${NC}"
+
else
+
echo -e "mitmproxy process: ''${RED}NOT RUNNING''${NC}"
+
fi
+
echo "==========================================="
+
}
+
+
'';
# Let Home Manager install and manage itself