Задать вопрос
@vitalyrline

Как настроить DMZ, проброс портов и NAT loopback?

Здравствуйте!
Имеется сервер NextCloud в виде контейнера Proxmox. Есть задача открыть к нему доступ из интернета. У организации есть белый ip адрес.
Решил разместить сервер в демилитаризованной зоне (DMZ) и затем уже пробрасывать порты. Но поскольку раньше не приходилось настраивать DMZ не уверен, что сделал это правильно.
Опишу как настроил DMZ. В качестве роутера выступает Mikrotik RB-951G ROS 6.49.19, у которого 5-й порт был свободен. Создал отдельный бридж (bridge_dmz), поместил этот порт туда и задал бриджу адрес 172.16.100.1/24. Настроил NAT на этот бридж. У основного бриджа адрес 192.168.1.1/24. В FW настроил правила блокирующие доступ из DMZ в основную сеть и к микротику.
Firewall Rule. Chain: forward. In.Interface: bridge_dmz. Out.Interface: bridge. Action: drop.
Firewall Rule. Chain: input. In.Interface: bridge_dmz. Action: drop.

Шнурок из 5 порта Микротика воткнул в свободную сетевуху на Проксмоксе. Там так же создал отдельный Linux bridge (vmbr2), в который поместил указанный сетевой интерфейс. Затем создал ещё один Linux bridge (vmbr3), в нём никаких сетевых интерфейсов нет. Этот бридж будет внутренней сетью для общения виртуальных машин между собой.
Поднял ВМ pfSense. Порт WAN повесил на vmbr2 и присвоил ему адрес 172.16.100.2/24. Порт LAN на vmbr3 с адресом 172.16.101.1/24. У контейнера Nextcloud адрес 172.16.101.2, интерфейс так же висит на vmbr3.
Далее на Микротике открыл порт, для примера это будет 11111 и настроил проброс этого порта на pfSense 172.16.100.2. С порта 11111 на pfSense настроил проброс на порт 443 контейнера NextCloud.
Проброс работает. Из интернета я попадаю на веб морду NextCloud. В то же время из сети 172.16.101.0 я не могу достучаться в сеть 192.168.1.1. Значит и DMZ работает.
Но основная проблема в том, что пользователям сети 192.168.1.1 так же нужно попадать в NextCloud. Изнутри не получится, для этого собственно и сделана DMZ. Если я правильно понимаю, нужно настроить Nat loopback на Микротике.
Что пробовал сделать.
NAT Rule. srcnat. Src.Address: 192.168.1.0/24 Dst.Address: 172.16.100.2. Action: masqerade
Firewall Rule. Chain: forward. Src.Address: 192.168.1.0/24. Dst.Address: 172.16.100.2. Protocol: 6(tcp). Dst.Port: 443. Action: accept
Но не получилось. Прошу помощи.

f238bd5aea89d13c66f945d1c6c1a7ff.png
  • Вопрос задан
  • 421 просмотр
Подписаться 1 Средний 9 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    1C-программист: расширенный курс
    18 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по информационной безопасности
    9 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
opium
@opium
Просто люблю качественно работать
Там нет dstnat-правила для hairpin. Srcnat-masquerade у тебя правильный, но без dst-nat трафик из 192.168.1.x на публичный IP не перехватывается — просто уходит к провайдеру, а не редиректится на pfSense.

Добавь в NAT (до основного dst-nat):
chain=dstnat src-address=192.168.1.0/24 dst-address=<белый_IP> dst-port=11111 protocol=tcp action=dst-nat to-addresses=172.16.100.2 to-ports=11111


И ещё: в forward-правиле у тебя dst-port=443, а нужно 11111 — dst-nat уже поменял порт до forward chain.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы