Enhanced TightVNC Viewer (ssvnc: SSL/SSH VNC viewer) Copyright (c) 2006 Karl J. Runge All rights reserved. These bundles provide 1) An enhanced TightVNC Viewer on Unix, 2) Binaries for many Operating Systems (including Windows and Mac OS X) for your convenience, 3) Wrapper scripts and a GUI for gluing them all together. One can straight-forwardly download all of the components and get them to work together by oneself: this bundle is mostly for your convenience to combine and wrap together the freely available software. Bundled software co-shipped is copyright and licensed by others. See these sites and related ones for more information: http://www.tightvnc.com http://www.realvnc.com http://www.stunnel.org http://stunnel.mirt.net http://www.openssl.org http://www.chiark.greenend.org.uk/~sgtatham/putty/ http://sourceforge.net/projects/cotvnc/ Note: Some of the Windows binaries included contain cryptographic software that you may not be allowed to download, use, or redistribute. Please check your situation first before downloading any of these bundles. See the survey http://rechten.uvt.nl/koops/cryptolaw/index.htm for useful information. The Unix programs do not contain cryptographic software, but rather will make use of cryptographic libraries that are installed on your Unix system. Depending on your circumstances you may still need to check. All work by Karl J. Runge in this project is Copyright (c) 2006 Karl J. Runge and is licensed under the GPL as described in the file COPYING in this directory. All the files and information in this project are provided "AS IS" without any warranty of any kind. Use them at your own risk. ============================================================================= This bundle contains a convenient collection of enhanced TightVNC viewers and stunnel binaries for different flavors of Unix and wrapper scripts and a GUI front-end to glue them together. Automatic SSL and SSH encryption tunnelling is provided. A Windows SSL wrapper for the bundled TightVNC binary and other utilities are provided. (Launch ssvnc.exe in the Windows subdirectory). The short name of the project is "ssvnc" for SSL/SSH VNC Viewer. It is a self-contained bundle, you could carry it around on, say, a USB memory stick for secure VNC viewing from almost any machine, Unix or Windows. Features: -------- The enhanced TightVNC viewer features are: - SSL support for connections using the bundled stunnel program. - Automatic SSH connections from the GUI (ssh must already be installed on Unix; bundled plink is used on Windows) - Create or Import SSL Certificates and Private Keys. - Automatic Service tunnelling via SSH for CUPS and SMB Printing, ESD/ARTSD Audio, and SMB (Windows/Samba) filesystem mounting. - Port Knocking for "closed port" SSH/SSL connections. In addition to a simple fixed port sequence and one-time-pad implementation, a hook is also provided to run any port knocking client before a connecting. - You can also use your own VNC Viewer, e.g. UltraVNC or RealVNC, with the front-end GUI or scripts if you like. - Sets up any additional SSH port redirections that you desire. - Support for native MacOS X usage with bundled Chicken of the VNC viewer. (these 3 features only apply to the bundled Unix tightvnc viewer) - rfbNewFBSize VNC support on Unix (screen resizing, Unix only) - cursor alphablending with x11vnc at 32bpp (-alpha option, Unix only) - xgrabserver support for fullscreen mode, for old window managers (-grab option, Unix only). The list of software bundled in the archive files: TightVNC Viewer (windows, unix, macosx) Chicken of the VNC Viewer (macosx) Stunnel (windows, unix, macosx) Putty/Plink/Pageant (windows) OpenSSL (windows) esound (windows) These are all self-contained in the bundle directory: they will not be installed on your system. Just un-zip or un-tar the file you downloaded and run it straight from its directory. Quick Start: ----------- Unix and Mac OS X: Inside a Terminal do something like the following. Unpack the archive: % gzip -dc ssvnc-1.0.8.tar.gz | tar xvf - Run the GUI: % ./ssvnc/Unix/ssvnc (for Unix) % ./ssvnc/MacOSX/ssvnc (for Mac OS X) actually both of the above are equivalent, and the same as running % ./ssvnc/bin/ssvnc The smaller file "ssvnc_no_windows-1.0.8.tar.gz" could have been used as well. Windows: Unzip, using WinZip or a similar utility, the zip file: ssvnc-1.0.8.zip Run the GUI, e.g.: Start -> Run -> Browse and then navigate to .../ssvnc/Windows/ssvnc.exe select Open, and then OK to launch it. The smaller file "ssvnc_windows_only-1.0.8.zip" could have been used as well. You can make a Windows shortcut to this program if you want to. See the Windows/README.txt for more info. Bundle Info: ------------ The bundle files unpack a directory/folder named: ssvnc It contains these programs to launch the GUI: Windows/ssvnc.exe for Windows MacOSX/ssvnc for Mac OS X Unix/ssvnc for Unix (the Mac OS X and Unix launchers are simply links to the bin directory). Your bundle file should have included binaries for many OS's: Linux, Solaris, FreeBSD, etc. Unpack your archive and see the subdirectories of ./bin for the ones that were shipped in this project, e.g. ./bin/Linux.i686 Run "uname -sm" to see your OS+arch combination. (See the ./bin/ssvnc_cmd -h output for how to override platform autodection via the UNAME env. var). External Dependencies: ---------------------- On Windows everything is included. Let us know if you find otherwise. On Unix depending on what you do you need these programs installed: - basic unix utilities (sh, ls, cat, awk, sed, etc..) - tcl/tk (wish interpreter) - xterm - perl - ssh - openssl Lesser used ones: netcat, esd/artsd, smbclient, smbmount, cups On Mac OS X depending on what you do you need these programs installed: - basic unix utilities (sh, ls, cat, awk, sed, etc..) - tcl/tk (wish interpreter) - Terminal - perl - ssh - openssl Lesser used ones: netcat, smbclient, cups Most Mac OS X and Unix OS come with the main components installed. If you need to Build: -------------------- If your OS/arch is not included or the provided binary has the wrong library dependencies, etc. the script "build.unix" may be able to successfully build on for you and deposit the binaries down in ./bin/... using the included source code. You MUST run the build.unix script from this directory (that this toplevel README is in, i.e "ssvnc") and like this: ./build.unix To use custom locations for libraries see the LDFLAGS_OS and CPPFLAGS_OS description at the top of the build.unix script. The programs: ------------ Unpack your archive, and you will see "bin", "Windows", "src" directories and other files. The command line wrapper scripts: ./bin/ssvnc_cmd ./bin/tightvncviewer are the main programs that are run and will try to autodetect your OS+arch combination and if binaries are present for it automatically use them. (if not found try the running the build.unix script). If you prefer a GUI to prompt for parameters and then start ssvnc_cmd you can run this instead: ./bin/ssvnc this is the same GUI that is run on Windows (the ssvnc.exe). For convenience, you can make symlinks from a directory in your PATH to any of the 3 programs above you wish to run. That is all you usually need to do for it to pick up all of the binaries, utils, etc. E.g. assuming $HOME/bin is in your $PATH: cd $HOME/bin ln -s /path/to/ssvnc/bin/{s,t}* . (note the "." at the end). The above commands is basically the way to "install" this on Unix. Also symlinks to the GUI launcher script are provided in: MacOSX/ssvnc Unix/ssvnc On Windows unpack your archive and run: Windows/ssvnc.exe Examples: -------- The following assume you are in the toplevel directory of the archive you unpacked. Use enhanced TightVNC unix viewer to connect to x11vnc via SSL: ./bin/ssvnc_cmd far-away.east:0 ./bin/tightvncviewer -ssl far-away.east:0 (same) ./bin/ssvnc (start GUI launcher) Use enhanced TightVNC unix viewer without SSL: ./bin/tightvncviewer far-away.east:0 Use SSL to connect to a x11vnc server, and also verify the server's identity using the SSL Certificate in the file ./x11vnc.pem: ./bin/ssvnc_cmd -alpha -verify ./x11vnc.pem far-away.east:0 (also turns on the viewer-side cursor alphablending hack). Brief description of the subdirectories: --------------------------------------- ./bin/util some utility scripts, e.g. ss_vncviewer and ssvnc.tcl ./src source code and patches. ./src/zips zip files of source code and binaries. ./src/vnc_unixsrc unpacked tightvnc source code tree. ./src/stunnel-4.14 unpacked stunnel source code tree. ./src/patches patches to TightVNC viewer for the new features on Unix (used by build.unix). ./src/tmp temporary build dir for build.unix (the last four are used by build.unix) ./man man pages for TightVNC viewer and stunnel. ./Windows Stock TightVNC viewer and Stunnel, Openssl etc Windows binaries. ssvnc.exe is the program to run. ./MacOSX contains an unpacked Chicken of the VNC viewer and a symlink to ssvnc. ./Unix contains a symlink to ssvnc. Depending on which bundle you use not all of the above may be present. The smallest bundles with binaries are: ssvnc_windows_only-1.x.y.zip Windows ssvnc_no_windows-1.x.y.tar.gz Unix and MacOSX however, the tiny scripts only one (only 60KB) will run properly on Unix as long as you install external vncviewer and stunnel packages: ssvnc_unix_minimal-1.x.y.tar.gz Help and Info: ------------- For more help on other options and usage patterns run these: ./bin/ssvnc_cmd -h ./bin/util/ss_vncviewer -h See also: http://www.karlrunge.com/x11vnc http://www.karlrunge.com/x11vnc/#faq x11vnc -h | more http://www.stunnel.org http://stunnel.mirt.net http://www.openssl.org http://www.tightvnc.com http://www.realvnc.com http://www.chiark.greenend.org.uk/~sgtatham/putty/ http://sourceforge.net/projects/cotvnc/