• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 425
  • Last Modified:

port monitoring and fowarding

I am stuck behind a firewall with the only ports open on the proxy being 3128 and 21 (for FTP).  What I am contemplating, is writing an application to watch certain ports and forward those ports to 3128 so I can get out from behind the firewall.

For example, steam, the valve software requires the following ports open in order to connect:
UDP 1200
UDP 27000 to 27015 inclusive
TCP 27030 to 27039 inclusive

What I would like to do is monitor the traffic on those ports and forward it to the proxy server at port 3128.  Steam is just an example, but a good example of a program that cannot be configured to work with a proxy server.

Any information is appreciated, not really looking for source code, but the theory behind doing this.  Of course source code will also work as a reference to the design.  I have done TCP programming before, but I am not sure how to monitor certain ports.  It will be developed for both my Win32 and Linux boxes.

TIA

0
boodabelly
Asked:
boodabelly
1 Solution
 
georg74Commented:
hi boodabelly,

there are few already available toos to do this,
also in public domain / as open source.

when you talk about proxy, which kind of proxy is it?
where is it located? on the firewall machine or
somewhere (anywhere) on the internet?

if you have to pass all packets through one port,
you need "tunneling".

with VPN (this is tunneling + authentication + encryption),
you get a "virtual network interface". to the
application, it appears as if you were somewhere else,
i.e. not behind that firewall.

when writing such software, you normally open TCP or UDP
sockets, i.e. you wait for packets.
on arrival, you wrap the packet again and forward it to its destination.
on the destination, there is a demangler software, waiting
for example on port 3128, which accepts the wrapped packet,
unpacks it and inserts it into the TCP/IP stack locally as if it were
coming from the original source.

but this is just the half of the story. for communication to work you
have to intercept related (!) packets coming from the application
before they are sent to the stack. This is accomplished by setting
so called hook functions. OS provides API for this. For example,
look for SetWindowsHookEx(); once intercepted, you wrap the
packet so that it is routed properly on the route back.

HTH,
georg
0
 
boodabellyAuthor Commented:
The proxy is on the firewall here.  I will search for through the open source projects and see what I can find.  I do not know exactly how to make this work, or how this network is setup.  Only way to find out is to start playing =).  That is the information that I was looking for and luckily I have done quite a bit of Windows API programming, I will just have to look into the reference material for Linux.

Thank you for the answer.
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now