lo que vas a hacer es un proxy firewall, ya hay mucho hechos y de seguro algunos de ellos usan C#.
No es algo facil de hacer... sobre todo si quieres hacer algo robusto...
ahora que para algo sencillo puedes revisar el namespace
System.Net
System.Remoting
etc