Отбрасывать пакеты с PREROUTING в iptables

dnf download readline
cat /var/log/dnf.librepo.log | grep URL | tail -n1

prepare_next_transfer: URL: http://www.mirrorservice.org/sites/dl.fedoraproject.org/pub/fedora/linux/releases/23/Everything/source/SRPMS/r/readline-6.3- 6.fc23.src.rpm

и вы получили URL-адрес, откуда загружен пакет

2
18.11.2017, 00:31
2 ответа

У меня была аналогичная проблема, которая заключалась в необходимости «защитить» сетевой трафик, даже если кто-то развернул контейнер, который привязывал приложение к любому адресу:0.0.0.0:port.

Docker предоставляет цепочку фильтров DOCKER-USER, но похоже, что вся магия происходит в цепочке DOCKERnat, на которую ссылается в PREROUTING.

Таким образом, это natневозможно обойти до фильтрации, и я не хочу слишком сильно касаться правил докера.

Мне не нравится идея менять пакет еще раз, поэтому я придумал схему, которая возвращает все по умолчанию и переходит к другой цепочке вPREROUTINGдо вызова DOCKER.

Затем я выборочно возвращаюсь к DOCKER, когда считаю, что трафик хороший.

Вот код:

iptables -t nat -N DOCKER-BLOCK
iptables -t nat -I PREROUTING -m addrtype --dst-type LOCAL -j RETURN
iptables -t nat -I PREROUTING -m addrtype --dst-type LOCAL -j DOCKER-BLOCK

Вот именно!

Пакет перейдет к цепочке DOCKER-BLOCK, и если эта цепочка пуста, он выйдет из цепочки и продолжит переход PREROUTINGк RETURNи будет заблокирован.

При включении порта:

iptables -t nat -I DOCKER-BLOCK -p tcp -m tcp --dport 1234 -j DOCKER

Это заставит пакет вернуться в цепочку DOCKER, где он управляется docker. Docker должен обработать пакет, а RETURNиз PREROUTINGникогда не должен быть достигнут.

Преимущество в том, что вам больше не нужно прикасаться к таблице PREROUTING, если вы хотите сбросить, сбрасывайте напрямую DOCKER-BLOCK.

5
27.01.2020, 22:18

Проблема с подходом DOCKER -BLOCK заключается в том, что если вы хотите заблокировать трафик к хосту и контейнерам, например заблокировать tcp-порт 50, вам нужно добавить его в цепочку DOCKER -BLOCK (для обойти правила докера )и в цепочке INPUT (для фактического сброса ).

0
27.01.2020, 22:18

Теги

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