Esempio n. 1
0
    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)
Esempio n. 2
0
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
Esempio n. 3
0
 def __init__(self, host, secret):
     self.host = host
     self.secret = secret
     self.knocks = common._make_knocks(secret)
     self.localaddr = ("localhost", None)