Алоха,
Я пытаюсь перенаправить весь трафик на моем маршрутизаторе Wi-Fi на локальный веб-сервер с помощью iptables. Я не уверен, что правильно написал команду, а также хочу исключить IP-адрес маршрутизатора (172.16.0.1) из правила, чтобы не заблокировать себе доступ к маршрутизатору.
Что я придумал на данный момент:
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -j DNAT --to 172.16.0.2:80
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 443 -j DNAT --to 172.16.0.2:80
Я еще не проверял вышеизложенное, так как боюсь, что это приведет к тому, что я больше не смогу получить доступ к маршрутизатору, лол. Как исключить перенаправление 172.16.0.1 на 172.16.0.2?
Настройка: 172.16.0.2 — IP-адрес веб-сервера, 172.16.0.1 — мой маршрутизатор (DD-WRT), подключение к Интернету отсутствует.
Пример того, чего я пытаюсь добиться:
- Пользователь подключается к точке доступа Wi-Fi, пытается получить доступ к www.siteA.com, но перенаправляется на 172.16.0.2 (/index.html)
- Пользователь подключается к точке доступа Wi-Fi, пытается получить доступ к www.siteB.com, но перенаправляется на 172.16.0.2 (/index.html)
- Пользователь пытается получить доступ к 172.16.0.1, но никакого направления не происходит :)
Хорошего дня и спасибо!
решение1
Поскольку правила iptables обрабатываются в определенном порядке, первым правилом должно быть разрешение всего трафика, направленного на маршрутизатор.
iptables -t nat -I PREROUTING -i br0 -p tcp -d 172.16.0.1--dport 80 -j ACCEPT
Далее добавьте правила перенаправления трафика.
iptables -t nat -A PREROUTING -d !172.16.0.1 -i br0 -p tcp --dport 80 -j DNAT --to-destination 172.16.0.2:80
Я не думаю, что это сработает для https, так как он не подключается к серверу с SSL.