diff options
Diffstat (limited to 'src/walu/wall.py')
-rw-r--r-- | src/walu/wall.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/walu/wall.py b/src/walu/wall.py new file mode 100644 index 0000000..18c4594 --- /dev/null +++ b/src/walu/wall.py @@ -0,0 +1,34 @@ +#!/usr/bin/env/python3 + +import subprocess + +class wall: + iface = "" + + def __init__(self, iface = "lan"): + self.iface = iface + + def walu_init(self): + subprocess.run(["iptables", "-A", "FORWARD", "-i", self.iface, + "-j", "REJECT", "--reject-with", "icmp-host-prohibited"]) + + def walu_down(self): + subprocess.run(["iptables", "-D", "FORWARD", "-i", self.iface, + "-j", "REJECT", "--reject-with", "icmp-host-prohibited"]) + + def walu_block(self, mac): + subprocess.run(["iptables", "-D", "FORWARD", "-i", self.iface, + "-m", "mac", "--mac-source", mac, + "-j", "ACCEPT"]) + subprocess.run(["iptables", "-I", "FORWARD", "-i", self.iface, + "-m", "mac", "--mac-source", mac, + "-j", "REJECT", "--reject-with", "icmp-host-prohibited"]) + + def walu_unblock(self, mac): + subprocess.run(["iptables", "-D", "FORWARD", "-i", self.iface, + "-m", "mac", "--mac-source", mac, + "-j", "REJECT", "--reject-with", "icmp-host-prohibited"]) + subprocess.run(["iptables", "-I", "FORWARD", "-i", self.iface, + "-m", "mac", "--mac-source", mac, + "-j", "ACCEPT"]) + |