0 / 0 / 0
Регистрация: 29.08.2016
Сообщений: 17
1

Hairpin NAT и изоляция внутренних подсетей

25.05.2021, 09:04. Показов 2127. Ответов 12

Студворк — интернет-сервис помощи студентам
Интернет (2.2.2.2) и две локальные подсети (192.168.1.0/24 и 192.168.2.0/24) подключены к одному маршрутизатору. Необходимо сделать доступ к вебсерверу 192.168.2.10 из подсети 192.168.1.0/24 через внешний ip 2.2.2.2
На этом этапе все просто, Hairpin NAT:

Код
/ip firewall nat
add chain=srcnat out-interface=WAN action=masquerade
add chain=dstnat dst-address=2.2.2.2 protocol=tcp dst-port=80 action=dst-nat to-address=192.168.2.10
add chain=srcnat src-address=192.168.1.0/24 dst-address=192.168.2.10 protocol=tcp dst-port=80 action=masquerade
До этого момента все работает.

Теперь нужно изолировать друг от друга внутренние подсети, но при этом оставить возможность из первой подсети (192.168.1.0/24) через внешний адрес заходить на вебсервер (http://2.2.2.2).

Как только включаю фильтры на FW, например:
Код
/ip firewall filter
add action=drop chain=forward disabled=yes dst-address=192.168.3.0/24 src-address=192.168.1.0/24
add action=drop chain=forward disabled=yes dst-address=192.168.1.0/24 src-address=192.168.3.0/24
или правила маршрутизации:

Код
/ip route rule
add action=unreachable dst-address=192.168.3.0/24 src-address=192.168.1.0/24
add action=unreachable dst-address=192.168.1.0/24 src-address=192.168.3.0/24
доступ из сети 192.168.1.0/24 к вебсерверу по адресу http://2.2.2.2 пропадает, при этом доступ из «интернета» к http://2.2.2.2 остается.

Как изолировать подсети, так чтобы оставfлся доступ к вебсерверу из внутренней подсети?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2021, 09:04
Ответы с готовыми решениями:

Проблемы с настройкой Hairpin NAT
Добрый день, есть необходимость подключаться к серверу по фтп протоколу по внешнему адресу из...

Сети - статическое преобразование NAT для своих внутренних сетей
Нужна помощь с решением теста, эта один из вопросов в нем. Оба маршрутизатора, R1 и R2,...

WPF: Не работают библиотеки Open.NAT, Mono.NAT
Доброго времени суток! Хочу витащить свой IP. У меня "серый ip". (кто не в курсе го в Википедию)...

Определить количество подсетей в сети, маску сети, диапазоны подсетей
Начальный адрес сети 199.117.13.0 количество компьютеров в подсети 6. Необходимо определить...

12
Модератор
Эксперт по компьютерным сетям
11411 / 6981 / 1899
Регистрация: 25.12.2012
Сообщений: 29,387
25.05.2021, 09:27 2
покажите
Код
export compact
0
Эксперт по компьютерным сетям
4706 / 2084 / 447
Регистрация: 17.10.2015
Сообщений: 8,953
25.05.2021, 09:34 3
Цитата Сообщение от ewgenik Посмотреть сообщение
доступ к вебсерверу 192.168.2.10
занести адрес 2.10/24 в address-list. В правилах блокировки между подсетями, прописать исключение на этот address-list
0
Модератор
Эксперт по компьютерным сетям
11411 / 6981 / 1899
Регистрация: 25.12.2012
Сообщений: 29,387
25.05.2021, 10:08 4
я один тут вижу три внутренних сети?
или так и есть?


Если сети все же две, тогда выше запрещающего весь трафик по цепочке forward правила поставить эти правила
Код
ip firewall filter
add action=accept chain=forward connection-state=established,related
add action=accept chain=forward dst-address=192.168.2.10 src-address=192.168.1.0/24
add action=drop chain=forward dst-address=192.168.2.0/24 src-address=192.168.1.0/24
add action=drop chain=forward dst-address=192.168.1.0/24 src-address=192.168.2.0/24

Цитата Сообщение от ewgenik Посмотреть сообщение
или правила маршрутизации:
там вообще ничего делать не надо, не для такого случая эти правила используются
1
Эксперт по компьютерным сетям
4706 / 2084 / 447
Регистрация: 17.10.2015
Сообщений: 8,953
25.05.2021, 10:43 5
Цитата Сообщение от insect_87 Посмотреть сообщение
я один тут вижу три внутренних сети?
скорее всего ТС ошибся - пишет о 2-х сетях, а в коде 3.0/24 указывает

Цитата Сообщение от insect_87 Посмотреть сообщение
add action=accept chain=forward dst-address=192.168.2.10 src-address=192.168.1.0/24
этим разрешаем "туда", а для обратных пакетов? Ведь "от туда" запрещено правилом:
Цитата Сообщение от insect_87 Посмотреть сообщение
add action=drop chain=forward dst-address=192.168.1.0/24 src-address=192.168.2.0/24
Добавлено через 6 минут
хотя, да, "от туда" - это уже established соединение будет.
0
Модератор
Эксперт по компьютерным сетям
11411 / 6981 / 1899
Регистрация: 25.12.2012
Сообщений: 29,387
25.05.2021, 10:50 6
Цитата Сообщение от romsan Посмотреть сообщение
этим разрешаем "туда", а для обратных пакетов? Ведь "от туда" запрещено правилом:
Цитата Сообщение от romsan Посмотреть сообщение
хотя, да, "от туда" - это уже established соединение будет.
0
0 / 0 / 0
Регистрация: 29.08.2016
Сообщений: 17
25.05.2021, 11:23  [ТС] 7
Цитата Сообщение от insect_87 Посмотреть сообщение
я один тут вижу три внутренних сети?
или так и есть?
Прошу прощения, в коде опечатался, на самом деле две сети.

Цитата Сообщение от insect_87 Посмотреть сообщение
Сообщение от ewgenik
или правила маршрутизации:
там вообще ничего делать не надо, не для такого случая эти правила используются
понял, благодарю.

Цитата Сообщение от insect_87 Посмотреть сообщение
ip firewall filter
add action=accept chain=forward connection-state=established,related
add action=accept chain=forward dst-address=192.168.2.10 src-address=192.168.1.0/24
Я понимаю, что если так сделать, то заработает. Но в этом случае сети уже будут менее изолированы.

Я думал, что если мы имеем
Код
add chain=srcnat out-interface=WAN action=masquerade
то при обращении из локальной сети 192.168.1.0/24 к адресу http://2.2.2.2 на вебсервер 192.168.2.10 придут пакеты с src-address=192.168.2.1 (маскарадинг же), и по идее правила firewall`а
Код
add action=drop chain=forward disabled=yes dst-address=192.168.2.0/24 src-address=192.168.1.0/24
add action=drop chain=forward disabled=yes dst-address=192.168.1.0/24 src-address=192.168.2.0/24
не должны дропнуть не исходящие не обратные пакеты.
0
Модератор
Эксперт по компьютерным сетям
11411 / 6981 / 1899
Регистрация: 25.12.2012
Сообщений: 29,387
25.05.2021, 11:35 8
Цитата Сообщение от ewgenik Посмотреть сообщение
то при обращении из локальной сети 192.168.1.0/24 к адресу http://2.2.2.2 на вебсервер 192.168.2.10 придут пакеты с src-address=192.168.2.1 (маскарадинг же), и по идее правила firewall`а
не правильно вы поняли,
на роутер придет пакет в виде S:192.168.1.x D:2.2.2.2,
сначала отработает dst-nat и пакет примет вид: S:192.168.1.x D:192.168.2.10,
далее пакет будет проходить цепочку filter forward, для которой мы и пишем правила accept/drop,
и уже только потом отработает src-nat и пакет примет вид S: 192.168.2.1 D: 192.168.2.10,
затем пакет выйдет из роутера

Цитата Сообщение от ewgenik Посмотреть сообщение
Но в этом случае сети уже будут менее изолированы.
чем это?
все так же и будут изолированы, но из сети 1.0 будет открыт доступ только к 2.10
0
Модератор
Эксперт по компьютерным сетям
11411 / 6981 / 1899
Регистрация: 25.12.2012
Сообщений: 29,387
25.05.2021, 11:43 9
вот так все это будет
Миниатюры
Hairpin NAT и изоляция внутренних подсетей  
1
Модератор
Эксперт по компьютерным сетям
11411 / 6981 / 1899
Регистрация: 25.12.2012
Сообщений: 29,387
25.05.2021, 11:49 10
Цитата Сообщение от ewgenik Посмотреть сообщение
add chain=srcnat out-interface=WAN action=masquerade
вообще не имеет отношения к пакетам между внутренними сетями, этот нат отработает, только если решением маршрутизации (3) пакет будет отправлен на интерфейс из списка WAN
у вас интерфейсы с адресами 192.168.1.1 и 192.168.2.1, в списке WAN как я полагаю, не присутствуют
0
0 / 0 / 0
Регистрация: 29.08.2016
Сообщений: 17
25.05.2021, 11:59  [ТС] 11
Цитата Сообщение от insect_87 Посмотреть сообщение
чем это?
все так же и будут изолированы, но из сети 1.0 будет открыт доступ только к 2.10
я так понимаю, что из сети 1.0 можно будет напрямую обратиться к http://192.168.2.10 и связь будет работать уже не через маскарадинг. Таким образом вебсервер на 192.168.2.10 увидит пакеты от 192.168.1.0/24. Это уже не изоляция. Или ошибаюсь?

Добавлено через 3 минуты
Цитата Сообщение от insect_87 Посмотреть сообщение
Сообщение от ewgenik
add chain=srcnat out-interface=WAN action=masquerade
вообще не имеет отношения к пакетам между внутренними сетями, этот нат отработает, только если решением маршрутизации (3) пакет будет отправлен на интерфейс из списка WAN
у вас интерфейсы с адресами 192.168.1.1 и 192.168.2.1, в списке WAN как я полагаю, не присутствуют
Я тут опять ошибся, я должен был вот это правило процитировать:
Код
add chain=srcnat src-address=192.168.1.0/24 dst-address=192.168.2.10 protocol=tcp dst-port=80 action=masquerade
Добавлено через 57 секунд
Цитата Сообщение от insect_87 Посмотреть сообщение
вот так все это будет
Снимаю шляпу!
0
Модератор
Эксперт по компьютерным сетям
11411 / 6981 / 1899
Регистрация: 25.12.2012
Сообщений: 29,387
25.05.2021, 12:54 12
Лучший ответ Сообщение было отмечено ewgenik как решение

Решение

Цитата Сообщение от ewgenik Посмотреть сообщение
я так понимаю, что из сети 1.0 можно будет напрямую обратиться к http://192.168.2.10 и связь будет работать уже не через маскарадинг.
да.
покажите
Код
export compact
в правилах файрволла есть флаг connection-nat-state=dstnat

вот так попробуйте:
Код
ip firewall filter
add action=accept chain=forward connection-state=established,related
add action=accept chain=forward dst-address=192.168.2.10 src-address=192.168.1.0/24 connection-nat-state=dstnat 
add action=drop chain=forward dst-address=192.168.2.0/24 src-address=192.168.1.0/24
add action=drop chain=forward dst-address=192.168.1.0/24 src-address=192.168.2.0/24

таким образом из сети 192.168.1.0/24 доступ к веб-серверу должен быть только по адресу 2.2.2.2
1
0 / 0 / 0
Регистрация: 29.08.2016
Сообщений: 17
26.05.2021, 04:07  [ТС] 13
Цитата Сообщение от insect_87 Посмотреть сообщение
в правилах файрволла есть флаг connection-nat-state=dstnat
Вот оно! Благодарю!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2021, 04:07
Помогаю со студенческими работами здесь

Изоляция программы
итак, есть программа(.exe), необходимо её запустить, да только так, чтобы при её попытке доступа в...

Изоляция MS Agent 2.0
Написал тестовую программу: Option Explicit Private Declare Sub Sleep Lib "kernel32" (ByVal...

Изоляция в транзакции
Добрый день. Вопрос простой. Есть некая последовательность: 1. Запрос на получение количество...

Изоляция Российского интернета
Если вдруг этот законопроект дойдет до своего логического заключения, что нас ждет? Придумают ли...

Blazor: изоляция CSS
Официально не поддерживается и даже в план не поставлено:...

Изоляция жесткого диска
дело стоит вот в чем. В кампе стоит жесткий диск на котором очень много крайне важной информации....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru