Рейтинг:2

Centos Docker iptables блокирует весь трафик, кроме домена

флаг sg

Я пытаюсь заблокировать весь исходящий трафик от iptables для интерфейса docker docker0. Но я хотел бы открыть доступ для нескольких доменов:

Как я могу это сделать?

Я пробовал это:

iptables -I ВЫВОД -o docker0 -j УДАЛИТЬ 
iptables -I DOCKER -i docker0 -p udp --dport 53 -j ПРИНЯТЬ 
iptables -I DOCKER -i docker0 -p tcp -d mydomain.com --dport 80 -j ПРИНЯТЬ 
iptables -I DOCKER -i docker0 -m conntrack --ctstate УСТАНОВЛЕНО, СВЯЗАННО -j ПРИНЯТЬ
Рейтинг:0
флаг za

Это невозможно. iptables управлять Netfilter, который представляет собой фильтр IP-пакетов (брандмауэр), действующий на уровне 3 и 4 OSI. Доменные имена DNS — это более высокий уровень (и несколько ортогональный), чем это.

Вы можете контролировать доступ к некоторым IP-адреса (L3) и TCP/UDP-порты (L4) с Netfilter.

Если вы хотите контролировать доступ к веб-сайтам, у вас есть следующие варианты:

  • заранее разрешить DNS-имя, получить IP-адреса и поместить их в брандмауэр. насколько мне известно iptables делает это сам, когда вы даете ему доменное имя; то, что он настраивает внутри Netfilter, — это разрешенный IP-адрес для этого имени. Когда владелец этого домена решит изменить IP-адрес, ваше правило больше не будет применяться. Если на этом сервере с этим IP-адресом размещено несколько веб-сайтов (т. е. есть виртуальный хостинг, на котором размещено несколько имен), вы либо полностью их разрешите, либо полностью отключите. Это то, что вы, кажется, делаете прямо сейчас;
  • прокси-сервер HTTP (s), который проверяет запрошенные доменные имена и запрещает доступ к некоторым из них. Современные изобретения, такие как ECH (eSNI), снизят вашу мощность до контроля доступа только к диапазонам IP-адресов, как с обычным брандмауэром, потому что вы не сможете узнать, какое имя хоста было запрошено;
  • фильтрация DNS, которая настраивает, какие домены ваш рекурсивный преобразователь будет разрешать для клиентов, а какие нет.Опять же, современные изобретения, такие как DNS-over-HTTP (от Cloudflare), сделают вывод о вашей способности делать это, потому что ваш DNS-сервер больше не будет отвечать за разрешение имен, и вы не можете знать, какое имя хоста было запрошено;
  • Глубокая проверка пакетов (DPI). И опять же, современный интернет явно идет в сторону отключения возможности проверки трафика третьими лицами.

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

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