Beispiel #1
0
    def enable_subscription(self, ipaddress, macaddress, expiry=None):
        rule_masquerade = Rule(source=ipaddress, jump="MASQUERADE")

        rule_restrict = Rule(source=ipaddress, matches=[Match("mac", "--mac-source " + macaddress)], jump="ACCEPT")

        table = Table("nat")
        table.prepend_rule("POSTROUTING", rule_masquerade)
        table.prepend_rule("PREROUTING", rule_restrict)
        table.commit()
        sys.stderr.write("Enabling " + ipaddress + ", Mac " + macaddress)
        time.sleep(3)  # Pause

        if expiry is not None:
            self.call_at(expiry, ipaddress, macaddress)

        return True