Giter VIP home page Giter VIP logo

port-proxy's Introduction

port-proxy

port-proxy with service install

original source from "Accordata Port-Proxy V0.95" http://www.accordata.net/downloads/port-proxy/

connection pending/freeze patch & linux upstart script by Jioh L. Jung([email protected])

Install

  • run install.sh script. this script automatically generate upstart script for service.
  • set /etc/port-proxy.conf
  • service port-proxy restart
# listening port or port with binding ip , destination
export PORT_PROXY_LISTS="80,localhost:8080|127.0.0.1:82,www.naver.com:80"
wget -qO- https://raw.githubusercontent.com/ziozzang/port-proxy/master/src/install.sh | bash

Configuration

All the configuration is done in the file port-proxy.conf, which is readed from the current directory when starting port-proxy

There are the following parameters which can apear multiple times:

forward=local addr,destination addr,[proxy 1],[proxy 2]

  • local addr : Define where port-proxy listen for connections. It can be either a port or an address with port (eg. 127.0.0.1:8080; localhost:8080) Without an address your system listens on all interfaces, also an dialup line.
  • destination addr : Defines the destination as addr:port (eg. 192.168.0.1:80 or remotehost.com:80) Please note: If you use an proxy, this address is from the view of the proxy. If you use localhost or 127.0.0.1 it addresses the proxy host. If you enter the special address [PROXY], port-proxy behave like an https proxy an reads the destination from the connecting client.
  • proxy 1 Defines an https proxy to use.
  • proxy 2 Defines an 2nd https proxy to use. This is usally port-proxy listening an port 443

allow_proxy_to=addr

Defines which destinations are allowed if you use [PROXY] as destination.

Addr is executed with perl regex and my be something like this:

allow_proxy_to=localhost:23	# allow telnet
allow_proxy_to=192.168..*:80	# http to all 192.168.x.x

Example 1: Port forwarding

Task: Allow access to a service on a know host

[client] --- [proxy] --- [remote]

Your client has no access to [remote], but has access to [proxy], To fetch mail from [remote], you may configure on [proxy]:

forward=110,remote.com:110

Your client connects to [proxy] an port 110 an fetches mail from remote.com.

Example 2: Port forwarding with https tunnel

Task: Your client want to telnet to a know host, but is behind an firewall with only access to an https proxy. Configuration on Client (not working):

forward=localhost:9023,remote.com:23,https-proxy:8080

Since most proxys allow only connection to port 443 you don't has access to remote.com:23. To get it work, you need to setup telnet on port 443 at remote.com:

  • Insert in inetd.conf of remote.com: 443 stream tcp nowait root /usr/sbin/tcpd in.telnetd
  • Use configuration: forward=localhost:9023,remote.com:443,https-proxy:8080
  • On your client use: telnet localhost 9023

Another disadvantage is that you only can configure one service on port 443.

Example 3: Port forwarding with https tunnel and an special proxy to access individual remote addesses

[client] --- [https-proxy] --- [remote host proxy:443] -- [remote service] To cover the problems noted above, port-proxy can behave like an proxy listening an port 443 and forward to your needed service.

You need to run port-proxy on [client] and [remote] port-proxy.conf on your client (telnet example):

forward=localhost:9023,localhost:23,https-proxy:8080,remote.com:443 (Note: 'localhost:23' is from the view of remote.com. Therefore it addresses telnet on remote.com)

port-proxy.conf on remote.com:

forward=443,[PROXY]	 # Listen on port 443 and behave like an https proxy
allow_proxy_to=localhost:23	# telnet

Connection flow:

  • On client: telnet localhost:9023
  • port-proxy connects to https-proxy:8080
  • https-proxy connects to remote.com:443
  • port-proxy an remote.com connects localhost:23 (telnet)

Running port-proxy

perl port-proxy [-d] [-D] [-c conffile]
-d	 Enable debug output
-D	 Become a background process (detach don't work on windows)
-c conffile	 Specify an config file

Example:

/usr/bin/port-proxy -D -c /etc/port-proxy.conf

License

This script is published 'as is', without warrenty or support.

You are allowed to use and distribut without changes If you distribute modified version, you must not remove the copyright or author information.

You should document the changes and may add your copyright for that parts.

If you use parts in your software, you should honor our work somewhere in your documentation.

port-proxy's People

Contributors

ziozzang avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.