def _apply_changes(request, old_status, new_status): """Apply the changes to Dynamic DNS client.""" logger.info('New status is - %s', new_status) logger.info('Old status was - %s', old_status) if new_status['dynamicdns_secret'] == '': new_status['dynamicdns_secret'] = old_status['dynamicdns_secret'] if new_status['dynamicdns_ipurl'] == '': new_status['dynamicdns_ipurl'] = EMPTYSTRING if new_status['dynamicdns_update_url'] == '': new_status['dynamicdns_update_url'] = EMPTYSTRING if new_status['dynamicdns_server'] == '': new_status['dynamicdns_server'] = EMPTYSTRING if new_status['service_type'] == 'GnuDIP': new_status['dynamicdns_update_url'] = EMPTYSTRING else: new_status['dynamicdns_server'] = EMPTYSTRING if old_status != new_status: disable_ssl_check = "disabled" use_http_basic_auth = "disabled" if new_status['disable_SSL_cert_check']: disable_ssl_check = "enabled" if new_status['use_http_basic_auth']: use_http_basic_auth = "enabled" _run(['configure', '-s', new_status['dynamicdns_server'], '-d', new_status['dynamicdns_domain'], '-u', new_status['dynamicdns_user'], '-p', '-I', new_status['dynamicdns_ipurl'], '-U', new_status['dynamicdns_update_url'], '-c', disable_ssl_check, '-b', use_http_basic_auth], input=new_status['dynamicdns_secret'].encode()) if old_status['enabled']: domain_removed.send_robust( sender='dynamicdns', domain_type='dynamicdnsservice', name=old_status['dynamicdns_domain']) _run(['stop']) if new_status['enabled']: services = get_enabled_services(new_status['dynamicdns_domain']) domain_added.send_robust( sender='dynamicdns', domain_type='dynamicdnsservice', name=new_status['dynamicdns_domain'], description=_('Dynamic DNS Service'), services=services) _run(['start']) messages.success(request, _('Configuration updated')) else: logger.info('Nothing changed')
def update_names_module(initial_registration=False, enabled=None, kite_name=None): """ Update the PageKite domain and services of the 'names' module. - initial_registration: Boolean (optional): Register also if not enabled - enabled: Boolean (optional) whether PageKite is enabled - kite_name: String (optional) """ domain_removed.send_robust(sender='pagekite', domain_type='pagekite') if enabled is None: try: enabled = get_pagekite_config()['enabled'] except IndexError: enabled = False if enabled: # Get enabled services and kite name services = get_pagekite_services()[0] enabled_services = [service for service in services if services[service]] if kite_name is None: try: kite_name = get_kite_details()['kite_name'] except IndexError: pass else: enabled_services = None kite_name = None if initial_registration or (enabled and kite_name): domain_added.send_robust( sender='pagekite', domain_type='pagekite', name=kite_name, description=_('Pagekite'), services=enabled_services)
def init(): """Initialize the module.""" menu = cfg.main_menu.get('apps:index') menu.add_urlname(_('Anonymity Network (Tor)'), 'glyphicon-eye-close', 'tor:index', 100) global socks_service socks_service = service_module.Service( 'tor-socks', _('Tor Anonymity Network'), is_external=False, enabled=is_enabled()) global bridge_service bridge_service = service_module.Service( 'tor-bridge', _('Tor Bridge Relay'), ports=['tor-orport', 'tor-obfs3', 'tor-obfs4'], is_external=True, enabled=is_enabled()) # Register hidden service name with Name Services module. (hs_enabled, hs_hostname, hs_ports) = get_hs() if is_enabled() and is_running() and hs_enabled and hs_hostname: hs_services = [] for service_type in SERVICES: if str(service_type[2]) in hs_ports: hs_services.append(service_type[0]) else: hs_hostname = None hs_services = None domain_added.send_robust( sender='tor', domain_type='hiddenservice', name=hs_hostname, description=_('Tor Hidden Service'), services=hs_services)
def set_domainname(domainname): """Sets machine domain name to domainname""" old_domainname = get_domainname() # Domain name should be ASCII. If it's unicode, convert to ASCII. domainname = str(domainname) LOGGER.info('Changing domain name to - %s', domainname) actions.superuser_run('domainname-change', [domainname]) domainname_change.send_robust(sender='config', old_domainname=old_domainname, new_domainname=domainname) # Update domain registered with Name Services module. domain_removed.send_robust(sender='config', domain_type='domainname') if domainname: try: domainname_services = firewall.get_enabled_services( zone='external') except actions.ActionError: # This happens when firewalld is not installed. # TODO: Are these services actually enabled? domainname_services = [service[0] for service in SERVICES] domain_added.send_robust(sender='config', domain_type='domainname', name=domainname, description=_('Domain Name'), services=domainname_services)
def init(): """Initialize the module.""" menu = main_menu.get('system') menu.add_urlname(name, 'glyphicon-refresh', 'dynamicdns:index') current_status = dynamicdns.get_status() if current_status['enabled']: services = dynamicdns.get_enabled_services(current_status['dynamicdns_domain']) domain_added.send_robust( sender='dynamicdns', domain_type='dynamicdnsservice', name=current_status['dynamicdns_domain'], description=_('Dynamic DNS Service'), services=services)
def __apply_changes(request, old_status, new_status): """Apply the changes.""" if old_status['enabled'] == new_status['enabled'] and \ old_status['hs_enabled'] == new_status['hs_enabled'] and \ old_status['apt_transport_tor_enabled'] == \ new_status['apt_transport_tor_enabled']: messages.info(request, _('Setting unchanged')) return if old_status['enabled'] != new_status['enabled']: if new_status['enabled']: actions.superuser_run('tor', ['enable']) messages.success(request, _('Tor enabled')) else: actions.superuser_run('tor', ['disable']) messages.success(request, _('Tor disabled')) if old_status['hs_enabled'] != new_status['hs_enabled']: if new_status['hs_enabled']: actions.superuser_run('tor', ['enable-hs']) messages.success(request, _('Tor hidden service enabled')) else: actions.superuser_run('tor', ['disable-hs']) messages.success(request, _('Tor hidden service disabled')) # Update hidden service name registered with Name Services module. domain_removed.send_robust( sender='tor', domain_type='hiddenservice') enabled = action_utils.service_is_enabled('tor') is_running = action_utils.service_is_running('tor') (hs_enabled, hs_hostname, hs_ports) = get_hs() if enabled and is_running and hs_enabled and hs_hostname: hs_services = [] for service in SERVICES: if str(service[2]) in hs_ports: hs_services.append(service[0]) domain_added.send_robust( sender='tor', domain_type='hiddenservice', name=hs_hostname, description=_('Tor Hidden Service'), services=hs_services) if old_status['apt_transport_tor_enabled'] != \ new_status['apt_transport_tor_enabled']: if new_status['apt_transport_tor_enabled']: actions.superuser_run('tor', ['enable-apt-transport-tor']) messages.success(request, _('Enabled package download over Tor')) else: actions.superuser_run('tor', ['disable-apt-transport-tor']) messages.success(request, _('Disabled package download over Tor'))
def update_hidden_service_domain(status=None): """Update HS domain with Name Services module.""" if not status: status = utils.get_status() domain_removed.send_robust( sender='tor', domain_type='hiddenservice') if status['enabled'] and status['is_running'] and \ status['hs_enabled'] and status['hs_hostname']: domain_added.send_robust( sender='tor', domain_type='hiddenservice', name=status['hs_hostname'], description=_('Tor Hidden Service'), services=status['hs_services'])
def update_hidden_service_domain(status=None): """Update HS domain with Name Services module.""" if not status: status = get_status() domain_removed.send_robust(sender="tor", domain_type="hiddenservice") if status["enabled"] and status["is_running"] and status["hs_enabled"] and status["hs_hostname"]: domain_added.send_robust( sender="tor", domain_type="hiddenservice", name=status["hs_hostname"], description=_("Tor Hidden Service"), services=status["hs_services"], )
def init(): """Initialize the module.""" menu = main_menu.get('apps') menu.add_urlname(name, 'glyphicon-eye-close', 'tor:index', short_description) setup_helper = globals()['setup_helper'] needs_setup = setup_helper.get_state() == 'needs-setup' if not needs_setup: global socks_service socks_service = service_module.Service( 'tor-socks', _('Tor Anonymity Network'), ports=['tor-socks'], is_external=False, is_enabled=utils.is_enabled, is_running=utils.is_running) global bridge_service bridge_service = service_module.Service( 'tor-bridge', _('Tor Bridge Relay'), ports=['tor-orport', 'tor-obfs3', 'tor-obfs4'], is_external=True, is_enabled=utils.is_enabled, is_running=utils.is_running) # Register hidden service name with Name Services module. status = utils.get_status() hostname = status['hs_hostname'] hs_virtports = [port['virtport'] for port in status['hs_ports']] if status['enabled'] and status['is_running'] and \ status['hs_enabled'] and status['hs_hostname']: hs_services = [] for service_type in SERVICES: if str(service_type[2]) in hs_virtports: hs_services.append(service_type[0]) else: hostname = None hs_services = None domain_added.send_robust( sender='tor', domain_type='hiddenservice', name=hostname, description=_('Tor Hidden Service'), services=hs_services)
def set_domainname(domainname, old_domainname): """Sets machine domain name to domainname""" old_domainname = config.get_domainname() # Domain name should be ASCII. If it's unicode, convert to ASCII. domainname = str(domainname) LOGGER.info('Changing domain name to - %s', domainname) actions.superuser_run('domainname-change', [domainname]) # Update domain registered with Name Services module. if old_domainname: domain_removed.send_robust(sender='config', domain_type='domain-type-static', name=old_domainname) if domainname: domain_added.send_robust(sender='config', domain_type='domain-type-static', name=domainname, services='__all__')
def init(): """Initialize the module.""" menu = cfg.main_menu.get("apps:index") menu.add_urlname(title, "glyphicon-eye-close", "tor:index", 100) global socks_service socks_service = service_module.Service( "tor-socks", _("Tor Anonymity Network"), is_external=False, enabled=is_enabled() ) global bridge_service bridge_service = service_module.Service( "tor-bridge", _("Tor Bridge Relay"), ports=["tor-orport", "tor-obfs3", "tor-obfs4"], is_external=True, enabled=is_enabled(), ) # Register hidden service name with Name Services module. hs_info = get_hs() hostname = hs_info["hostname"] hs_virtports = [port["virtport"] for port in hs_info["ports"]] if is_enabled() and is_running() and hs_info["enabled"] and hs_info["hostname"]: hs_services = [] for service_type in SERVICES: if str(service_type[2]) in hs_virtports: hs_services.append(service_type[0]) else: hostname = None hs_services = None domain_added.send_robust( sender="tor", domain_type="hiddenservice", name=hostname, description=_("Tor Hidden Service"), services=hs_services, )
def update_names_module(is_enabled=None): """Update the PageKite domain and services of the 'names' module.""" domain_removed.send_robust(sender='pagekite', domain_type='domain-type-pagekite') if is_enabled is False: return from plinth.modules.pagekite import app if is_enabled is None and not app.is_enabled(): return config = get_config() enabled_services = [ service for service, value in config['predefined_services'].items() if value ] if config['kite_name'] and config['kite_name'] != UNCONFIGURED_KITE: domain_added.send_robust(sender='pagekite', domain_type='domain-type-pagekite', name=config['kite_name'], services=enabled_services)
def _collect_config_result(request): """Handle config process completion.""" global config_process if not config_process: return return_code = config_process.poll() # Config process is not complete yet if return_code == None: return status = tor.get_status() tor.socks_service.notify_enabled(None, status['enabled']) tor.bridge_service.notify_enabled(None, status['enabled']) # Update hidden service name registered with Name Services module. domain_removed.send_robust( sender='tor', domain_type='hiddenservice') if status['enabled'] and status['is_running'] and \ status['hs_enabled'] and status['hs_hostname']: hs_services = [] for service in SERVICES: if str(service[2]) in status['hs_ports']: hs_services.append(service[0]) domain_added.send_robust( sender='tor', domain_type='hiddenservice', name=status['hs_hostname'], description=_('Tor Hidden Service'), services=hs_services) if not return_code: messages.success(request, _('Configuration updated.')) else: messages.error(request, _('An error occurred during configuration.')) config_process = None
def init(): """Initialize the module""" menu = cfg.main_menu.get('system:index') menu.add_urlname(ugettext_lazy('Configure'), 'glyphicon-cog', 'config:index', 10) # Register domain with Name Services module. domainname = get_domainname() if domainname: try: domainname_services = firewall.get_enabled_services( zone='external') except actions.ActionError: # This happens when firewalld is not installed. # TODO: Are these services actually enabled? domainname_services = [service[0] for service in SERVICES] else: domainname_services = None domain_added.send_robust(sender='config', domain_type='domainname', name=domainname, description=_('Domain Name'), services=domainname_services)
def update_names_module(initial_registration=False, enabled=None, kite_name=None): """ Update the PageKite domain and services of the 'names' module. - initial_registration: Boolean (optional): Register also if not enabled - enabled: Boolean (optional) whether PageKite is enabled - kite_name: String (optional) """ domain_removed.send_robust(sender='pagekite', domain_type='domain-type-pagekite') if enabled is None: try: enabled = get_pagekite_config()['is_enabled'] except IndexError: enabled = False if enabled: # Get enabled services and kite name services = get_pagekite_services()[0] enabled_services = [ service for service in services if services[service] ] if kite_name is None: try: kite_name = get_kite_details()['kite_name'] except IndexError: pass else: enabled_services = None kite_name = None if initial_registration or (enabled and kite_name): domain_added.send_robust(sender='pagekite', domain_type='domain-type-pagekite', name=kite_name, services=enabled_services)
def set_domainname(domainname, old_domainname): """Sets machine domain name to domainname""" old_domainname = config.get_domainname() # Domain name is not case sensitive, but Let's Encrypt certificate # paths use lower-case domain name. domainname = domainname.lower() LOGGER.info('Changing domain name to - %s', domainname) actions.superuser_run('domainname-change', [domainname]) # Update domain registered with Name Services module. if old_domainname: domain_removed.send_robust(sender='config', domain_type='domain-type-static', name=old_domainname) if domainname: domain_added.send_robust(sender='config', domain_type='domain-type-static', name=domainname, services='__all__')
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=version, is_essential=is_essential, depends=depends, name=_('Dynamic DNS Client'), icon='fa-refresh', description=_description, manual_page='DynamicDNS') self.add(info) menu_item = menu.Menu('menu-dynamicdns', info.name, None, info.icon, 'dynamicdns:index', parent_url_name='system') self.add(menu_item) domain_type = DomainType('domain-type-dynamic', _('Dynamic Domain Name'), 'dynamicdns:index', can_have_certificate=True) self.add(domain_type) users_and_groups = UsersAndGroups('users-and-groups-dynamicdns', reserved_usernames=['ez-ipupd']) self.add(users_and_groups) current_status = get_status() if current_status['enabled']: domain_added.send_robust(sender='dynamicdns', domain_type='domain-type-dynamic', name=current_status['dynamicdns_domain'], services='__all__') self.set_enabled(True)
def init(): """Initialize the module.""" global app app = TorApp() setup_helper = globals()['setup_helper'] needs_setup = setup_helper.get_state() == 'needs-setup' if not needs_setup: if app.is_enabled(): app.set_enabled(True) # Register hidden service name with Name Services module. status = utils.get_status() hostname = status['hs_hostname'] services = [int(port['virtport']) for port in status['hs_ports']] if status['enabled'] and status['is_running'] and \ status['hs_enabled'] and status['hs_hostname']: domain_added.send_robust(sender='tor', domain_type='domain-type-tor', name=hostname, services=services)
def init(): """Initialize the module""" menu = main_menu.get('system') menu.add_urlname(ugettext_lazy('Configure'), 'glyphicon-cog', 'config:index') # Register domain with Name Services module. domainname = get_domainname() if domainname: try: domainname_services = firewall.get_enabled_services( zone='external') except actions.ActionError: # This happens when firewalld is not installed. # TODO: Are these services actually enabled? domainname_services = [service[0] for service in SERVICES] else: domainname_services = None domain_added.send_robust(sender='config', domain_type='domainname', name=domainname, description=ugettext_lazy('Domain Name'), services=domainname_services)
def init(): """Initialize the module.""" menu = cfg.main_menu.get('apps:index') menu.add_urlname(title, 'glyphicon-eye-close', 'tor:index') global socks_service socks_service = service_module.Service( 'tor-socks', _('Tor Anonymity Network'), ports=['tor-socks'], is_external=False, is_enabled=utils.is_enabled, is_running=utils.is_running) global bridge_service bridge_service = service_module.Service( 'tor-bridge', _('Tor Bridge Relay'), ports=['tor-orport', 'tor-obfs3', 'tor-obfs4'], is_external=True, is_enabled=utils.is_enabled, is_running=utils.is_running) # Register hidden service name with Name Services module. status = utils.get_status() hostname = status['hs_hostname'] hs_virtports = [port['virtport'] for port in status['hs_ports']] if status['enabled'] and status['is_running'] and \ status['hs_enabled'] and status['hs_hostname']: hs_services = [] for service_type in SERVICES: if str(service_type[2]) in hs_virtports: hs_services.append(service_type[0]) else: hostname = None hs_services = None domain_added.send_robust( sender='tor', domain_type='hiddenservice', name=hostname, description=_('Tor Hidden Service'), services=hs_services)
def init(): """Initialize the module.""" menu = cfg.main_menu.get('apps:index') menu.add_urlname(title, 'glyphicon-eye-close', 'tor:index') global socks_service socks_service = service_module.Service( 'tor-socks', _('Tor Anonymity Network'), ports=['tor-socks'], is_external=False, is_enabled=utils.is_enabled, is_running=utils.is_running) global bridge_service bridge_service = service_module.Service( 'tor-bridge', _('Tor Bridge Relay'), ports=['tor-orport', 'tor-obfs3', 'tor-obfs4'], is_external=True, is_enabled=utils.is_enabled, is_running=utils.is_running) # Register hidden service name with Name Services module. hs_info = utils.get_hs() hostname = hs_info['hostname'] hs_virtports = [port['virtport'] for port in hs_info['ports']] if utils.is_enabled() and utils.is_running() and \ hs_info['enabled'] and hs_info['hostname']: hs_services = [] for service_type in SERVICES: if str(service_type[2]) in hs_virtports: hs_services.append(service_type[0]) else: hostname = None hs_services = None domain_added.send_robust( sender='tor', domain_type='hiddenservice', name=hostname, description=_('Tor Hidden Service'), services=hs_services)
def init(): """Initialize the Tor module.""" menu = cfg.main_menu.get('apps:index') menu.add_urlname(_('Anonymity Network (Tor)'), 'glyphicon-eye-close', 'tor:index', 100) # Register hidden service name with Name Services module. enabled = action_utils.service_is_enabled('tor') is_running = action_utils.service_is_running('tor') (hs_enabled, hs_hostname, hs_ports) = get_hs() if enabled and is_running and hs_enabled and hs_hostname: hs_services = [] for service in SERVICES: if str(service[2]) in hs_ports: hs_services.append(service[0]) else: hs_hostname = None hs_services = None domain_added.send_robust( sender='tor', domain_type='hiddenservice', name=hs_hostname, description=_('Tor Hidden Service'), services=hs_services)
def init(): """Initialize the module""" menu = cfg.main_menu.get("system:index") menu.add_urlname(ugettext_lazy("Configure"), "glyphicon-cog", "config:index") # Register domain with Name Services module. domainname = get_domainname() if domainname: try: domainname_services = firewall.get_enabled_services(zone="external") except actions.ActionError: # This happens when firewalld is not installed. # TODO: Are these services actually enabled? domainname_services = [service[0] for service in SERVICES] else: domainname_services = None domain_added.send_robust( sender="config", domain_type="domainname", name=domainname, description=ugettext_lazy("Domain Name"), services=domainname_services, )
def __init__(self): """Create components for the app.""" super().__init__() info = app_module.Info(app_id=self.app_id, version=version, name=_('Tor'), icon_filename='tor', short_description=_('Anonymity Network'), description=_description, manual_page='Tor', clients=manifest.clients, donation_url='https://donate.torproject.org/') self.add(info) menu_item = menu.Menu('menu-tor', info.name, info.short_description, info.icon_filename, 'tor:index', parent_url_name='apps') self.add(menu_item) domain_type = DomainType('domain-type-tor', _('Tor Onion Service'), 'tor:index', can_have_certificate=False) self.add(domain_type) firewall = Firewall('firewall-tor-socks', _('Tor Socks Proxy'), ports=['tor-socks'], is_external=False) self.add(firewall) firewall = Firewall('firewall-tor-relay', _('Tor Bridge Relay'), ports=['tor-orport', 'tor-obfs3', 'tor-obfs4'], is_external=True) self.add(firewall) daemon = Daemon('daemon-tor', managed_services[0], strict_check=True, listen_ports=[(9050, 'tcp4'), (9050, 'tcp6'), (9040, 'tcp4'), (9040, 'tcp6'), (9053, 'udp4'), (9053, 'udp6')]) self.add(daemon) users_and_groups = UsersAndGroups('users-and-groups-tor', reserved_usernames=['debian-tor']) self.add(users_and_groups) backup_restore = BackupRestore('backup-restore-tor', **manifest.backup) self.add(backup_restore) # Register hidden service name with Name Services module. setup_helper = globals()['setup_helper'] if setup_helper.get_state() != 'needs-setup' and \ self.is_enabled() and app_is_running(self): status = utils.get_status(initialized=False) hostname = status['hs_hostname'] services = [int(port['virtport']) for port in status['hs_ports']] if status['hs_enabled'] and status['hs_hostname']: domain_added.send_robust(sender='tor', domain_type='domain-type-tor', name=hostname, services=services)
def _apply_changes(request, old_status, new_status): """Apply the changes to Dynamic DNS client.""" logger.info('New status is - %s', new_status) logger.info('Old status was - %s', old_status) if new_status['dynamicdns_secret'] == '': new_status['dynamicdns_secret'] = old_status['dynamicdns_secret'] if new_status['dynamicdns_ipurl'] == '': new_status['dynamicdns_ipurl'] = EMPTYSTRING if new_status['dynamicdns_update_url'] == '': new_status['dynamicdns_update_url'] = EMPTYSTRING if new_status['dynamicdns_server'] == '': new_status['dynamicdns_server'] = EMPTYSTRING if new_status['service_type'] == 'GnuDIP': new_status['dynamicdns_update_url'] = EMPTYSTRING else: new_status['dynamicdns_server'] = EMPTYSTRING if old_status != new_status: disable_ssl_check = "disabled" use_http_basic_auth = "disabled" use_ipv6 = "disabled" if new_status['disable_SSL_cert_check']: disable_ssl_check = "enabled" if new_status['use_http_basic_auth']: use_http_basic_auth = "enabled" if new_status.get('use_ipv6'): use_ipv6 = "enabled" # Domain name is not case sensitive, but Let's Encrypt # certificate paths use lower-case domain name. new_domain_name = new_status['dynamicdns_domain'].lower() _run([ 'configure', '-s', new_status['dynamicdns_server'], '-d', new_domain_name, '-u', new_status['dynamicdns_user'], '-p', '-I', new_status['dynamicdns_ipurl'], '-U', new_status['dynamicdns_update_url'], '-c', disable_ssl_check, '-b', use_http_basic_auth, '-6', use_ipv6, ], input=new_status['dynamicdns_secret'].encode()) if old_status['enabled']: domain_removed.send_robust(sender='dynamicdns', domain_type='domain-type-dynamic', name=old_status['dynamicdns_domain']) _run(['stop']) if new_status['enabled']: domain_added.send_robust(sender='dynamicdns', domain_type='domain-type-dynamic', name=new_domain_name, services='__all__') _run(['start']) messages.success(request, _('Configuration updated')) else: logger.info('Nothing changed')