Использование iptables для перенаправления всего трафика на локальный веб-сервер
Aloha,
Я пытаюсь перенаправить весь трафик на моем маршрутизаторе 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.