Ну самый тупой способ - поставить на firewall tcpdump и парсить его выдачу скриптом. Подробность - неограниченная, реализовавать - замучаешься. Ресурсы кушать тоже будет немало. Многого можно добиться средствами IP-accounting в ядре Linux (но вот куда ходили - не узнаешь - не писать же на каждый адрес в Internet отдельное правило на firewall) Но если речь идет только об http-траффике, то ставится transparent (или не transparent, если юзеров можно заставить пользоваться) proxy и в логах proxy-сервера (скорее всего squid, все и смотрится)