proxpy Code
Brought to you by:
pgbennett
File | Date | Author | Commit |
---|---|---|---|
html | 2015-01-20 | pgbennett | [r1] Add source |
nbproject | 2015-01-20 | pgbennett | [r1] Add source |
src | 2015-01-20 | pgbennett | [r1] Add source |
COPYING | 2015-01-20 | pgbennett | [r1] Add source |
build.xml | 2015-01-20 | pgbennett | [r1] Add source |
manifest.mf | 2015-01-20 | pgbennett | [r1] Add source |
proxpy.bat | 2015-01-20 | pgbennett | [r1] Add source |
proxpy.properties | 2015-01-20 | pgbennett | [r1] Add source |
proxpy_start.sh | 2015-01-20 | pgbennett | [r1] Add source |
proxpy_stop.sh | 2015-01-20 | pgbennett | [r1] Add source |
readme.txt | 2015-01-20 | pgbennett | [r1] Add source |
svn-commit.tmp | 2015-01-20 | pgbennett | [r1] Add source |
truststore.jks | 2015-01-20 | pgbennett | [r1] Add source |
/** * Peter Bennett's General Purpose Proxy and debug tool * This has been used in development environments, it works for proxying all types of TCP traffic. * It can be used to bypass firewall restrictions, for logging messages for debug purposes, and * to add SSL to a non SSL connection for debug or other purposes. * It has never been used in production. It is fully multi threaded so it may be able to handle * high volumes. * Runs on unix or windows, wherever there is a java environment. * * Usage: * java -jar proxy.jar xxxx.properties * java -jar proxy.jar xxxx.properties closeDown * * If logging is turned on in the property file you may want to redirect the output to a file. * Also you may want to put & on the end under unix so it runs in a separate process. * * Parameter file: * closedownport=25999 (available port # used for shutting down the proxy) * truststore= (keystore - optional - only used for SSL) * logging= (true / false default = false, for logging all messages) * inport1= (required - assign a port number) * inaddress1= (optional - only if need to restrict to an ip address) * inssl1= (true / false default = false, specify true if ssl is used and logging of decrypted messages) * inkeystore1= (required if inssl1 is true) * inkeypasswd1= (required if inkeystore1 provided) * outport1= (required - assign a port number) * outaddress1= (required - where to proxy to) * outssl1= (true / false default = false, specify true if ssl is used at destination) * outkeystore1= (optional - only if 2-way cert needed for SSL) * outkeypasswd1=(required if outkeystore1 provided) * the ones with '1' at the end can be repeated as many times as desired * with numbers from 2 up. * SSL Options - * 1. If input and output are both ssl and logging is false you can use inssl1 and outssl1 both false. * The ssl will proxy straight through. If logging is true in this case then encrypted messages * would be logged. That is not useful. * 2. If input and output are both ssl and logging is true you must use inssl1 and outssl1 both true. * You must have a certificate and keystore for inkeystore, the originator will see that certificate. * for 1 way SSL you do not need outkeystore. For 2way SSL you need outkeystore with a certificate. * The server will see that certificate. * 3. You can convert non SSL to SSL. If sender does not want to use SSL but receiver * uses SSL leave inssl1 as false but specify outssl1 as true. You do not need a keystore unless the * receiver uses 2 way SSL. In that case specify outkeystore and the receiver will see this certificate. * 4. You can convert SSL to non SSL. If sender uses SSL but receiver does not, set inssl true and outssl false. * You need inkeystore and sender will see this certificate. If two way SSL is used, we will not check * The sender's certificate. * 5. You can set up a SSL tunnel for non SSL users by using proxy on the sending machine and on the receiving * machine with appropriate options and a keystore on the receiving machine. */