Рейтинг:0

Разрешить док-контейнерам в сети моста подключаться к хосту с помощью iptables

флаг my

Недавно я попытался развернуть iptables, чтобы открывать только соответствующие порты. Я сбрасываю каждое входящее соединение, используя iptables -P ВХОД DROP а затем разрешить доступ к соответствующим портам. Это работает, но нарушает мою настройку haproxy с веб-серверами, работающими в контейнерах докеров. Теперь контейнеры не могут подключиться к хост-сети. Я попытался разрешить контейнерам докеров подключаться к хосту, используя

Iptables -A INPUT -i docker0 -j Принять

Но это не работает, и веб-серверы по-прежнему не могут ответить на haproxy. Я был бы признателен за любую идею о том, как это исправить и разрешить контейнерам снова подключаться к хосту.

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

Я мало что знаю о веб-серверах или HAProxy, но могу дать вам несколько советов по IPtables, а затем ответить на ваш вопрос.

  1. IPtables читает правила сверху вниз и прекращает чтение правил, когда достигает DROP, REJECT или ACCEPT.
  2. IPtables чувствителен к регистру. Принимать не то же самое, что ПРИНИМАТЬ
  3. Политика IPtables используется, когда никакое другое правило в таблице не применяется к данному пакету.
  4. Убедитесь, что когда вы добавляете новые правила IPtables, вы удаляете старые, введя iptables -t фильтр -F а потом iptables -t фильтр -X. Эти две команды очистят таблицу фильтров (таблицу по умолчанию), а также очистят все подцепочки в таблице.
  5. Убедитесь, что правила для клиентов отражаются на хосте, и убедитесь, что правила для хоста отражаются на клиентах.

Чтобы ответить на ваш вопрос...

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

iptables -t необработанный -F
iptables -t мангл -F
iptables -t физ -F
iptables -t фильтр -F
iptables -t необработанный -X
iptables -t мангл -X
iptables -t физ -X
iptables -t фильтр -X

Затем убедитесь, что никакой другой брандмауэр не запущен.

CentOS/Fedora/Rhel:

systemctl остановить firewalld

Дебиан/Убунту:

systemctl остановить ufw

Затем проведите несколько тестов. HAProxy работает? Если это работает, ваша проблема в брандмауэре. Если это так нет работать, то вам нужно пересмотреть свои правила IPtables.Может быть, вы начнете с того, что сделаете свои правила IPtables как можно более неконкретными, а затем станете все более и более конкретными. Вот мои рекомендации для начала:

Убедитесь, что на сервере включен петлевой трафик. Loopback-трафик никогда не покидает сервер:

iptables -t filter -A INPUT -i lo -j ПРИНЯТЬ

Попробуйте внести в белый список IP-адрес сервера HAProxy вместо порта:

iptables -t filter -A INPUT -s ${HAPROXY_IP} -j ПРИНЯТЬ

Позволять УЧРЕДИЛ и СВЯЗАННЫЕ С соединения:

iptables -t filter -A INPUT -m conntrack --ctstate СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
A.B avatar
флаг cl
A.B
Чтобы сбросить правила, политика должна быть настроена на сначала принятие (`-P ACCEPT`), иначе последует потеря подключения.

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

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