25 lines
807 B
Nix
25 lines
807 B
Nix
|
|
{config, pkgs, lib, ...}: let
|
||
|
|
localCfg = config.myNixOS.mitmproxy;
|
||
|
|
in {
|
||
|
|
options.myNixOS.mitmproxy = {
|
||
|
|
routeAP = lib.mkEnableOption { default = true; };
|
||
|
|
accessPoint = lib.mkOption {
|
||
|
|
type = lib.types.str;
|
||
|
|
};
|
||
|
|
mitmPort = lib.mkOption { default = 8080; };
|
||
|
|
};
|
||
|
|
|
||
|
|
environment.systemPackages = [ pkgs.mitmproxy ];
|
||
|
|
|
||
|
|
networking.firewall = lib.mkIf localCfg.routeAP {
|
||
|
|
extraCommands = let
|
||
|
|
accessPoint = localCfg.accessPoint;
|
||
|
|
port = localCfg.mitmPort;
|
||
|
|
in /*bash*/ ''
|
||
|
|
iptables -t nat -A PREROUTING -i ${accessPoint} -p tcp --dport 80 -j REDIRECT --to-port ${builtins.toString port}
|
||
|
|
iptables -t nat -A PREROUTING -i ${accessPoint} -p tcp --dport 443 -j REDIRECT --to-port ${builtins.toString port}
|
||
|
|
'';
|
||
|
|
allowedTCPPorts = [ localCfg.mitmPort ];
|
||
|
|
};
|
||
|
|
}
|