Port Forwarding project
Main purpose of this project is mapping some ports from clients residing over the NAT so
all of them could be reached by connecting to some specific automatically opened ports on
the main server.
Project consists of client side and server side.
Client side:
Windows PE 32bit DLL, written on C++ or MASM on your choice. Should export at least 1 public
function (preffered c-style stack parameters conversion) which starts port mapping.
Should be implemented to work in 2 modes - map to specific port, passed as a parameter, or
map the connection and work as a SOCKS5 server without binding an extra port for it.
In both cases client dll first of all after public api is called, should establish
connection to main server. This connection should be done in style of an usual HTTP GET /
POST query. URL or server name/ip should be passed to api as one of parameters. This
connection should be established only via standart 80 / 8000 / 8080 / 443 ports. Established
link to main server is used to transfer all the possible sessions from a port, allocated for
this user/connection on the main server. Incapsulation should be done in a manner that a
user which connects to main server's specific port in many threads will feel himself as
connecting directly to machine there dll is present.
So this server link should transfer some kind of packets (built over the http-like
transport) to and from klient so both client-side and server-side software can combine all
the concurrent connections and transfer all data in concurrent socket's connections. This
was a multithreading should be supported
Server side:
*nix web-server software, preffered Perl script(s). This software assumed to be installed on
a dedicated server running RedHat or CentOS system, with any other requered software
(apache/nginx/php/mysql/etc) installed and configured as you describe in manual. Main points
are:
1) open (or use) port listening for concurrent dll-clients' connections. This should be done
in a way like a usual webserver do (see client-side description). Any client connecting here
should do some kind of authentification to be sure this is our dll not just a loitering web
-bot. Also connecting dll-client should provide self-id - Ascii string of 16 chars len,
which should be passed as one of dll's api parameters. This client-id id used to distinct
dll-client one from another. Please note that there may be more than 1 connection from a
particular dll-client, so server-side software should handle this case correctly - both
variants should be connectable. Also server-side should correctly handle error cases such as
timeouts during communication (adjustable for a reasonable number of cases), errors in
transferred data (each packet transmitted should have some kind of crc32 to maintain it's
integrity).
2) For each individual dll-client connection, open a port in range [30000..50000] and listen
for incoming connection. For each connection received on that opened port, all the traffic
should be routed to client-dll, and client-dll should route it futher so anyone connecting
to main server on particular port in [30000..50000] range feel itself just like connecting
from the machine there client-dll is runned from.
Please note again, that more than 1 connection at a time may be done to a particular port
opened on the server, and all the software's parts should handle this situation correctly.
I.e. simulational connects should be accepted and working.
Please note that we do not accept any third-party software like OpenVPN. All the work on the
client side should be done within 1 dll, without any files dropped out or any drivers
installed. No changes should be done to filesystem or registry.
All source codes and documentation are requred.
Please add to your bid "i am not a robot".
Name: Gritsenko Stanislav About Me: I am a 4+ years experienced linux server administrator. I am now looking forward to get a reputable full time technical support position, or a part-time server setup and security expert position. Education: Degree in Computer Science and Engineering with first class. Bachelor Of Computer Application & Master in network protocol design from PDTU, Mariupol,Ukraine. Expertise and Skills: Expert in cPanel servers, Familiar with Plesk, Enzim and servers without control panels. * Excellent knowledge for load balancing & clusters setup. * Experienced with XEN Environment. * Passionate about advanced linux IP firewalling and security. More Information: I have attached my CV with this email. So please check & consider. Thanks Gritsenko Stanislav
Name: Ankur Kumar Bhardwaj
About Me:
I am a 5+ years experienced linux server administrator. I am now looking forward to get a reputable full time technical support position, or a part-time server setup and security expert position.
Education: Degree in Computer Science and Engineering with first class. Bachelor Of Computer Application & Master in network protocol design from GuruNanak Dev University, Amritsar.
Expertise and Skills:
* RHCE (RHEL 5) ->RedHat ID:805009471241098
* Cisco Certified Network Associate (CCNA)->Cisco ID:CSCO11213978
* Microsoft certified Network Engineer (MCSE)->MCP ID:3832932
* Well experienced with working for many leading data centers and webhosts. e.g lunarpages.
* Well experienced in handling L1/L2/L3 level tech support, Security and Installation works.
* Expert in cPanel servers, Familiar with Plesk, Enzim and servers without control panels.
* Excellent knowledge for load balancing & clusters setup.
* Experienced with VPS(Virtuozzo) Environment.
* Passionate about advanced linux IP firewalling and security.
* Excellent written communication skills.
* Excellent technical training skills.
* Excellent team building and leadership skills.
* Well experienced in leading offshore outsourced teams for webhosts/NOCs.
Other Technical Activities:
* Technical writing and documenting:
Has published technical articles related to server configuration, security etc in leading linux magazines.
* Experienced in conducting technical presentations.
More Information:
I have attached my CV with this email. So please check & consider.
Thanks
Ankur Kumar Bhardwaj