forwarding.py and ssh.py: use exec.run_(root_)cmd()

This commit is contained in:
InsanePrawn 2022-08-15 06:12:27 +02:00
parent 7fcd68ced9
commit 0465d1035a
2 changed files with 19 additions and 18 deletions

View file

@ -1,6 +1,7 @@
import click
import subprocess
from logger import logging
import logging
from exec import run_root_cmd
from ssh import run_ssh_command
from wrapper import check_programs_wrap
@ -10,25 +11,26 @@ def cmd_forwarding():
"""Enable network forwarding for a usb-attached device"""
check_programs_wrap(['syctl', 'iptables'])
result = subprocess.run([
logging.info("Enabling ipv4 forwarding with sysctl")
result = run_root_cmd([
'sysctl',
'net.ipv4.ip_forward=1',
])
if result.returncode != 0:
logging.fatal(f'Failed to enable ipv4 forward via sysctl')
exit(1)
click.Abort('Failed to enable ipv4 forward via sysctl')
result = subprocess.run([
logging.info("Enabling ipv4 forwarding with iptables")
result = run_root_cmd([
'iptables',
'-P',
'FORWARD',
'ACCEPT',
])
if result.returncode != 0:
logging.fatal(f'Failed set iptables rule')
exit(1)
click.Abort('Failed set iptables rule')
result = subprocess.run([
logging.info("Enabling ipv4 NATting with iptables")
result = run_root_cmd([
'iptables',
'-A',
'POSTROUTING',
@ -40,10 +42,9 @@ def cmd_forwarding():
'172.16.42.0/24',
])
if result.returncode != 0:
logging.fatal(f'Failed set iptables rule')
exit(1)
click.Abort('Failed set iptables rule')
logging.info("Setting default route on device via ssh")
result = run_ssh_command(cmd=['sudo -S route add default gw 172.16.42.2'])
if result.returncode != 0:
logging.fatal(f'Failed to add gateway over ssh')
exit(1)
click.Abort('Failed to add gateway over ssh')