Redirection du port 80 requêtes au server Web local avec IPFW

Je configure un routeur freebsd et je souhaite que certains IP sur mon réseau soient transmis à notre server Web local s'ils font des requests du port 80. Un exemple serait: l'user interdit essaie de surfer sur le Web, mais toutes ses requests sont transmises à la page Web qui l'avise qu'il est interdit. Comme je comprends, je peux utiliser IPFW pour cela et peut-être NATD.

Je vous serais reconnaissant si quelqu'un pouvait me montrer un bon exemple sur la façon de le faire.

Si vous ne voulez pas déranger avec natd, vous avez besoin d'un kernel compilé avec l'option IPFIREWALL_FORWARD. Vous pouvez vérifier votre kernel actuel émettant 'sysctl kern.conftxt | grep IPFIREWALL_FORWARD '. Si cette option est absente, vous devez rebuild votre kernel (ou coller à pf).

Si vous avez un tel kernel, il vous suffit d'append ces règles:

ipfw add allow tcp from any to 192.168.0.0/24 via internal_if0 ipfw add fwd localhost,80 tcp from any to any 80 via internal_if0 

FreeBSD vient maintenant avec 3 pare-feu différents (sic!), ipfw2 est l'un d'entre eux et deux autres sont l' ipfilter Darren Reed et le PF d'OpenBSD. Les deux ont un NAT embedded qui prend en charge la redirection du port "de la boîte", voir, par exemple, le path de PF. Alors pourquoi ne pas les utiliser à la place?