Вопрос или проблема
Я хотел бы, чтобы мои посетители, подключенные к DMZ, могли получать доступ к услугам через их глобальный DNS IP (wan
), который перенаправляется в другую зону, скажем, lan
.
- OpenWRT
wan
– 12.23.34.45 - клиент подключен к
dmz
– 192.168.2.101 - httpd находится в
lan
– 192.168.1.2, настроен для vhostsomeservice.net
(разрешается в 12.23.34.45)
Теперь клиент из dmz
пытается получить доступ к someservice.net с помощью своего браузера и, следовательно, будет пытаться подключиться к 12.23.34.45:80, что, по моему представлению, должно происходить через зону wan
, а затем перенаправляться обратно в lan
.
Где-то в цепочках openwrt блокирует это, потому что это подключение не удается.
Моя конфигурация контроля трафика в настоящее время выглядит следующим образом:
lan
->wan
dmz
->wan
lan
->vpn
lan
->dmz
Буду признателен за любые подсказки!
Этот конкретный сценарий был связан с проблемой конфигурации NAT loopback в OpenWRT. Исходя из списка изменений, это было реализовано в базовой системе /etc/hotplug.d/firewall/10-nat-reflection только начиная с версии 10.03.1-rc4 (которую я использую), но LuCI 0.9 может только назначать перенаправления в зону “lan”. Согласно разработчику OpenWRT, LuCI 0.10 сможет назначать перенаправления и в другие зоны. На данный момент ручное перенаправление в /etc/config/firewall с параметром “option dest dmz” даст желаемый результат.
Ответ или решение
Конечно, я помогу вам разобраться с проблемой NAT-циклической привязки (NAT loopback) в OpenWRT для вашей сетевой конфигурации с DMZ.
Проблема, с которой вы столкнулись, действительно связана с настройками NAT в OpenWRT. По умолчанию, NAT loopback может не работать так, как вы ожидаете, в частности, из-за ограничений в конфигурации, связанных с тем, что LuCI не позволяет назначать переадресацию на другие зоны, кроме как на зону "lan".
Решение проблемы
Вам нужно будет внести изменения в конфигурацию фаервола с помощью текстового редактора. Пожалуйста, выполните следующие шаги:
-
Откройте конфигурационный файл фаервола. Вам необходимо редактировать файл
/etc/config/firewall
. Вы можете сделать это, используя команду SSH, чтобы подключиться к вашему маршрутизатору:ssh root@192.168.1.1
После успешного подключения выполните:
vi /etc/config/firewall
-
Добавьте ручное перенаправление. Найдите секцию, отвечающую за переадресацию, или создайте новую, в зависимости от вашей конфигурации. Вам нужно будет добавить следующее:
config redirect option src 'dmz' option src_dport '80' option dest 'lan' option dest_ip '192.168.1.2' option dest_port '80' option name 'DMZ to LAN Redirect'
Это правило позволит клиентам с зоны DMZ обращаться к службе, работающей на ‘lan’, через адрес ‘someservice.net’, который разрешается в ваш внешний IP-адрес (12.23.34.45).
-
Перезапустите службу фаервола для применения изменений:
/etc/init.d/firewall restart
Дополнительные рекомендации
-
Убедитесь, что у вас на маршрутизаторе разрешен трафик между зонами DMZ и LAN. Вы можете это сделать, убедившись, что правила фаервола не блокируют эти соединения.
-
Проверьте настройки маршрутизатора и фаервола еще раз, если проблема не исчезнет. Можно также использовать утилиты для диагностики трафика, такие как
tcpdump
, чтобы отслеживать пакеты и убедиться, что они проходят правильно. -
Если у вас еще нет установленного пакета для управления трафиком, возможно, стоит рассмотреть возможность обновления вашей прошивки OpenWRT до более новой версии, так как более новые версии могут включать улучшения и фиксы для NAT loopback.
Следуя вышеописанным шагам, вы должны быть в состоянии настроить NAT loopback для устройств, подключенных к DMZ, и обеспечить их доступ к вашим службам в LAN через внешний IP-адрес. Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь задавать их.