Использование iptables для перенаправления всего трафика на локальный веб-сервер

Использование iptables для перенаправления всего трафика на локальный веб-сервер

Алоха,

Я пытаюсь перенаправить весь трафик на моем маршрутизаторе 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.

Связанный контент