Esempio n. 1
0
    def diagnose(self):
        """Run diagnostics and return the results."""
        results = super().diagnose()

        interfaces = _get_shared_interfaces()
        addresses = _get_interface_addresses(interfaces)

        for address in addresses:
            results.append(daemon.diagnose_port_listening(53, 'tcp', address))
            results.append(daemon.diagnose_port_listening(53, 'udp', address))

        results.append(_diagnose_dnssec('4'))
        results.append(_diagnose_dnssec('6'))

        return results
Esempio n. 2
0
    def diagnose(self):
        """Run diagnostics and return the results."""
        results = super().diagnose()
        results.append(daemon.diagnose_port_listening(8000, 'tcp4'))
        results.extend(
            diagnose_url_on_all('http://{host}/plinth/',
                                check_certificate=False))

        return results
Esempio n. 3
0
    def diagnose(self):
        """Run diagnostics and return the results."""
        results = super().diagnose()

        results.extend(_diagnose_control_port())

        output = actions.superuser_run('tor', ['get-status'])
        ports = json.loads(output)['ports']

        results.append([
            _('Tor relay port available'),
            'passed' if 'orport' in ports else 'failed'
        ])
        if 'orport' in ports:
            results.append(
                diagnose_port_listening(int(ports['orport']), 'tcp4'))
            results.append(
                diagnose_port_listening(int(ports['orport']), 'tcp6'))

        results.append([
            _('Obfs3 transport registered'),
            'passed' if 'obfs3' in ports else 'failed'
        ])
        if 'obfs3' in ports:
            results.append(diagnose_port_listening(int(ports['obfs3']),
                                                   'tcp4'))
            results.append(diagnose_port_listening(int(ports['obfs3']),
                                                   'tcp6'))

        results.append([
            _('Obfs4 transport registered'),
            'passed' if 'obfs4' in ports else 'failed'
        ])
        if 'obfs4' in ports:
            results.append(diagnose_port_listening(int(ports['obfs4']),
                                                   'tcp4'))
            results.append(diagnose_port_listening(int(ports['obfs4']),
                                                   'tcp6'))

        results.append(_diagnose_url_via_tor('http://www.debian.org', '4'))
        results.append(_diagnose_url_via_tor('http://www.debian.org', '6'))

        results.append(_diagnose_tor_use('https://check.torproject.org', '4'))
        results.append(_diagnose_tor_use('https://check.torproject.org', '6'))

        return results
Esempio n. 4
0
def test_diagnose_port_listening(connections):
    """Test running port listening diagnostics test."""
    connections.return_value = [
        Mock(status='LISTEN', laddr=('0.0.0.0', 1234), family=socket.AF_INET),
        Mock(status='ESTABLISHED', laddr=('0.0.0.0', 2345),
             family=socket.AF_INET),
        Mock(raddr=(), laddr=('0.0.0.0', 3456), family=socket.AF_INET),
        Mock(raddr=('1.1.1.1', 53), laddr=('0.0.0.0', 4567),
             family=socket.AF_INET),
        Mock(status='LISTEN', laddr=('::1', 5678), familiy=socket.AF_INET6),
        Mock(status='LISTEN', laddr=('::', 6789), familiy=socket.AF_INET6),
        Mock(raddr=(), laddr=('::1', 5678), familiy=socket.AF_INET6),
        Mock(raddr=(), laddr=('::', 6789), familiy=socket.AF_INET6),
    ]

    # Check that message is correct
    results = diagnose_port_listening(1234)
    assert results == ['Listening on tcp port 1234', 'passed']
    results = diagnose_port_listening(1234, 'tcp', '0.0.0.0')
    assert results == ['Listening on tcp port 0.0.0.0:1234', 'passed']

    # Failed results
    results = diagnose_port_listening(4321)
    assert results == ['Listening on tcp port 4321', 'failed']
    results = diagnose_port_listening(4321, 'tcp', '0.0.0.0')
    assert results == ['Listening on tcp port 0.0.0.0:4321', 'failed']

    # Check if psutil call is being made with right argument
    results = diagnose_port_listening(1234, 'tcp')
    connections.assert_called_with('tcp')
    results = diagnose_port_listening(1234, 'tcp4')
    connections.assert_called_with('tcp')
    results = diagnose_port_listening(1234, 'tcp6')
    connections.assert_called_with('tcp6')
    results = diagnose_port_listening(3456, 'udp')
    connections.assert_called_with('udp')
    results = diagnose_port_listening(3456, 'udp4')
    connections.assert_called_with('udp')
    results = diagnose_port_listening(3456, 'udp6')
    connections.assert_called_with('udp6')

    # TCP
    assert diagnose_port_listening(1234)[1] == 'passed'
    assert diagnose_port_listening(1000)[1] == 'failed'
    assert diagnose_port_listening(2345)[1] == 'failed'
    assert diagnose_port_listening(1234, 'tcp', '0.0.0.0')[1] == 'passed'
    assert diagnose_port_listening(1234, 'tcp', '1.1.1.1')[1] == 'failed'
    assert diagnose_port_listening(1234, 'tcp6')[1] == 'passed'
    assert diagnose_port_listening(1234, 'tcp4')[1] == 'passed'
    assert diagnose_port_listening(6789, 'tcp4')[1] == 'passed'
    assert diagnose_port_listening(5678, 'tcp4')[1] == 'failed'

    # UDP
    assert diagnose_port_listening(3456, 'udp')[1] == 'passed'
    assert diagnose_port_listening(3000, 'udp')[1] == 'failed'
    assert diagnose_port_listening(4567, 'udp')[1] == 'failed'
    assert diagnose_port_listening(3456, 'udp', '0.0.0.0')[1] == 'passed'
    assert diagnose_port_listening(3456, 'udp', '1.1.1.1')[1] == 'failed'
    assert diagnose_port_listening(3456, 'udp6')[1] == 'passed'
    assert diagnose_port_listening(3456, 'udp4')[1] == 'passed'
    assert diagnose_port_listening(6789, 'udp4')[1] == 'passed'
    assert diagnose_port_listening(5678, 'udp4')[1] == 'failed'