mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-11 12:46:49 +00:00
fix(console): disable the unauthenticated serial console by default
socketiod does not validate the console token, keeps a single global PTY and broadcasts its output to every connected client, so anyone who can reach port 6081 can read and write a serial console that someone opened. It is also broken for legitimate users, since console/views.py now writes signed tokens that socketiod cannot parse. Until it is rewritten, turn the serial console off by default: - Add SERIAL_CONSOLE_ENABLED = False to the settings template; installs whose settings.py lacks it are treated as disabled. - The console view shows an error instead of the xterm page for pty consoles while the setting is off. - socketiod refuses to start unless SERIAL_CONSOLE_ENABLED is True. - Supervisor: autostart=false for socketiod; drop -d (debug) from the supervisor and systemd definitions; fix the systemd unit description; conf/systemd/install.sh no longer suggests enabling socketiod. - README: stop opening port 6081 and document how to enable the serial console on a trusted network.
This commit is contained in:
parent
b1ab1d47fa
commit
1547e58e55
9 changed files with 127 additions and 9 deletions
|
|
@ -133,6 +133,16 @@ def console(request):
|
|||
if console_type == "vnc":
|
||||
console_page = "console-vnc-" + view_type + ".html"
|
||||
response = render(request, console_page, locals())
|
||||
elif console_type == "pty" and not getattr(
|
||||
settings, "SERIAL_CONSOLE_ENABLED", False
|
||||
):
|
||||
# socketiod does not authenticate connections yet (ROADMAP S-01), so
|
||||
# the serial console stays off unless an admin explicitly enables it.
|
||||
console_error = _(
|
||||
"Serial console is disabled on this server. "
|
||||
"Please switch VM graphics to VNC or ask an administrator."
|
||||
)
|
||||
response = render(request, "console-vnc-lite.html", locals())
|
||||
elif console_type == "pty":
|
||||
socketio_public_host = getattr(settings, "SOCKETIO_PUBLIC_HOST", None)
|
||||
socketio_public_port = getattr(settings, "SOCKETIO_PUBLIC_PORT", 6081)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue