1       Enhanced TightVNC Viewer (SSVNC: SSL/SSH VNC viewer)
2
3Copyright (c) 2006-2009 Karl J. Runge <runge@karlrunge.com>
4All rights reserved.
5
6These bundles provide 1) An enhanced TightVNC Viewer on Unix, 2) Binaries
7for many Operating Systems (including Windows and Mac OS X) for your
8convenience, 3) Wrapper scripts and a GUI for gluing them all together.
9
10One can straight-forwardly download all of the components and get them
11to work together by oneself: this bundle is mostly for your convenience
12to combine and wrap together the freely available software.
13
14Bundled software co-shipped is copyright and licensed by others.
15See 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
25Note: Some of the binaries included contain cryptographic software that
26you may not be allowed to download, use, or redistribute.  Please check
27your situation first before downloading any of these bundles.  See the
28survey http://rechten.uvt.nl/koops/cryptolaw/index.htm for useful
29information.
30
31All work done by Karl J. Runge in this project is
32Copyright (c) 2006-2008 Karl J. Runge and is licensed under the GPL as
33described in the file COPYING in this directory.
34
35All the files and information in this project are provided "AS IS"
36without any warranty of any kind.  Use them at your own risk.
37
38
39=============================================================================
40
41This bundle contains a convenient collection of enhanced TightVNC
42viewers and stunnel binaries for different flavors of Unix and wrapper
43scripts and a GUI front-end to glue them together.  Automatic SSL and
44SSH encryption tunnelling is provided.
45
46A Windows SSL wrapper for the bundled TightVNC binary and other utilities
47are provided.  (Launch ssvnc.exe in the Windows subdirectory).
48
49The short name of the project is "ssvnc" for SSL/SSH VNC Viewer.
50
51It is a self-contained bundle, you could carry it around on, say,
52a USB memory stick for secure VNC viewing from almost any machine,
53Unix, Mac, or Windows.
54
55Features:
56--------
57
58The 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
235The 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
244These are all self-contained in the bundle directory: they will not be
245installed on your system.  Just un-zip or un-tar the file you downloaded
246and run it straight from its directory.
247
248
249Quick Start:
250-----------
251
252Unix 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
299Unix/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
321Windows:
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
364Important Note for Windows Vista: One user reports that on Windows Vista
365if you move or extract the "ssvnc" folder down to the "Program Files"
366folder you will be prompted to do this as the Administrator. But then
367when you start up ssvnc, as a regular user, it cannot create files in
368that folder and so it fails to run properly. We recommend to not copy
369or extract the "ssvnc" folder into "Program Files". Rather, extract
370it to somewhere you have write permission (e.g. C:\ or your User dir)
371and create a Shortcut to ssvnc.exe on the desktop.
372
373If you must put a launcher file down in "Program Files", perhaps an
374"ssvnc.bat" that looks like this:
375
376C:
377cd \ssvnc\Windows
378ssvnc.exe
379
380
381SSH-ONLY Mode:
382--------------
383
384If you don't care for SSL and the distractions it provides in the GUI,
385run "sshvnc" (unix/macosx) or "sshvnc.bat" (windows) to run an SSH only
386version of the GUI.
387
388Terminal Services Mode
389----------------------
390
391There is an even simpler mode that uses x11vnc on the remote side for the
392session finding and management.  Run "tsvnc" (unix/macosx) or "tsvnc.bat"
393(windows) to run the Terminal Services version of the GUI.
394
395
396Bundle Info:
397------------
398
399The bundle files unpack a directory/folder named: ssvnc
400
401It 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
410Your bundle file should have included binaries for many OS's: Linux,
411Solaris, FreeBSD, etc.  Unpack your archive and see the subdirectories of
412
413	./bin
414
415for the ones that were shipped in this project, e.g. ./bin/Linux.i686
416Run "uname -sm" to see your OS+arch combination (n.b. all Linux x86 are
417mapped to Linux.i686).   (See the ./bin/ssvnc_cmd -h output for how to
418override platform autodection via the UNAME env. var).
419
420
421Memory Stick Usage:
422-------------------
423
424If you create a directory named "Home" in that toplevel ssvnc directory
425then that will be used as the base for storing VNC profiles and
426certificates.  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
429on a USB flash drive that you carry around for mobile use and you want
430the profiles you create to stay with the drive (otherwise you'd have to
431browse to the drive directory each time you load or save).
432
433One user on Windows created a BAT file to launch SSVNC and needed to
434do this to get the Home directory correct:
435
436cd \ssvnc\Windows
437start \ssvnc\Windows\ssvnc.exe
438
439(an optional profile name can be supplied to the ssvnc.exe line)
440
441WARNING: if you use ssvnc from an "Internet Cafe", i.e.  an untrusted
442computer, an intruder may be capturing keystrokes etc.
443
444
445External Dependencies:
446----------------------
447
448On Windows everything is included.  Let us know if you find otherwise.
449
450On 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
461On 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
472Most Mac OS X and Unix OS come with the main components installed.
473
474See the README.src for a more detailed description of dependencies.
475
476
477TurboVNC Support:
478----------------
479
480TurboVNC is supported in an experimental way.  To it build via the
481build.unix script described in the next section, do something like:
482
483	env TURBOVNC='-L/DIR -Xlinker --rpath=/DIR -lturbojpeg' ./build.unix
484
485where you replace /DIR with the directory where the libturbojpeg.so
486(http://sourceforge.net/project/showfiles.php?group_id=117509&package_id=166100)
487is installed.
488
489You may not need to set rpath if libturbojpeg.so is installed in a
490standard location or you use LD_LIBRARY_PATH to point to it.
491
492See the turbovnc/README in the vnc_unixsrc/vncviewer directory for
493more info.  You can find it in the ssvnc source tarball and also
494in:
495
496	src/zips/vnc_unixsrc_vncviewer.patched.tar
497
498More TurboVNC features will be enabled in the future.
499
500
501If you need to Build:
502--------------------
503
504If your OS/arch is not included or the provided binary has the wrong
505library dependencies, etc. the script "build.unix" may be able to
506successfully build on for you and deposit the binaries down in ./bin/...
507using the included source code.  It is a hack but usually works.
508
509You MUST run the build.unix script from this directory (that this toplevel
510README is in, i.e "ssvnc") and like this:
511
512	./build.unix
513
514To use custom locations for libraries see the LDFLAGS_OS and CPPFLAGS_OS
515description at the top of the build.unix script.
516
517You 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
525here is an example to build only the vncviewer and with normal library
526linking (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
530Feel free to ask us if you need help running ./build.unix
531
532
533Convential Build:
534
535A more conventional source tarball is provided in ssvnc-x.y.z.src.tar.gz.
536It uses a more or less familiar 'make config; make all; make PREFIX=path install'
537method.  It does not include stunnel, so that must be installed on the
538system separately.
539
540
541The programs:
542------------
543
544Unpack your archive, and you will see "bin", "Windows", "src" directories
545and other files.  The command line wrapper scripts:
546
547	./bin/ssvnc_cmd
548	./bin/tightvncviewer
549
550are the main programs that are run and will try to autodetect your OS+arch
551combination and if binaries are present for it automatically use them.
552(if not found try the running the build.unix script).
553
554If you prefer a GUI to prompt for parameters and then start ssvnc_cmd
555you can run this instead:
556
557	./bin/ssvnc
558
559this is the same GUI that is run on Windows (the ssvnc.exe).
560There are also:
561
562	./bin/sshvnc	(SSH-Only)
563	./bin/tsvnc	(Terminal Services Mode)
564
565For convenience, you can make symlinks from a directory in your PATH to
566any of the 3 programs above you wish to run.  That is all you usually
567need to do for it to pick up all of the binaries, utils, etc. E.g.
568assuming $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
576Also links to the GUI launcher script are provided in:
577
578	MacOSX/ssvnc
579	Unix/ssvnc
580
581and sshvnc and tsvnc.  You could also put the Unix or MacOSX directory
582in your PATH.
583
584
585On Windows unpack your archive and run:
586
587	Windows/ssvnc.exe
588
589
590Examples:
591--------
592
593The following assume you are in the toplevel directory of the
594archive you unpacked.
595
596Use 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
604Use enhanced TightVNC unix viewer without SSL:
605
606	./bin/tightvncviewer far-away.east:0
607
608Use SSL to connect to a x11vnc server, and also verify the server's
609identity 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
616Brief 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
644Depending on which bundle you use not all of the above may be present.
645The 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
650however, the tiny scripts only one (only 60KB) will run properly on Unix
651as long as you install external vncviewer and stunnel packages:
652
653	ssvnc_unix_minimal-1.x.y.tar.gz
654
655
656Untrusted 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
736Help and Info:
737-------------
738
739For more help on other options and usage patterns run these:
740
741	./bin/ssvnc_cmd -h
742	./bin/util/ss_vncviewer -h
743
744See 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