Skip to main content

HTTP Negotiate (SPNEGO) proxy authentication support for applications.

Project description

# Proxy-Negotiate

HTTP Negotiate (SPNEGO) proxy authentication support for applications. This
allows applications that do not support HTTP proxies or do not support HTTP
proxies with Negotiate authentication to allow them to safely traverse
corporate firewalls without whitelisting IP addresses or MAC addresses and
rather relying on secure user authentication. This tool is not intended to
bypass firewall or proxy restrictions, in fact this tool was designed for better
corporate security and centralized control.

## Installation

Install the easy way through PyPi:

pip install proxy-negotiate

Or alternatively download and build yourself:

```
git clone https://github.com/cour4g3/proxy-negotiate
cd proxy-negotiate
python setup.py install
```

## Usage

On Windows you need to be connected to a domain or alternatively running the MIT
Kerberos Ticket Manager, on Linux you need to install and setup the MIT or
Heimdal Kerberos client/workstation tools.

### nc-negotiate

A netcat-like implementation for use with programs such as SSH; now by simply
using ProxyCommand, SSH can safely traverse the proxy through an HTTP CONNECT
TCP tunnel.

nc-negotiate host port [proxy_host] [proxy_port]

Example of usage with `ssh` command line:

ssh -o ProxyCommand="nc-negotiate %h %p" myexternalhost.com

Or in your `~/.ssh/config`:

```
Host myexternalhost.com:
ProxyCommand nc-negotiate %h %p
```

### proxy-negotiate

For applications that support proxies but don't support authentication or don't
support Negotiate, this acts a pseudo-proxy that applies the correct
Authorization headers and then passes the connection request on:

proxy-negotiate [port] [proxy_host] [proxy_port]

Then set your proxy configuration in your application or alternatively your
proxy environment variables:

HTTP_PROXY=http://localhost:8080

Now your application will correctly authenticate through the proxy without
knowing how to. It also means no network passwords floating around in arbitary
configuration files.

## Todo

- Better parsing of the `http_proxy` and other proxy environment variables.
- Consider methods to route requests from applications that do not support
proxies at all.

## License

Licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Proxy-Negotiate-0.2.1.tar.gz (5.0 kB view details)

Uploaded Source

File details

Details for the file Proxy-Negotiate-0.2.1.tar.gz.

File metadata

File hashes

Hashes for Proxy-Negotiate-0.2.1.tar.gz
Algorithm Hash digest
SHA256 c3144c248c9ff04a36d5cb47238708b9a07d23c279b4e6058358fd0583dc94be
MD5 f573309ce974f00603def1341dc1604c
BLAKE2b-256 83700b926bdc38e2d61086a038879c07b633da75c8a622682ccb5c167bfbc3ae

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page