1 Enhanced TightVNC Viewer (SSVNC: SSL/SSH VNC viewer)
2
3 Copyright (c) 2006-2009 Karl J. Runge <runge (a] karlrunge.com>
4 All rights reserved.
5
6 These bundles provide 1) An enhanced TightVNC Viewer on Unix, 2) Binaries
7 for many Operating Systems (including Windows and Mac OS X) for your
8 convenience, 3) Wrapper scripts and a GUI for gluing them all together.
9
10 One can straight-forwardly download all of the components and get them
11 to work together by oneself: this bundle is mostly for your convenience
12 to combine and wrap together the freely available software.
13
14 Bundled software co-shipped is copyright and licensed by others.
15 See these sites and related ones for more information:
16
17 http://www.tightvnc.com
18 http://www.realvnc.com
19 http://stunnel.mirt.net
20 http://www.stunnel.org
21 http://www.openssl.org
22 http://www.chiark.greenend.org.uk/~sgtatham/putty/
23 http://sourceforge.net/projects/cotvnc/
24
25 Note: Some of the binaries included contain cryptographic software that
26 you may not be allowed to download, use, or redistribute. Please check
27 your situation first before downloading any of these bundles. See the
28 survey http://rechten.uvt.nl/koops/cryptolaw/index.htm for useful
29 information.
30
31 All work done by Karl J. Runge in this project is
32 Copyright (c) 2006-2008 Karl J. Runge and is licensed under the GPL as
33 described in the file COPYING in this directory.
34
35 All the files and information in this project are provided "AS IS"
36 without any warranty of any kind. Use them at your own risk.
37
38
39 =============================================================================
40
41 This bundle contains a convenient collection of enhanced TightVNC
42 viewers and stunnel binaries for different flavors of Unix and wrapper
43 scripts and a GUI front-end to glue them together. Automatic SSL and
44 SSH encryption tunnelling is provided.
45
46 A Windows SSL wrapper for the bundled TightVNC binary and other utilities
47 are provided. (Launch ssvnc.exe in the Windows subdirectory).
48
49 The short name of the project is "ssvnc" for SSL/SSH VNC Viewer.
50
51 It is a self-contained bundle, you could carry it around on, say,
52 a USB memory stick for secure VNC viewing from almost any machine,
53 Unix, Mac, or Windows.
54
55 Features:
56 --------
57
58 The enhanced TightVNC viewer features are:
59
60 - SSL support for connections using the bundled stunnel program.
61
62 - Automatic SSH connections from the GUI (ssh must already be
63 installed on Unix; bundled plink is used on Windows)
64
65 - Ability to Save and Load VNC profiles for different hosts.
66
67 - You can also use your own VNC Viewer, e.g. UltraVNC or RealVNC,
68 with the front-end GUI or scripts if you like.
69
70 - Create or Import SSL Certificates and Private Keys.
71
72 - Reverse (viewer listening) VNC connections via SSL and SSH.
73
74 - VeNCrypt SSL/TLS VNC encryption support (used by VeNCrypt,
75 QEMU, ggi, libvirt/virt-manager/xen, vinagre/gvncviewer/gtk-vnc)
76
77 - ANONTLS SSL/TLS VNC encryption support (used by Vino)
78
79 - VeNCrypt and ANONTLS are also enabled for any 3rd party VNC
80 Viewer (e.g. RealVNC, TightVNC, UltraVNC ...) on Unix, MacOSX,
81 and Windows via the provided SSVNC VeNCrypt Viewer Bridge tool
82 (use 'Change VNC Viewer' to select the one you want.)
83
84 - Support for Web Proxies, SOCKS Proxies, and the UltraVNC
85 repeater proxy (e.g. repeater://host:port+ID:1234). Multiple
86 proxies may be chained together (3 max).
87
88 - Support for SSH Gateway connections and non-standard SSH ports.
89
90 - Automatic Service tunnelling via SSH for CUPS and SMB Printing,
91 ESD/ARTSD Audio, and SMB (Windows/Samba) filesystem mounting.
92
93 - Sets up any additional SSH port redirections that you want.
94
95 - Zeroconf (aka Bonjour) is used on Unix and Mac OS X to find
96 VNC servers on your local network if the avahi-browse or dns-sd
97 program is available and in your PATH.
98
99 - Port Knocking for "closed port" SSH/SSL connections. In addition
100 to a simple fixed port sequence and one-time-pad implementation,
101 a hook is also provided to run any port knocking client before a
102 connecting.
103
104 - Support for native MacOS X usage with bundled Chicken of the
105 VNC viewer (the Unix X11 viewer is also provided for MacOS X,
106 and is better IMHO).
107
108 - Dynamic VNC Server Port determination and redirection (using
109 ssh's builtin SOCKS proxy, -D) for servers like x11vnc that
110 print out PORT= at startup.
111
112 - Unix Username and Password entry for use with "x11vnc -unixpw"
113 type login dialogs.
114
115 - Simplified mode launched by command "sshvnc" that is SSH Only.
116
117 - Simplified mode launched by command "tsvnc" that provides a VNC
118 "Terminal Services" mode (uses x11vnc on the remote side).
119
120
121 (the following features only apply to the bundled Unix tightvnc viewer
122 including MacOS X)
123
124 - rfbNewFBSize VNC support (screen resizing)
125
126 - Client-side Scaling of the Viewer.
127
128 - ZRLE VNC encoding support (RealVNC's encoding)
129
130 - Support for the ZYWRLE encoding, a wavelet based extension to
131 ZRLE to improve compression of motion video and photo regions.
132
133 - TurboVNC support (VirtualGL's modified TightVNC encoding;
134 requires TurboJPEG library)
135
136 - Pipelined Updates of the framebuffer as in TurboVNC (asks for
137 the next update before the current one has finished downloading;
138 this gives some speedup on high latency connections.)
139
140 - Cursor alphablending with x11vnc at 32bpp (-alpha option)
141
142 - Option "-unixpw ..." for use with "x11vnc -unixpw" login dialogs.
143
144 - Support for UltraVNC extensions: Single Window, Disable
145 Server-side Input, 1/n Server side scaling, Text Chat (shell
146 terminal UI). Both UltraVNC and x11vnc servers support these
147 extensions
148
149 - UltraVNC File Transfer via an auxiliary Java helper program
150 (java must be in $PATH). Note that the x11vnc server supports
151 UltraVNC file transfer.
152
153 - Connection support for the UltraVNC repeater proxy (-repeater
154 option).
155
156 - Support for UltraVNC Single Click operation. (both unencrypted:
157 SC I, and SSL encrypted: SC III)
158
159 - Support for UltraVNC DSM Encryption Plugin mode. (ARC4 and
160 AESV2, MSRC4, and SecureVNC)
161
162 - Support for UltraVNC MS-Logon authentication (NOTE: the
163 UltraVNC MS-Logon key exchange implementation is very weak; an
164 eavesdropper on the network can recover your Windows password
165 easily in a few seconds; you need to use an additional encrypted
166 tunnel with MS-Logon.)
167
168 - Support for symmetric encryption (including blowfish and 3des
169 ciphers) to Non-UltraVNC Servers. Any server using the same
170 encryption method will work, e.g.: x11vnc -enc blowfish:./my.key
171
172 - Instead of hostname:display one can also supply "exec=command
173 args..." to connect the viewer to the stdio of an external command
174 (e.g. stunnel or socat) rather than using a TCP/IP socket. Unix
175 domain sockets, e.g. /path/to/unix/socket, and a previously
176 opened file descriptor fd=0, work too.
177
178 - Local Port Protections for STUNNEL and SSH: avoid having for
179 long periods of time a listening port on the the local (VNC
180 viewer) side that redirects to the remote side.
181
182 - Reverse (viewer listening) VNC connections can show a
183 Popup dialog asking whether to accept the connection or not
184 (-acceptpopup.) The extra info provided by UltraVNC Single Click
185 reverse connections is also supported (-acceptpopupsc)
186
187 - Extremely low color modes: 64 and 8 colors in 8bpp
188 (-use64/-bgr222, -use8/-bgr111)
189
190 - Medium color mode: 16bpp mode even for 32bpp Viewer display
191 (-16bpp/-bgr565)
192
193 - x11vnc's client-side caching -ncache method cropping option
194 (-ycrop n). This will "hide" the large pixel buffer cache
195 below the actual display. Set to actual height or use -1 for
196 autodetection (tall screens are autodetected by default).
197
198 - Escape Keys: enable a set of modifier keys so when they
199 are all pressed down you can invoke Popup menu actions via
200 keystrokes. I.e., a set of 'Hot Keys'. One can also pan (move)
201 the desktop inside the viewport via Arrow keys or a mouse drag.
202
203 - Scrollbar width setting: -sbwidth n, the default is very thin,
204 2 pixels, for less distracting -ycrop usage.
205
206 - Selection text sending and receiving can be fine-tuned with the
207 -sendclipboard, -sendalways, and -recvtext options.
208
209 - TightVNC compression and quality levels are automatically set
210 based on observed network latency (n.b. not bandwidth.)
211
212 - Improvements to the Popup menu, all of these can now be changed
213 dynamically via the menu: ViewOnly, Toggle Bell, CursorShape
214 updates, X11 Cursor, Cursor Alphablending, Toggle Tight/ZRLE,
215 Toggle JPEG, FullColor/16bpp/8bpp (256/64/8 colors), Greyscale
216 for low color modes, Scaling the Viewer resolution, Escape Keys,
217 Pipeline Updates, and others, including UltraVNC extensions.
218
219 - Maintains its own BackingStore if the X server does not
220
221 - The default for localhost:0 connections is not raw encoding
222 (local machine). Default assumes you are using SSH tunnel. Use
223 -rawlocal to revert.
224
225 - XGrabServer support for fullscreen mode, for old window managers
226 (-grab/-graball option).
227
228 - Fix for Popup menu positioning for old window managers
229 (-popupfix option).
230
231 - Run vncviewer -help for all options.
232
233
234
235 The list of software bundled in the archive files:
236
237 TightVNC Viewer (windows, unix, macosx)
238 Chicken of the VNC Viewer (macosx)
239 Stunnel (windows, unix, macosx)
240 Putty/Plink/Pageant (windows)
241 OpenSSL (windows)
242 esound (windows)
243
244 These are all self-contained in the bundle directory: they will not be
245 installed on your system. Just un-zip or un-tar the file you downloaded
246 and run it straight from its directory.
247
248
249 Quick Start:
250 -----------
251
252 Unix and Mac OS X:
253
254 Inside a Terminal do something like the following.
255
256 Unpack the archive:
257
258 % gzip -dc ssvnc-1.0.28.tar.gz | tar xvf -
259
260 Run the GUI:
261
262 % ./ssvnc/Unix/ssvnc (for Unix)
263
264 % ./ssvnc/MacOSX/ssvnc (for Mac OS X)
265
266 The smaller file "ssvnc_no_windows-1.0.28.tar.gz"
267 could have been used as well.
268
269 On MacOSX you could also click on the SSVNC app icon in the Finder.
270
271 On MacOSX if you don't like the Chicken of the VNC (e.g. no local
272 cursors, no screen size rescaling, and no password prompting), and you
273 have the XDarwin X server installed, you can set DISPLAY before starting
274 ssvnc (or type DISPLAY=... in Host:Disp and hit Return). Then our
275 enhanced TightVNC viewer will be used instead of COTVNC.
276 Update: there is now a 'Use X11 vncviewer on MacOSX' under Options ...
277
278
279 If you want a SSH-only tool (without the distractions of SSL) run
280 the command:
281
282 sshvnc
283
284 instead of "ssvnc". Or click "SSH-Only Mode" under Options.
285 Control-h will toggle between the two modes.
286
287
288 If you want a simple VNC Terminal Services only mode (requires x11vnc
289 on the remote server) run the command:
290
291 tsvnc
292
293 instead of "ssvnc". Or click "Terminal Services" under Options.
294 Control-t will toggle between the two modes.
295
296 "tsvnc profile-name" and "tsvnc user@hostname" work too.
297
298
299 Unix/MacOSX Install:
300
301 There is no standard install for the bundles, but you can make
302 symlinks like so:
303
304 cd /a/directory/in/PATH
305 ln -s /path/to/ssvnc/bin/{s,t}* .
306
307 Or put /path/to/ssvnc/bin, /path/to/ssvnc/Unix, or /path/to/ssvnc/MacOSX
308 in your PATH.
309
310 For the conventional source tarball it will compile and install, e.g.:
311
312 gzip -dc ssvnc-1.0.28.src.tar.gz | tar xvf -
313 cd ssvnc-1.0.28
314 make config
315 make all
316 make PREFIX=/my/install/dir install
317
318 then have /my/install/dir/bin in your PATH.
319
320
321 Windows:
322
323 Unzip, using WinZip or a similar utility, the zip file:
324
325 ssvnc-1.0.28.zip
326
327 Run the GUI, e.g.:
328
329 Start -> Run -> Browse
330
331 and then navigate to
332
333 .../ssvnc/Windows/ssvnc.exe
334
335 select Open, and then OK to launch it.
336
337 The smaller file "ssvnc_windows_only-1.0.28.zip"
338 could have been used as well.
339
340 You can make a Windows shortcut to this program if you want to.
341
342 See the Windows/README.txt for more info.
343
344
345 If you want a SSH-only tool (without the distractions of SSL) run
346 the command:
347
348 sshvnc.bat
349
350 Or click "SSH-Only Mode" under Options.
351
352
353 If you want a simple VNC Terminal Services only mode (requires x11vnc
354 on the remote server) run the command:
355
356 tsvnc.bat
357
358 Or click "Terminal Services" under Options. Control-t will toggle
359 between the two modes. "tsvnc profile-name" and "tsvnc user@hostname"
360 work too.
361
362
363
364 Important Note for Windows Vista: One user reports that on Windows Vista
365 if you move or extract the "ssvnc" folder down to the "Program Files"
366 folder you will be prompted to do this as the Administrator. But then
367 when you start up ssvnc, as a regular user, it cannot create files in
368 that folder and so it fails to run properly. We recommend to not copy
369 or extract the "ssvnc" folder into "Program Files". Rather, extract
370 it to somewhere you have write permission (e.g. C:\ or your User dir)
371 and create a Shortcut to ssvnc.exe on the desktop.
372
373 If you must put a launcher file down in "Program Files", perhaps an
374 "ssvnc.bat" that looks like this:
375
376 C:
377 cd \ssvnc\Windows
378 ssvnc.exe
379
380
381 SSH-ONLY Mode:
382 --------------
383
384 If you don't care for SSL and the distractions it provides in the GUI,
385 run "sshvnc" (unix/macosx) or "sshvnc.bat" (windows) to run an SSH only
386 version of the GUI.
387
388 Terminal Services Mode
389 ----------------------
390
391 There is an even simpler mode that uses x11vnc on the remote side for the
392 session finding and management. Run "tsvnc" (unix/macosx) or "tsvnc.bat"
393 (windows) to run the Terminal Services version of the GUI.
394
395
396 Bundle Info:
397 ------------
398
399 The bundle files unpack a directory/folder named: ssvnc
400
401 It contains these programs to launch the GUI:
402
403 Windows/ssvnc.exe for Windows
404 MacOSX/ssvnc for Mac OS X
405 Unix/ssvnc for Unix
406
407 (the Mac OS X and Unix launchers are simply links to the bin directory).
408
409
410 Your bundle file should have included binaries for many OS's: Linux,
411 Solaris, FreeBSD, etc. Unpack your archive and see the subdirectories of
412
413 ./bin
414
415 for the ones that were shipped in this project, e.g. ./bin/Linux.i686
416 Run "uname -sm" to see your OS+arch combination (n.b. all Linux x86 are
417 mapped to Linux.i686). (See the ./bin/ssvnc_cmd -h output for how to
418 override platform autodection via the UNAME env. var).
419
420
421 Memory Stick Usage:
422 -------------------
423
424 If you create a directory named "Home" in that toplevel ssvnc directory
425 then that will be used as the base for storing VNC profiles and
426 certificates. Also, for convenience, if you first run the command with
427 "." as an argument (e.g. "ssvnc .") it will automatically create that
428 "Home" directory for you. This is handy if you want to place SSVNC
429 on a USB flash drive that you carry around for mobile use and you want
430 the profiles you create to stay with the drive (otherwise you'd have to
431 browse to the drive directory each time you load or save).
432
433 One user on Windows created a BAT file to launch SSVNC and needed to
434 do this to get the Home directory correct:
435
436 cd \ssvnc\Windows
437 start \ssvnc\Windows\ssvnc.exe
438
439 (an optional profile name can be supplied to the ssvnc.exe line)
440
441 WARNING: if you use ssvnc from an "Internet Cafe", i.e. an untrusted
442 computer, an intruder may be capturing keystrokes etc.
443
444
445 External Dependencies:
446 ----------------------
447
448 On Windows everything is included. Let us know if you find otherwise.
449
450 On Unix depending on what you do you need these programs installed:
451
452 - basic unix utilities (sh, ls, cat, awk, sed, etc..)
453 - tcl/tk (wish interpreter)
454 - xterm
455 - perl
456 - ssh
457 - openssl
458
459 Lesser used ones: netcat, esd/artsd, smbclient, smbmount, cups
460
461 On Mac OS X depending on what you do you need these programs installed:
462
463 - basic unix utilities (sh, ls, cat, awk, sed, etc..)
464 - tcl/tk (wish interpreter)
465 - Terminal
466 - perl
467 - ssh
468 - openssl
469
470 Lesser used ones: netcat, smbclient, cups
471
472 Most Mac OS X and Unix OS come with the main components installed.
473
474 See the README.src for a more detailed description of dependencies.
475
476
477 TurboVNC Support:
478 ----------------
479
480 TurboVNC is supported in an experimental way. To it build via the
481 build.unix script described in the next section, do something like:
482
483 env TURBOVNC='-L/DIR -Xlinker --rpath=/DIR -lturbojpeg' ./build.unix
484
485 where you replace /DIR with the directory where the libturbojpeg.so
486 (http://sourceforge.net/project/showfiles.php?group_id=117509&package_id=166100)
487 is installed.
488
489 You may not need to set rpath if libturbojpeg.so is installed in a
490 standard location or you use LD_LIBRARY_PATH to point to it.
491
492 See the turbovnc/README in the vnc_unixsrc/vncviewer directory for
493 more info. You can find it in the ssvnc source tarball and also
494 in:
495
496 src/zips/vnc_unixsrc_vncviewer.patched.tar
497
498 More TurboVNC features will be enabled in the future.
499
500
501 If you need to Build:
502 --------------------
503
504 If your OS/arch is not included or the provided binary has the wrong
505 library dependencies, etc. the script "build.unix" may be able to
506 successfully build on for you and deposit the binaries down in ./bin/...
507 using the included source code. It is a hack but usually works.
508
509 You MUST run the build.unix script from this directory (that this toplevel
510 README is in, i.e "ssvnc") and like this:
511
512 ./build.unix
513
514 To use custom locations for libraries see the LDFLAGS_OS and CPPFLAGS_OS
515 description at the top of the build.unix script.
516
517 You can set these env. vars to customize the build:
518
519 SSVNC_BUILD_NO_STATIC=1 do not try to statically link libs
520 SSVNC_BUILD_FORCE_OVERWRITE=1 do not prompt about existing binaries
521 SSVNC_BUILD_SKIP_VIEWER=1 do not build vncviewer
522 SSVNC_BUILD_SKIP_STUNNEL=1 do not build stunnel
523 SSVNC_BUILD_ULTRAFTP=1 only build the file xfer helper jar
524
525 here is an example to build only the vncviewer and with normal library
526 linking (and in a more or less automated way):
527
528 env SSVNC_BUILD_NO_STATIC=1 SSVNC_BUILD_FORCE_OVERWRITE=1 SSVNC_BUILD_SKIP_STUNNEL=1 ./build.unix
529
530 Feel free to ask us if you need help running ./build.unix
531
532
533 Convential Build:
534
535 A more conventional source tarball is provided in ssvnc-x.y.z.src.tar.gz.
536 It uses a more or less familiar 'make config; make all; make PREFIX=path install'
537 method. It does not include stunnel, so that must be installed on the
538 system separately.
539
540
541 The programs:
542 ------------
543
544 Unpack your archive, and you will see "bin", "Windows", "src" directories
545 and other files. The command line wrapper scripts:
546
547 ./bin/ssvnc_cmd
548 ./bin/tightvncviewer
549
550 are the main programs that are run and will try to autodetect your OS+arch
551 combination and if binaries are present for it automatically use them.
552 (if not found try the running the build.unix script).
553
554 If you prefer a GUI to prompt for parameters and then start ssvnc_cmd
555 you can run this instead:
556
557 ./bin/ssvnc
558
559 this is the same GUI that is run on Windows (the ssvnc.exe).
560 There are also:
561
562 ./bin/sshvnc (SSH-Only)
563 ./bin/tsvnc (Terminal Services Mode)
564
565 For convenience, you can make symlinks from a directory in your PATH to
566 any of the 3 programs above you wish to run. That is all you usually
567 need to do for it to pick up all of the binaries, utils, etc. E.g.
568 assuming $HOME/bin is in your $PATH:
569
570 cd $HOME/bin
571 ln -s /path/to/ssvnc/bin/{s,t}* .
572
573 (note the "." at the end). The above commands is basically the way to
574 "install" this on Unix or MacOS X.
575
576 Also links to the GUI launcher script are provided in:
577
578 MacOSX/ssvnc
579 Unix/ssvnc
580
581 and sshvnc and tsvnc. You could also put the Unix or MacOSX directory
582 in your PATH.
583
584
585 On Windows unpack your archive and run:
586
587 Windows/ssvnc.exe
588
589
590 Examples:
591 --------
592
593 The following assume you are in the toplevel directory of the
594 archive you unpacked.
595
596 Use enhanced TightVNC unix viewer to connect to x11vnc via SSL:
597
598 ./bin/ssvnc_cmd far-away.east:0
599
600 ./bin/tightvncviewer -ssl far-away.east:0 (same)
601
602 ./bin/ssvnc (start GUI launcher)
603
604 Use enhanced TightVNC unix viewer without SSL:
605
606 ./bin/tightvncviewer far-away.east:0
607
608 Use SSL to connect to a x11vnc server, and also verify the server's
609 identity using the SSL Certificate in the file ./x11vnc.pem:
610
611 ./bin/ssvnc_cmd -alpha -verify ./x11vnc.pem far-away.east:0
612
613 (also turns on the viewer-side cursor alphablending hack).
614
615
616 Brief description of the subdirectories:
617 ---------------------------------------
618
619 ./bin/util some utility scripts, e.g. ss_vncviewer
620 and ssvnc.tcl
621
622 ./src source code and patches.
623 ./src/zips zip files of source code and binaries.
624
625 ./src/vnc_unixsrc unpacked tightvnc source code tree.
626 ./src/stunnel-4.14 unpacked stunnel source code tree.
627 ./src/patches patches to TightVNC viewer for the new
628 features on Unix (used by build.unix).
629 ./src/tmp temporary build dir for build.unix
630 (the last four are used by build.unix)
631
632
633 ./man man pages for TightVNC viewer and stunnel.
634
635 ./Windows Stock TightVNC viewer and Stunnel, Openssl
636 etc Windows binaries. ssvnc.exe is the
637 program to run.
638
639 ./MacOSX contains an unpacked Chicken of the VNC
640 viewer and a symlink to ssvnc.
641
642 ./Unix contains a symlink to ssvnc.
643
644 Depending on which bundle you use not all of the above may be present.
645 The smallest bundles with binaries are:
646
647 ssvnc_windows_only-1.x.y.zip Windows
648 ssvnc_no_windows-1.x.y.tar.gz Unix and MacOSX
649
650 however, the tiny scripts only one (only 60KB) will run properly on Unix
651 as long as you install external vncviewer and stunnel packages:
652
653 ssvnc_unix_minimal-1.x.y.tar.gz
654
655
656 Untrusted Local Users:
657 ---------------------
658
659 *IMPORTANT WARNING*: If you run SSVNC on a workstation or computer
660 that other users can log into and you DO NOT TRUST these users
661 (it is a shame but sometimes one has to work in an environment like
662 this), then please note the following warning.
663
664 By 'do not trust' we mean they might try to gain access to remote
665 machines you connect to via SSVNC. Note that an untrusted local
666 user can often obtain root access in a short amount of time; if a
667 user has achieved that, then all bets are off for ANYTHING that you
668 do on the workstation. It is best to get rid of Untrusted Local
669 Users as soon as possible.
670
671 Both the SSL and SSH tunnels set up by SSVNC listen on certain ports
672 on the 'localhost' address and redirect TCP connections to the remote
673 machine; usually the VNC server running there (but it could also be
674 another service, e.g. CUPS printing). These are the stunnel(8) SSL
675 redirection and the ssh(1) '-L' port redirection. Because 'localhost'
676 is used only users or programs on the same workstation that is
677 running SSVNC can connect to these ports, however this includes any
678 local users (not just the user running SSVNC.)
679
680 If the untrusted local user tries to connect to these ports, he may
681 succeed in varying degrees to gain access to the remote machine.
682 We now list some safeguards one can put in place to try to make this
683 more difficult to achieve.
684
685 It probably pays to have the VNC server require a password, even
686 though there has already been SSL or SSH authentication (via
687 certificates or passwords). In general if the VNC Server requires
688 SSL authentication of the viewer that helps, unless the untrusted
689 local user has gained access to your SSVNC certificate keys.
690
691 If the VNC server is configured to only allow one viewer connection
692 at a time, then the window of opportunity that the untrusted local
693 user can use is greatly reduced: he might only have a second or two
694 between the tunnel being set up and the SSVNC vncviewer connecting
695 to it (i.e. if the VNC server only allows a single connection, the
696 untrusted local user cannot connect once your session is established).
697 Similarly, when you disconnect the tunnel is torn down quickly and
698 there is little or no window of opportunity to connect (e.g. x11vnc
699 in its default mode exits after the first client disconnects).
700
701 Also for SSL tunnelling with stunnel(8) on Unix using one of the SSVNC
702 prebuilt 'bundles', a patched stunnel is provided that denies all
703 connections after the first one, and exits when the first one closes.
704 This is not true if the system installed stunnel(8) is used and is
705 not true when using SSVNC on Windows.
706
707 The following are two experimental features that are added to SSVNC
708 to improve the situation for the SSL/stunnel case. Set them via
709 Options -> Advanced -> "STUNNEL Local Port Protections".
710
711 1) For SSL tunnelling with stunnel(8) on Unix there is a setting
712 'Use stunnel EXEC mode' (experimental) that will try to exec(2)
713 stunnel instead of using a listening socket. This will require
714 using the specially modified vncviewer unix viewer provided
715 by SSVNC. If this mode proves stable it will become the default.
716
717 2) For SSL tunnelling with stunnel(8) on Unix there is a setting
718 'Use stunnel IDENT check' (experimental) to limit socket
719 connections to be from you (this assumes the untrusted local
720 user has not become root on your workstation and has modified
721 your local IDENT check service; if he has you have much bigger
722 problems to worry about...)
723
724 There is also one simple LD_PRELOAD trick for SSH to limit the number
725 of accepted port redirection connections. This makes the window of
726 time the untrusted local user can connect to the tunnel much smaller.
727 Enable it via Options -> Advanced -> "SSH Local Port Protections".
728 You will need to have the lim_accept.so file in your SSVNC package.
729
730 The main message is to 'Watch your Back' when you connect via the
731 SSVNC tunnels and there are users you don't trust on your workstation.
732 The same applies to ANY use of SSH '-L' port redirections or outgoing
733 stunnel SSL redirection services.
734
735
736 Help and Info:
737 -------------
738
739 For more help on other options and usage patterns run these:
740
741 ./bin/ssvnc_cmd -h
742 ./bin/util/ss_vncviewer -h
743
744 See also:
745
746 http://www.karlrunge.com/x11vnc
747 http://www.karlrunge.com/x11vnc/faq.html
748 x11vnc -h | more
749
750 http://stunnel.mirt.net
751 http://www.stunnel.org
752 http://www.openssl.org
753 http://www.tightvnc.com
754 http://www.realvnc.com
755 http://www.chiark.greenend.org.uk/~sgtatham/putty/
756 http://sourceforge.net/projects/cotvnc/
757