3

I'm trying to get a deeper understanding of the architecture and design of Openstack noVNC security. I found this document. It makes sense but missing details. Can somebody confirm my understanding is right, or correct me if I'm wrong.

0) noVNC allows VNC clients in web browsers, good for clients without java or vnc client installed.

1) VNC server is provided by the hypervisor, Every VM has its own VNC server, at port 59xx, not accessible from outside.

2) Websocket proxy bridges to VNC server and provide service for noVNC client (javascript in browser), say at port 6080.

3) Simple security: Security could alternatively be guaranteed by VNC password, but it's not convenient to type every time and not easy to change. Every VM on the same hypervisor has to share the same password. Different compute nodes may use different VNC passwords.

4) To provide better access control, consoleauth is introduced. We can now use Openstack authentication for VNC. When a new request for remote console comes, a dynamic access URL (with a token) is generated, cached/registered, and sent back to client. Later, only previously registered connections are accepted.

I would like to know more about whether/how dynamic firewall rules are created, and whether/when the tokens are invalidated. I know the best way is to read the source code, but a high level description is also valuable. Thanks.

lqu
  • 606
  • 9
  • 14
  • I found the `--target-config` option in `websockify` from noVNC. It takes a file/dir containing lines of format `"token: host:port"`. Only requests with `token` can be accepted to connect to `host:port`. – lqu Jan 02 '15 at 17:53

0 Answers0