summaryrefslogtreecommitdiff
path: root/src/walu/wall.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/walu/wall.py')
-rw-r--r--src/walu/wall.py34
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"])
+