import click import subprocess from logger import * @click.command(name='forwarding') @verbose_option def cmd_forwarding(verbose): setup_logging(verbose) result = subprocess.run(['sysctl', 'net.ipv4.ip_forward=1']) if result.returncode != 0: logging.fatal(f'Failed to enable ipv4 forward via sysctl') exit(1) result = subprocess.run(['iptables', '-P', 'FORWARD', 'ACCEPT']) if result.returncode != 0: logging.fatal(f'Failed set iptables rule') exit(1) result = subprocess.run(['iptables', '-A', 'POSTROUTING', '-t', 'nat', '-j', 'MASQUERADE', '-s', '172.16.42.0/24']) if result.returncode != 0: logging.fatal(f'Failed set iptables rule') exit(1) result = subprocess.run(['ssh', '-o', 'GlobalKnownHostsFile=/dev/null', '-o', 'UserKnownHostsFile=/dev/null', '-o', 'StrictHostKeyChecking=no', '-t', 'kupfer@172.16.42.1', 'sudo route add default gw 172.16.42.2']) if result.returncode != 0: logging.fatal(f'Failed to add gateway over ssh') exit(1)