I need to build some software infrastructure to manage computers which are connected to the internet using a 3G modem (about 30-40 clients).
The scenario that I came up with for project needs:
- Client established internet connection (this is made on OS startup - no user action needed)
- Client make connection to some server in internet (I named it "PROXY" - maybe there is a better name)
- From now client is connected to PROXY server and it is listening for connections on some port (static or dynamic port?)
The same is true for all other machines.
What I need:
- When I connect to PROXY server I want to see list of all connected clients to it (optionaly time of connection, client IP etc)
- I can make connection to any clients but not P2P I want to connect using PROXY server (some kind of tunneling?)
- Access to client should be impossible without PROXY server.
Example:
- Client connect to internet using 3G modem - received IP: 149.10.20.30
- Client connect to PROXY (79.10.11.12)
- I connect to PROXY (terminal / VNC / putty / whatever). I can list connected clients (ex. using some command: $ show_connected_clients). And I see list: IP / MAC or other informations.
From my computer (or PROXY server if this is simpler) I can make connection to client (terminal / VNC / RDP whatever) using for this PROXY server.
$ connect_to 149.10.20.30 using 79.10.11.12
Is such a thing is to realize with the help of the built-in OS services? Or maybe I need to use some commercial software or write my own application?
Writing this from scratch is possible but I do not want to reinvent the wheel.
Some advice? Thanks in advance for any help.
PS. Clients OS (probably all) is Linux. PROXY server OS - I can make decision by my own.