================= = RELEASE NOTES = ================= MindTerm, release 0.9BETA - Sep 14, 1998 MindTerm is an SSH (currently v1.5) enabled terminal program written entirely in Java. It's main purpose was to give the author a multi-platform SSH-client for free and to do some experimental work with the SSH-protocol so don't expect too much :-). Besides SSH it will include Telnet in future releases. The SSH support is currently just a small subset of SSH. We think it is usefull enough though (especially since it gives us a general ftp-tunnel, I don't know if there are others doing that also). MindTerm has been tested with jdk1.1.6 and jdk1.1.5 on Linux (RedHat 4.0 with 2.0.32 kernel), Windows NT4 and Windows-95 against sshd versions 1.2.21, 1.2.25 and 1.2.26. Your milage with other platforms/versions may vary. Please read this entire text before starting to use MindTerm. All comments and bug-reports should be sent to: All reports of success or failure are of interest, please don't send mails like: "it doesn't work, you're an incapable moron" though (I know I am, you don't have to tell me :-), try to give some explanations what happens or some such. Information about this program, new releases and its source code can be found at: NOTE: This is a BETA-release, it is NOT a commercial product nor can it be licensed as such, it can be used free of charge for any purpose. HOWEVER, the source-code of this and future releases whether beta or not is NOT free for commercial use, see copyright notice in source-code for information about this. If this product WOULD reach a stable release-status in the future it will be licensable as shareware for commercial use (see included copyright notice below). Features: o Password authentication o Blowfish block-cipher o Standard SSH port-forwarding o Special FTP port-forwarding (see FTP-NOTE below) o Plugin-architecture for adding other (than FTP) protocol-specific "proxies" o Full (almost :-) vt100 support (i.e. emacs, pine etc. works :-) o NonGUI mode, i.e. run at command-line without opening a terminal-window o The SSH package can be used quite easily by itself to "SSH-enable" an arbitrary java-application o The terminal package can (of course) also be used by itself o Cross-platform (it's java :-) FTP-NOTE: The FTP port-forwarding is done entirely in the client, no patching of the sshd is needed. The FTP port-forwarding is only supported for local-port-forward, i.e. you can connect to a remote FTP-server through the tunnel. It works "100% transparent" with "modern" ftp-clients that use the PASV ftp-command (e.g. Netscape navigator). Older (and not so smart) clients that still use the PORT command are in trouble, since the remote-port-forwards only can be initialized at startup (i.e. before the sshd goes into its server-loop) the best we can do is to pre-allocate the remote-port at startup and reuse it through-out an FTP session. The problem with this is of course the ftpd's way of using the ftp-data port for connecting back to the client hence rendering our remote-ports unusable by the ftpd's ftp-data-port for about a minute after disconnect (i.e. when the tcp-socket is in state TIME_WAIT). This is partly worked around by pre-allocating a number of ports on the remote end using them in a round-robin fashion enabling us to do some PORT-commands in a row, if however we do too many in about a minutes time we're out of available connections back to ourselves making the ftp-server angry :-). This could of course easily be solved by patching the sshd but that might not be feasible in all situations. INSTALLATION: In order to use this program you need the java-runtime from Javasoft or any other party providing a port for your platform. This program has been tested with jdk1.1.6 and jdk1.1.5 on Linux (RedHat 4.0 with 2.0.32 kernel), Windows NT4 and Windows-95. Please read the installation notes for your respective platform before trying to run MindTerm. Examples of where the java-runtime can be found: Linux: http://www.blackdown.org/java-linux.html Win32 and Solaris: http://www.javasoft.com/products/jdk/1.1/ or http://www.javasoft.com/products/jdk/1.1/jre/index.html When you have installed the java-runtime and made yourself familiar with how to use it you are ready to run the MindTerm. The commandline-options of MindTerm are somewhat similar to those of the free ssh-client for unix. When run with option '-?' MindTerm says: usage: MindTerm [options] [] Options: -l user Log in using this user name. -d No terminal, only command and/or port-forwarding. -V Display version number only. -c cipher Select encryption algorithm: ``idea'', ``blowfish'', ``3des'' -p port Connect to this port. Server must be on the same port. -L [/plugin/]listen-port:host:port Forward local port to remote address. -R [/plugin/]listen-port:host:port Forward remote port to local address. Note that you don't have to give any command-line options in order to run MindTerm, all settings can be changed from a simple command-shell inside the program (see below). The program can be run with a command something like the following: java -classpath /classes.zip:/mindterm.jar mindbright.application.MindTerm where: is wherever your java-runtime libraries resides. Note that if you use a CLASSPATH environment variable you might use that instead and just add the mindterm.jar to it like: CLASSPATH = CLASSPATH:/usr/local/myjavaapps/mindterm.jar is wherever you put the mindterm.jar file. In the case where you have added the file TO the path (i.e. not put the file IN a directory in the path). The command would of course just be: java mindbright.application.MindTerm Note that when using Windows NT/95 you use ';' instead of ':' in the path, but you knew that. When the program is started it does some initialisation, this can take several seconds depending on the speed of your machine. When the copyright notice has been printed you are prompted for the SSH-server to connect to. Since the only supported authentication is by password the login procedure is a normal login sequence. To enter the local command-shell you press ctrl-D at the prompt (i.e. before having logged in). If running in "dumb" mode you might have to press ENTER after pressing ctrl-D. The simple command-shell that is used in abscense of a GUI has these commands: go Start SSH-session with current settings. quit Quit program. add [//]:: (see below). del Remove forwarded local or remote port. list Lists current parameters and forwards. set Set value of a parameter. help Display this list, but you knew that :-). Examples of adding a remote/local tunnel: > add r 4711:www.foo.com:80 Adds a remote tunnel at port 4711 back to www.foo.com port 80 without a plugin, i.e. default tunneling behaviour. > add l /ftp/4711:ftp.foobar.com:21 Adds a local tunnel going to ftp.bar.com port 21 using the ftp protocol-plugin to handle protocol specific needs. ABOUT THE AUTHOR This software is written and maintained by Mats Andersson of Mindbright Technology in Sweden. TODOLIST: o SSH2, I'm currently looking into this in parallel with clean-up of other code o Clean out the protocol-plugin stuff to be really usable o Dynamic allocation of local-port-forwards (this can be done allready but there is no function in the user-interface for it, in fact the FTP-plugin does it :-). o Dynamic allocation of remote-port-forwards, restricted to changing local host/port to connect to, the remote port can't of course be changed o RSA authentication o 3DES and IDEA block-ciphers (I'm looking into the cryptix stuff which I'll probably use) o Use the java.security hierarchy fully o Priority on a per tunnel basis (i.e. make some tunnels "more responsive" than others o Maximum packet size on a per tunnel basis (only one way of course, but still usefull sometimes) o Lot's of error-handling and general clean-up o A GUI with a menubar and such, can be useful :-) o Copy/Paste using java.awt.datatransfer (the TerminalWin allready implements area-selection a'la xterm) o Colors in terminal o Scaling font in terminal instead of changing rowsXcols when resizing terminal o Cursor/app-keys in terminal a'la VT100 o Telnet client o Remove debug-messages (of course...) o etc. o etc. o etc. Copyright notice as stated in the source-code: /****************************************************************************** * Copyright (c) 1998 by Mindbright Technology AB, Stockholm, Sweden. * * All Rights Reserved * * www.mindbright.se, info@mindbright.se * * This program and its source-code may be used FREE of charge for strictly * NON-COMMERCIAL purposes. Companies or persons wishing to make non-commercial * software that in whole or in part contains or is derived from this program * or any part thereof must inform the original author of such work. The * original author must also be given attribution as the author of used parts. * For COMMERCIAL use all parts of this program originally developed by * Mindbright Technology must be LICENSED under Mindbright Technology's * SHAREWARE license, please contact Mindbright Technology for information on * this. This copyright notice must allways be included and unchanged. * * IF LICENSED FREE OF CHARGE AND/OR IF NOT STATED OTHERWISE THIS PROGRAM COMES * WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, IN NO EVENT SHALL * MINDBRIGHT BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * *****************************************************************************/