def register(self, service_port, secret): self.service_port = service_port # Compute secret knock sequence and reserve knocking ports knock = common._make_knocks(secret) self._reserve(*knock) # Register finalizer that uninstalls iptables inbound rule below atexit.register(self.firewall.clear) # Install iptables rule to block TCP pakcets inbound to service port self.firewall.block_all(service_port)
def testMakeKnocks(): ks = common._make_knocks(s1) ks2 = common._make_knocks(s2) assert all(common.min_port <= k and common.max_port >= k for k in ks) assert ks != ks2
def __init__(self, host, secret): self.host = host self.secret = secret self.knocks = common._make_knocks(secret) self.localaddr = ("localhost", None)