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