Captive Portal для мостового интерфейса

Мне нравится создавать простой портал, который работает для интерфейса, который является частью моста.

Мостовой интерфейс br0 (10.19.1.1/16) состоит из двух интерфейсов eth0 и eth1. За eth1 стоят клиентские компьютеры. За eth0 находится коммутатор, к которому подключен интернет-шлюз.

Для встроенного портала все tcp-запросы на порт 80, поступающие от клиентов за eth1, должны быть направлены на локальный веб-сервер.

Следующие строки, кажется, работают, так как запрос веб-сайта перенаправляется на локальный веб-сервер. Проблема в том, что после использования строки аутентификации, приведенной ниже, клиент больше не может загружать обычные веб-сайты.

Я уже искал в интернете, но не нашел решения.

PORTAL_INT="eth1"
PORTAL_IP="10.19.1.1"

#'drop' packets from being bridged
ebtables -t broute -A BROUTING  -i $PORTAL_INT -p IPv4 --ip-proto tcp --ip-dport 80 -j redirect --redirect-target DROP

iptables -N internet -t mangle
iptables -t mangle -A PREROUTING -j internet

#authenticated
#iptables -t mangle -I internet 1 -m mac --mac-source $CLIENT_MAC -j RETURN

#mark all traffic
iptables -t mangle -A internet -j MARK --set-mark 99

#redirect website access
iptables -t nat -A PREROUTING -m mark --mark 99 -p tcp --dport 80 -j DNAT --to-destination $PORTAL_IP
iptables -t filter -A FORWARD -m mark --mark 99 -j DROP
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -m mark --mark 99 -j DROP

0 ответов

Другие вопросы по тегам