Creo que lo mejor que puedes hacer es algo de lo que te han recomendado. Vas a perder menos tiempo y va a ser más eficaz.
Si aún así quieres hacerlo tú mismo, te indico cómo lo haría yo:
Redirigir todas las peticiones del puerto 80 (http) hacia afuera, las rediriges al puerto dónde tengas tu servicio. Filtras la petición en base a una tabla de direcciones para saber si el host/recurso/cosa está permitido, y de ser así reenvias al petición hacia el servidor. La respuesta del servidor la vuelves a escribir en tu puerto 80 (que es dónde tendrías al cliente)
El problema está en que vas a tener que estudiar el protocolo http para saber qué te va a llegar y qué tienes que enviar.
http://es.wikipedia.org/wiki/Hypertext_Transfer_Protocolhttp://tools.ietf.org/html/rfc2616