Перенаправление запросов порта 80 на локальный веб-сервер с IPFW
Я настраиваю маршрутизатор freebsd и хочу, чтобы определенные IP-адреса в моей сети были перенаправлены на наш локальный веб-сервер, если они отправляют запросы на порт 80. Например, запрещенный пользователь пытается просматривать веб-страницы, но все его запросы перенаправляются на веб-страницу, которая уведомляет его о том, что он заблокирован. Как я понимаю, я могу использовать IPFW для этого и, возможно, NATD.
Я был бы признателен, если бы кто-нибудь показал мне хороший пример того, как это сделать.
2 ответа
FreeBSD теперь поставляется с 3 (так!) Различными межсетевыми экранами, ipfw2
только один из них, и два слева - Даррен Рид ipfilter
и OpenBSD PF
, Оба они имеют встроенный NAT, который поддерживает перенаправление портов "из коробки", см., Например, способ PF. Так почему бы не использовать их вместо этого?
Если вы не хотите беспокоиться о natd, вам нужно ядро, скомпилированное с параметром IPFIREWALL_FORWARD. Вы можете проверить текущее ядро, которое выдает 'sysctl kern.conftxt | grep IPFIREWALL_FORWARD'. Если эта опция отсутствует, вам нужно пересобрать ядро (или придерживаться pf).
Если у вас есть такое ядро, вам просто нужно добавить следующие правила:
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