Назад | Перейти на главную страницу

Правила IpTables для адаптивного портала

Я пытаюсь создать захватывающий портал и использую следующие правила iptables.

IPTABLES="/sbin/iptables"
EBTABLES="/sbin/ebtables"
DHCP="67:68"
SSH="22"
WWW="80"

$IPTABLES -t mangle -F
$IPTABLES -F

$IPTABLES -A INPUT -i lo -j ACCEPT
#ssh
$IPTABLES -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT


$IPTABLES -A INPUT -s 8.8.8.8 -j ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


$IPTABLES -N internet -t mangle
$IPTABLES -t mangle -A PREROUTING -j internet

awk 'BEGIN { FS="\t"; } { system("$IPTABLES -t mangle -A internet -m mac --mac-source "$4" -j RETURN"); }' /var/lib/users

$IPTABLES -t mangle -A internet -j MARK --set-mark 99

$IPTABLES -t nat -A PREROUTING -m mark --mark 99 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1

#$IPTABLES -t filter -A FORWARD -m mark --mark 99 -j DROP
#dns
$IPTABLES -t filter -A INPUT -s 8.8.8.8 -j ACCEPT
#http
$IPTABLES -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
#port dns
$IPTABLES -t filter -A INPUT -p udp --dport 53 -j ACCEPT
#drop
$IPTABLES -t filter -A INPUT -m mark --mark 99 -j DROP
echo "1" > /proc/sys/net/ipv4/ip_forward

$IPTABLES -A FORWARD -i eth0 -o eth0:1 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i eth0:1 -o eth0 -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Они работают, я помечаю все пакеты, а затем перенаправляю их на локальную страницу. К сожалению, при загрузке https-страниц перенаправление не работает. Я пробовал добавить следующее правило:

$IPTABLES -t nat -A PREROUTING -m mark --mark 99 -p tcp --dport 443 -j DNAT --to-destination 192.168.1.1

Но это не помогло. Что не так с этими правилами? Мне нужно перенаправить весь трафик на одну страницу.

Буду признателен за любую помощь.

Насколько я знаю, вы не можете перенаправить трафик с порта 443 на порт 80.

Вы можете попробовать использовать mod_rewrite в Apache2, чтобы решить вашу проблему.