Перенаправление запросов порта 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
Другие вопросы по тегам