As erniebeek says, everything is possible, but it´s a question of budget. Build a solid proxy could be cheap with desired results, but to do by your own could take long time if you are not experienced in that field. Or you can save your time and implement some existing (enterprise) solution, I saw in production Kerio Control, nice piece of SW which did everything cuistomer needed:http://www.kerio.com/control

bvut definitely there is a bunch of solutions. you have to define what you expxt from that solution (what it must cover) and what is your budget for it (to buy, for maintenance, HW requirements)