Рейтинг:0

Цель Masquerade/firewalld: влияет на фильтрацию?

флаг za

я открыл вопрос здесь, но поскольку я нашел некоторые новые элементы, я предпочитаю открывать новый.

Вот моя ситуация, которую можно воспроизвести:

Свежая ОС Centos7. Конфигурация двух интерфейсов eth1 и eth2 с ip адресами X и Y

--> @X CENTOS @Y --> @Z -------
    dst_IP = А dst_IP = А
    src_IP = B dst_IP = B

отредактируйте /etc/firewalld/zones/TEST.xml, добавьте два интерфейса, активировать маскарад. По умолчанию для цели firewalld установлено значение «по умолчанию».

добавьте маршрут следующим образом:

GenMask целевого шлюза
А З 255.255.255.255

Затем активируйте ip forward и деактивируйте rp_filter :

sysctl net.ipv4.ip_forward=1
sysctl net.ipv4.conf.eth1.rp_filter=2
sysctl net.ipv4.conf.eth2.rp_filter=2

В этой ситуации, если я направлю пакет (@dest=A) в CentOS, пакет направляется на Z. -> Почему firewalld его не блокирует? так как нет правила принимать это

Если я отключу маскарад, пакет больше не маршрутизируется. -> Почему?

При активированном маскараде, если я изменю цель со значения по умолчанию на DROP, пакет больше не будет маршрутизироваться. -> Таким образом, цель «по умолчанию» не является строго идентичной цели «DROP». В чем именно отличия? я не смог найти никакой информации об этом

Рейтинг:0
флаг kz

Прежде всего, вы активируете rp_filter, а не деактивировать его (чтобы деактивировать, вам нужно установить его на ноль).

Информация о фильтрации обратного пути.

На один вопрос можно легко ответить: без маскировки маршрутизатор назначения видит исходный IP-адрес B, но не имеет правильного маршрута для отправки ответа. Из-за этого и фильтрации обратного пути пакет отбрасывается.

Во-вторых, вы должны различать брандмауэр и брандмауэр переадресации. Один предназначен для пакетов, у которых один из интерфейсных IP-адресов имеет вид dst / src ip (что означает исходящий от / идущий к устройству!), а другой предназначен для пакетов, которые просто проходят через устройство.

Так что же происходит? Ваша CentOS видит пакет с IP-адресом источника B, IP-адресом назначения A и пытается его переслать. Для этого он просматривает свою таблицу маршрутизации — маршрут активен, все пакеты, предназначенные для пункта назначения А, должны проходить через маршрутизатор Z.

Теперь вступает в силу маскировка - IP-адрес источника B заменяется на Y, и пакет пересылается на Z - все еще с IP-адресом назначения A!

Я могу только догадываться, что делает брандмауэр - вам нужно опубликовать полный набор правил брандмауэра для полной картины - но я предполагаю, что вы путаете «маршрутизацию через Z» с «пунктом назначения Z». Последний, вероятно, будет сброшен, первый - нет.

Пожалуйста, опубликуйте полный набор правил брандмауэра для получения окончательного ответа!

флаг za
Привет Мартин, спасибо за ваш ответ!
флаг za
Я опубликую более подробную информацию в ответ. Разница между брандмауэром и брандмауэром пересылки, вероятно, то, что мне не хватает, но я не могу найти никакой документации об этом для брандмауэра Linux.
Martin avatar
флаг kz
существует множество внешних интерфейсов для брандмауэров Linux, firewalld — лишь один из них. Большинство из них используют «iptables» под капотом. iptables предоставляется ядром linux (потому что это место, где пакеты искажаются/фильтруются), существует уже довольно давно и хорошо документировано. Я бы порекомендовал почитать на эту тему.
Рейтинг:0
флаг za

Больше точности:

Для этого вопроса Учитываю только тот факт, что при прослушивании на интерфейсе Centos @Y пакеты либо маршрутизируются, либо сбрасываются. Я не принимаю во внимание ответ Z, который на самом деле не работает, если я активирую/деактивирую маскарад в CentOS без настройки конфигурации Z.

В этом контексте, что объясняет, что активация маскарада влияет на то, что маршрутизируемые пакеты отбрасываются или не отбрасываются firewalld перед выходом на интерфейс @Y? Что касается цели «по умолчанию» в firewalld?

