We need a windows and linux program that can create a connection in between and forward all traffic from one port on the linux device to the windows device.
Say the server (linux) is on example.com. I run the linux program as follows (certain arguments are omitted to simplify the description):
listen -port 3456
This program starts listening on port 3456 for incoming connections.
Say I have apache running on port 443 on my home machine (windows)
The client program will run as follows
forward -port 443 -server_addr [login to view URL] -server_port 3456
Running this program will connect to [login to view URL] using SSL (openssl is fine). The server ([login to view URL]) will select a random port and will start forwarding connections from this port to the client.
Say the server selects port 7890 (randomly among unused ports).
After this step, I should access apache on my home computer through <[login to view URL]>.
## Deliverables
This is like using putty (windows client) and openssh (linux server) to open a port on the server that forwards to the client.
See <[login to view URL]>
The connection in between should be SSL (openssl is fine).
The command line of the windows client is
forward
-port local_port_number
-key client-private-key
-password password-for-client-private-key
-server_addr server-url
-server_port server-port-number
-server_cert server-certificate
[-ca ca for server certiicate]
On the linux device, the command line interface is:
listen
-cer-store client-certificates
[-ca client-certificate-ca]
-key server-private-key
-password password-for-server-key
-port port-number
At each connection request, the server randomly chooses a port (as opposed to the user specified port in opnessh protocol) and issues the following command "configure port client-domain) where port is the random port chosen by the server, client-domain is the Subject in the client certificate (such as [login to view URL])
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
Windows, linux