jumpgate -- a TCP connection forwarder Patroklos Argyroudis [ Introduction ] Jumpgate is a TCP connection forwarder that provides many enhancements and improvements over the existing programs that do the same thing. It provides an interactive mode that queries the connected party for the forwarding information it needs. Also, there is the option to log the entire forwarded session in a file for later inspection. Furthermore, it can log information about the forwarded session via the syslog(3) facility. If you improve it further, please send me the diffs. As always, published under a BSD-style license, see the included LICENSE file. [ Supported platforms ] Jumpgate has been thoroughly tested on the following platforms: - OpenBSD 3.2 (i386). - OpenBSD 3.1 (i386). - OpenBSD 3.0 (i386). Also, it is known to compile and run on: - Solaris 8, thanks to John Weekley, and Jesper Peterson. - Solaris 7, thanks to Chris Donovan. - AIX, thanks to feedback from Michael Pacey. - FreeBSD 4.2-STABLE (i386), thanks to Kiriakos Oikonomakos for the shell account. - NetBSD 1.4.2 (i386). - Linux, various distributions and platforms, thanks to feedback from many people. - I have been told that it compiles and runs on Windows using Cygwin, but I have not tested it myself. [ Compilation and installation ] Since jumpgate now utilizes autoconf you can compile and install it simply with: $ ./configure $ make $ su # make install This will install the jumpgate binary to /usr/local/sbin and the jumpgate manual page to /usr/local/man/man8. If you want to put them somewhere else, you can call configure with a provided prefix: $ ./configure --prefix=/opt In order to uninstall jumpgate type: # make uninstall In order to compile jumpgate with debugging support, call configure with --enable-debug, e.g.: $ ./configure --enable-debug [ Usage ] By invoking jumpgate without arguments you get the following: usage: ./jumpgate [-hsvi] [-b ] [-l ] [-r ] [-a ] [-f ] [-c ] [-L ] With the -h option you get more help on the command line arguments: jumpgate v0.7 by Patroklos Argyroudis usage: ./jumpgate [-hsvi] [-b ] [-l ] [-r ] [-a ] [-f ] [-c ] [-L ] -h this help message -s log jumpgate use via syslog(3) -v display version number and exit -i interactively ask the user where to forward -b specify the local IP to bind to -l specify the local listening port -r specify the remote port to forward the connection -a specify the host to forward the connection -f specify the filename to log the connection -c specify the maximum number of the connections backlog -L specify the latency in microseconds So, a simple invocation of jumpgate could be the following: $ ./jumpgate -s -l 4000 -r 21 -a bsd.gr This forwards all connections coming to the local machine on port 4000 to bsd.gr port 21 and logs the connected party via syslog(3). Another invocation is the following: $ ./jumpgate -i -l 4000 -f jumpgate.log Jumpgate waits for connections on port 4000 on the local machine, then asks the connected party where to forward the connection, and logs the entire forwarding session to the jumpgate.log file. I'm sure you got the idea. [ Acquisition ] You can find jumpgate at: http://ntrg.cs.tcd.ie/~argp/software/ and/or at: http://jumpgate.sourceforge.net/ [ Acknowledgments ] Ioanna Stamouli, for continuous testing and feedback. Georgios Kargiotakis, for his helpful feedback. Oliver Fromme, for his great additions to the program. Jesper Peterson, for his fixes regarding Solaris. -- Patroklos Argyroudis http://ntrg.cs.tcd.ie/~argp/ $Id: README,v 1.30 2002/11/23 17:25:33 argp Exp $