Мой набор правил firewalld совершенно пуст, я сделал эту настройку из новой CentOS для работы над этой проблемой. Никаких правил iptables или firewalld не добавлялось.

Вот результат iptables -L -n и iptables -L -t физ -n :

Сеть INPUT (политика ACCEPT)
целевая защита выбор источника назначения
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0 ctstate СВЯЗАННО, УСТАНОВЛЕНО
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0
INPUT_direct все -- 0.0.0.0/0 0.0.0.0/0
INPUT_ZONES_SOURCE все -- 0.0.0.0/0 0.0.0.0/0
INPUT_ZONES все -- 0.0.0.0/0 0.0.0.0/0
УДАЛИТЬ все -- 0.0.0.0/0 0.0.0.0/0 ctstate НЕДЕЙСТВИТЕЛЬНО
REJECT all -- 0.0.0.0/0 0.0.0.0/0

Сеть FORWARD (политика ACCEPT)
целевая защита выбор источника назначения
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0 ctstate СВЯЗАННО, УСТАНОВЛЕНО
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0
FORWARD_direct все -- 0.0.0.0/0 0.0.0.0/0
FORWARD_IN_ZONES_SOURCE все -- 0.0.0.0/0 0.0.0.0/0
FORWARD_IN_ZONES все -- 0.0.0.0/0 0.0.0.0/0
FORWARD_OUT_ZONES_SOURCE все -- 0.0.0.0/0 0.0.0.0/0
FORWARD_OUT_ZONES все -- 0.0.0.0/0 0.0.0.0/0
УДАЛИТЬ все -- 0.0.0.0/0 0.0.0.0/0 ctstate НЕДЕЙСТВИТЕЛЬНО
REJECT all -- 0.0.0.0/0 0.0.0.0/0

Цепочка OUTPUT (политика ACCEPT)
целевая защита выбор источника назначения
OUTPUT_direct все -- 0.0.0.0/0 0.0.0.0/0

Сеть FORWARD_IN_ZONES (1 ссылка)
целевая защита выбор источника назначения
FWDI_TEST все -- 0.0.0.0/0 0.0.0.0/0 [перейти]
FWDI_TEST все -- 0.0.0.0/0 0.0.0.0/0 [перейти]

Сеть FORWARD_IN_ZONES_SOURCE (1 ссылка)
целевая защита выбор источника назначения

Сеть FORWARD_OUT_ZONES (1 ссылка)
целевая защита выбор источника назначения
FWDO_TEST все -- 0.0.0.0/0 0.0.0.0/0 [перейти]
FWDO_TEST все -- 0.0.0.0/0 0.0.0.0/0 [перейти]

Сеть FORWARD_OUT_ZONES_SOURCE (1 ссылка)
целевая защита выбор источника назначения

Сеть FORWARD_direct (1 ссылка)
целевая защита выбор источника назначения


Цепочка FWDI_TEST (2 ссылки)
целевая защита выбор источника назначения
FWDI_TEST_log все -- 0.0.0.0/0 0.0.0.0/0
FWDI_TEST_deny все -- 0.0.0.0/0 0.0.0.0/0
FWDI_TEST_allow все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ icmp -- 0.0.0.0/0 0.0.0.0/0

Цепочка FWDI_TEST_allow (1 ссылка)
целевая защита выбор источника назначения

Цепочка FWDI_TEST_deny (1 ссылка)
целевая защита выбор источника назначения

Цепочка FWDI_TEST_log (1 ссылка)
целевая защита выбор источника назначения

Цепочка FWDO_TEST (2 ссылки)
целевая защита выбор источника назначения
FWDO_TEST_log все -- 0.0.0.0/0 0.0.0.0/0
FWDO_TEST_deny все -- 0.0.0.0/0 0.0.0.0/0
FWDO_TEST_allow все -- 0.0.0.0/0 0.0.0.0/0

Цепочка FWDO_TEST_allow (1 ссылка)
целевая защита выбор источника назначения
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0 ctstate NEW

Цепочка FWDO_TEST_deny (1 ссылка)
целевая защита выбор источника назначения

Цепочка FWDO_TEST_log (1 ссылка)
целевая защита выбор источника назначения

Сеть INPUT_ZONES (1 ссылка)
целевая защита выбор источника назначения
IN_TEST все -- 0.0.0.0/0 0.0.0.0/0 [перейти]
IN_TEST все -- 0.0.0.0/0 0.0.0.0/0 [перейти]

