def test_match_ip_address_ipv6_ip(self): matcher = NetfilterMatchIPAddress('2001:0db8:0:f101::1/128') context = NetfilterContext(addr=IPv6Address('TCP', '2001:db8:0:f101::1', 1234)) self.assertTrue(matcher.match(context)) context = NetfilterContext(addr=IPv6Address('TCP', '2001:db8::8a2e:370:7334', 1234)) self.assertFalse(matcher.match(context)) context = NetfilterContext(addr=IPv6Address('TCP', '2001:db8:0:f101:2::7334', 1234)) self.assertFalse(matcher.match(context))
def test_match_ip_address_ipv4_ip(self): matcher = NetfilterMatchIPAddress('192.168.0.1/32') context = NetfilterContext(addr=IPv4Address('TCP', '192.168.0.1', 1234)) self.assertTrue(matcher.match(context)) context = NetfilterContext(addr=IPv4Address('TCP', '192.168.0.10', 1234)) self.assertFalse(matcher.match(context)) context = NetfilterContext(addr=IPv4Address('TCP', '', 1234)) self.assertFalse(matcher.match(context))
def test_factory(self): pre_conn = get_table('filter').get_chain('pre_conn') match = NetfilterMatchIPAddress('192.168.0.1/32') rule = NetfilterRule(match, NetfilterReject()) pre_conn.add_rule(rule) wrapped_factory = HathorServerFactory('testnet', PeerId(), node=None, use_ssl=False) factory = NetfilterFactory(connections=None, wrappedFactory=wrapped_factory) ret = factory.buildProtocol(IPv4Address('TCP', '192.168.0.1', 1234)) self.assertIsNone(ret) ret = factory.buildProtocol(IPv4Address('TCP', '192.168.0.2', 1234)) self.assertIsNotNone(ret)
def test_match_ip_address_empty_context(self): matcher = NetfilterMatchIPAddress('192.168.0.0/24') context = NetfilterContext() self.assertFalse(matcher.match(context))
def test_match_ip_address_ipv6_ipv4(self): matcher = NetfilterMatchIPAddress('2001:0db8:0:f101::1/128') context = NetfilterContext(addr=IPv4Address('TCP', '192.168.0.1', 1234)) self.assertFalse(matcher.match(context))
def test_match_ip_address_ipv6_unix(self): matcher = NetfilterMatchIPAddress('2001:0db8:0:f101::1/128') context = NetfilterContext(addr=UNIXAddress('/unix.sock')) self.assertFalse(matcher.match(context))
def test_match_ip_address_ipv6_hostname(self): matcher = NetfilterMatchIPAddress('2001:0db8:0:f101::1/128') context = NetfilterContext(addr=HostnameAddress('hathor.network', 80)) self.assertFalse(matcher.match(context))
def test_match_ip_address_ipv4_ipv6(self): matcher = NetfilterMatchIPAddress('192.168.0.1/32') context = NetfilterContext(addr=IPv6Address('TCP', '2001:db8::', 80)) self.assertFalse(matcher.match(context)) context = NetfilterContext(addr=IPv6Address('TCP', '', 80)) self.assertFalse(matcher.match(context))
def test_match_ip_address_ipv4_unix(self): matcher = NetfilterMatchIPAddress('192.168.0.1/32') context = NetfilterContext(addr=UNIXAddress('/unix.sock')) self.assertFalse(matcher.match(context))
def test_match_ip_address_ipv4_hostname(self): matcher = NetfilterMatchIPAddress('192.168.0.1/32') context = NetfilterContext(addr=HostnameAddress('hathor.network', 80)) self.assertFalse(matcher.match(context))