mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-02-25 08:43:36 +00:00
- Authentication using client certificates. Extra password based authentication for later. - Auto setup of CA, server and client certificates. - Provides a .ovpn profile for each user for easy setup. - Use 4096 bit Diffie-Hellman parameters for better security. If this takes to much time, reduce it to 2048 or 1024, at least during debugging.
69 lines
1.9 KiB
Python
69 lines
1.9 KiB
Python
#
|
|
# This file is part of Plinth.
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU Affero General Public License as
|
|
# published by the Free Software Foundation, either version 3 of the
|
|
# License, or (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU Affero General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Affero General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
|
|
"""
|
|
Plinth module to configure OpenVPN server.
|
|
"""
|
|
|
|
from gettext import gettext as _
|
|
|
|
from plinth import actions
|
|
from plinth import action_utils
|
|
from plinth import cfg
|
|
from plinth import service as service_module
|
|
|
|
|
|
depends = ['plinth.modules.apps']
|
|
|
|
service = None
|
|
|
|
|
|
def init():
|
|
"""Intialize the OpenVPN module."""
|
|
menu = cfg.main_menu.get('apps:index')
|
|
menu.add_urlname(_('Virtual Private Network (OpenVPN)'), 'glyphicon-lock',
|
|
'openvpn:index', 850)
|
|
|
|
global service
|
|
service = service_module.Service(
|
|
'openvpn', _('OpenVPN'), ['openvpn'],
|
|
is_external=True, enabled=is_enabled())
|
|
|
|
|
|
def is_enabled():
|
|
"""Return whether the module is enabled."""
|
|
return action_utils.service_is_enabled('openvpn@freedombox')
|
|
|
|
|
|
def is_running():
|
|
"""Return whether the service is running."""
|
|
return action_utils.service_is_running('openvpn@freedombox')
|
|
|
|
|
|
def is_setup():
|
|
"""Return whether the service is running."""
|
|
return actions.superuser_run('openvpn', ['is-setup']).strip() == 'true'
|
|
|
|
|
|
def diagnose():
|
|
"""Run diagnostics and return the results."""
|
|
results = []
|
|
|
|
results.append(action_utils.diagnose_port_listening(1194, 'udp4'))
|
|
|
|
return results
|