No description
Find a file
2006-02-06 12:51:45 +00:00
contrib Updated manual page 2006-02-06 12:51:45 +00:00
debian Updated manual page 2006-02-06 12:51:45 +00:00
_copyright.inc Working to release... check documents and Makefiles 2004-09-30 09:44:30 +00:00
base64.c Fixed compiler-warnings for gcc-4... mostly type-checking 2006-02-06 11:36:53 +00:00
base64.h Fixed compiler-warnings for gcc-4... mostly type-checking 2006-02-06 11:36:53 +00:00
basicauth.c Fixed compiler-warnings for gcc-4... mostly type-checking 2006-02-06 11:36:53 +00:00
basicauth.h Cleaning up more... moving more stuff to separate .c and .h files 2002-04-20 15:54:43 +00:00
CHANGES - Replaced -g/-G (proxy host and port) with -p proxy:post shorthand 2006-02-06 10:58:26 +00:00
cmdline.c - Replaced -g/-G (proxy host and port) with -p proxy:post shorthand 2006-02-06 10:58:26 +00:00
cmdline.h - Replaced -g/-G (proxy host and port) with -p proxy:post shorthand 2006-02-06 10:58:26 +00:00
config.h - Replaced -g/-G (proxy host and port) with -p proxy:post shorthand 2006-02-06 10:58:26 +00:00
CREDITS Included 2 small patches by Mike Frysinger (makefile fix, 64bit cleanup) 2006-02-06 09:57:48 +00:00
global.h Missing files 2005-09-30 09:53:23 +00:00
http.c Fixed compiler-warnings for gcc-4... mostly type-checking 2006-02-06 11:36:53 +00:00
io.c - Replaced -g/-G (proxy host and port) with -p proxy:post shorthand 2006-02-06 10:58:26 +00:00
io.h Cleaning up more... moving more stuff to separate .c and .h files 2002-04-20 15:54:43 +00:00
LICENSE.txt Updated textfiles 2001-11-28 08:53:57 +00:00
Makefile Updated makefiles, removed -DWITH_NTLM as it wasn't completely implemented 2006-02-06 10:11:11 +00:00
Makefile.cygwin Updated makefiles (some didn't include ntlm.o) 2006-02-06 12:46:07 +00:00
Makefile.darwin Updated makefiles (some didn't include ntlm.o) 2006-02-06 12:46:07 +00:00
Makefile.no-gcc Updated makefiles (some didn't include ntlm.o) 2006-02-06 12:46:07 +00:00
Makefile.no-gnu-getopts Updated makefiles (some didn't include ntlm.o) 2006-02-06 12:46:07 +00:00
Makefile.solaris Updated makefiles (some didn't include ntlm.o) 2006-02-06 12:46:07 +00:00
messages.c Fixed compiler-warnings for gcc-4... mostly type-checking 2006-02-06 11:36:53 +00:00
ntlm.c Fixed compiler-warnings for gcc-4... mostly type-checking 2006-02-06 11:36:53 +00:00
ntlm.h Added copyright-header to ntlm-files 2005-12-16 09:07:56 +00:00
proxytunnel.c Fixed compiler-warnings for gcc-4... mostly type-checking 2006-02-06 11:36:53 +00:00
proxytunnel.h Cleaning up more... moving more stuff to separate .c and .h files 2002-04-20 15:54:43 +00:00
README Updated README with all the recent changes 2006-02-06 11:03:37 +00:00

-----------
proxytunnel
-----------

Author:		Jos Visser <josv@osp.nl>, Mark Janssen <maniac@maniac.nl>
Date: 		Mon Feb  6 11:58:17 CET 2006
Version:	1.6.0

Hi all,

This is proxytunnel, a program that connects stdin and stdout
to an origin server somewhere in the Internet through an industry
standard HTTPS proxy. I originally wrote this program to be used
as an extension to SSH, to be able to SSH to my box at home. In 
this file, I will describe the use with SSH. If you want to use it
with some other application, feel free, and let me know!


Usage:

Proxytunnel is very easy to use, when running proxytunnel with the help
option it specifies it's command-line options.

$ ./proxytunnel --help
Proxytunnel 1.6.0
Copyright 2001-2005 Proxytunnel Project
Jos Visser (Muppet) <josv@osp.nl>, Mark Janssen (Maniac) <maniac@maniac.nl>

Purpose:
  Build generic tunnels trough HTTPS proxy's, supports HTTP authorization

Usage: Proxytunnel [OPTIONS]...
   -h         --help              Print help and exit
   -V         --version           Print version and exit
   -i         --inetd             Run from inetd (default=off)
   -a INT     --standalone=INT    Run as standalone daemon on specified port
   -p STRING  --proxy=STRING      Proxy host:port combination to connect to
   -d STRING  --dest=STRING       Destination host:port to built the tunnel to

Parameters for proxy-authentication (not needed for plain proxies):
   -u STRING  --user=STRING       Username to send to HTTPS proxy for auth
   -s STRING  --pass=STRING       Password to send to HTTPS proxy for auth
   -U STRING  --uservar=STRING    Env var with Username for HTTPS proxy auth
   -S STRING  --passvar=STRING    Env var with Password for HTTPS proxy auth
   -N         --ntlm              Use NTLM Based Authentication
   -t STRING  --domain=STRING     NTLM Domain (default: autodetect)
   -r STRING  --remproxy=STRING   Use a remote proxy to tunnel over (2 proxies)
   -H STRING  --header=STRING     Add STRING to HTTP headers sent to proxy

  If you don't provide -s or -S you will be prompted for a password.

Miscellaneous options:
   -v         --verbose           Turn on verbosity (default=off)
   -q         --quiet             Suppress messages  (default=off)

Examples:
Proxytunnel [ -h | -V ]
Proxytunnel -i [ -u user ] -p proxy:port -d host:port [ -v | -q ]
Proxytunnel -i [ -U envvar ] -p proxy:port -d host:port [ -v | -q ]
Proxytunnel -a port -p proxy:port -d host:port [ -v | -q ]


To use this program with OpenSSH to connect to a host somewhere, create
a $HOME/.ssh/config file with the following content:

Host foobar
	ProtocolKeepAlives 30
	ProxyCommand /path/to/proxytunnel -p proxy:8080 -u user
-d mybox.athome.nl:443

With:

- foobar		The symbolic name of the host you want to connect to
- proxy         	The host name of the proxy you want to connect through
- 8080			The port number where the proxy software listens to
- user			Your proxy userid
- mybox.athome.nl	The hostname of the box you want to connect to (ultimately)
- 443			The port number of the SSH daemon on mybox.athome.nl

If your proxy doesn't require the username and password for using it,
you can skip these options. If you don't provide the password on the
command-line (which is recommended) you will be prompted for it by
proxytunnel. If you are on a trusted system you can also put the
password in an environment variable, and tell proxytunnel where to
find it with '-S'.

If you want to run proxytunnel from inetd add the '--inetd' option.

Most HTTPS proxies do not allow access to ports other than 443 (HTTPS)
and 563 (SNEWS), so some hacking is necessary to start the SSH daemon on
the required port. (On the server side add an extra Port statement in
the sshd_config file, or use a redirect rule in your firewall.)

When your proxy uses NTLM authentication (like Microsoft IIS proxy)
you need to specify -N to enable NTLM, and then specify your username
and password (and optionally domain, if autodetection fails).
The NT domain can be specified on the commandline if the
auto-detection doesn't work for you (which is usually doesn't)

If you want to have the first proxy connect to another http proxy (like
one you can control, specify -r proxy2:port. The first proxy will then
connect to this remote proxy, which will be asked to connect to the 
requested destination. Note that authentication doesn't (yet) work on
this remote proxy.

When all this is in place, execute an "ssh foobar" and you're in business!

Share and Enjoy!

Jos Visser <josv@osp.nl>
Mark Janssen <maniac@maniac.nl>