Сеть INPUT_ZONES_SOURCE (1 ссылка)
целевая защита выбор источника назначения

Сеть INPUT_direct (1 ссылка)
целевая защита выбор источника назначения


Цепь IN_TEST (2 ссылки)
целевая защита выбор источника назначения
IN_TEST_log все -- 0.0.0.0/0 0.0.0.0/0
IN_TEST_запретить все -- 0.0.0.0/0 0.0.0.0/0
IN_TEST_разрешить все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ icmp -- 0.0.0.0/0 0.0.0.0/0

Сеть IN_TEST_allow (1 ссылка)
целевая защита выбор источника назначения

Цепочка IN_TEST_deny (1 ссылка)
целевая защита выбор источника назначения

Цепочка IN_TEST_log (1 ссылка)
целевая защита выбор источника назначения

Сеть OUTPUT_direct (1 ссылка)
целевая защита выбор источника назначения



Цепь PREROUTING (политика ПРИНЯТЬ)
целевая защита выбор источника назначения
PREROUTING_direct все -- 0.0.0.0/0 0.0.0.0/0
PREROUTING_ZONES_SOURCE все -- 0.0.0.0/0 0.0.0.0/0
PREROUTING_ZONES все -- 0.0.0.0/0 0.0.0.0/0

Сеть INPUT (политика ACCEPT)
целевая защита выбор источника назначения

Цепочка OUTPUT (политика ACCEPT)
целевая защита выбор источника назначения
OUTPUT_direct все -- 0.0.0.0/0 0.0.0.0/0

Сеть POSTROUTING (правило ACCEPT)
целевая защита выбор источника назначения
POSTROUTING_direct все -- 0.0.0.0/0 0.0.0.0/0
POSTROUTING_ZONES_SOURCE все -- 0.0.0.0/0 0.0.0.0/0
POSTROUTING_ZONES все -- 0.0.0.0/0 0.0.0.0/0

Сеть OUTPUT_direct (1 ссылка)
целевая защита выбор источника назначения

Сеть POSTROUTING_ZONES (1 ссылка)
целевая защита выбор источника назначения
POST_TEST все -- 0.0.0.0/0 0.0.0.0/0 [перейти]
POST_TEST все -- 0.0.0.0/0 0.0.0.0/0 [перейти]

Сеть POSTROUTING_ZONES_SOURCE (1 ссылка)
целевая защита выбор источника назначения

Сеть POSTROUTING_direct (1 ссылка)
целевая защита выбор источника назначения

Цепочка POST_TEST (2 ссылки)
целевая защита выбор источника назначения
POST_TEST_log все -- 0.0.0.0/0 0.0.0.0/0
POST_TEST_запретить все -- 0.0.0.0/0 0.0.0.0/0
POST_TEST_разрешить все -- 0.0.0.0/0 0.0.0.0/0

Цепочка POST_TEST_allow (1 ссылка)
целевая защита выбор источника назначения
МАСКАРАД все -- 0.0.0.0/0 0.0.0.0/0

Цепочка POST_TEST_deny (1 ссылка)
целевая защита выбор источника назначения

Цепочка POST_TEST_log (1 ссылка)
целевая защита выбор источника назначения

Сеть PREROUTING_ZONES (1 ссылка)
целевая защита выбор источника назначения
PRE_TEST все -- 0.0.0.0/0 0.0.0.0/0 [перейти]
PRE_TEST все -- 0.0.0.0/0 0.0.0.0/0 [перейти]

Сеть PREROUTING_ZONES_SOURCE (1 ссылка)
целевая защита выбор источника назначения

Сеть PREROUTING_direct (1 ссылка)
целевая защита выбор источника назначения

Цепь PRE_TEST (2 ссылки)
целевая защита выбор источника назначения
PRE_TEST_log все -- 0.0.0.0/0 0.0.0.0/0
PRE_TEST_запретить все -- 0.0.0.0/0 0.0.0.0/0
PRE_TEST_разрешить все -- 0.0.0.0/0 0.0.0.0/0

Сеть PRE_TEST_allow (1 ссылка)
целевая защита выбор источника назначения

Сеть PRE_TEST_deny (1 упоминание)
целевая защита выбор источника назначения

Цепочка PRE_TEST_log (1 ссылка)
целевая защита выбор источника назначения

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.