Рейтинг:0

Ограничить внешний доступ к Docker Mysql с помощью IPTables?

флаг in

У меня есть докер Mysql, работающий в Linode, использующий следующий файл докеров:

версия: '3'
Сервисы:
  mysql8:
    изображение: MySQL: 8.0.23
    команда: --default-authentication-plugin=mysql_native_password
    имя_контейнера: mysql8
    cap_add:
      - SYS_NICE
    среда:
      MYSQL_ROOT_PASSWORD: Рэмбо
    тома:
      - /opt/mysql/данные:/var/lib/mysql
    порты:
      - 3306:3306

Я могу подключиться через: (1) ssh к машине Linode, а затем с помощью: mysql -h 127.0.0.1 (2) подключение напрямую с моего ноутбука к серверу MySQL на сервере Linode: mysql -h 45.79.101.138

Мне нужно разрешить внутренний доступ к порту 3306, что означает (1), но не разрешить (2).

Я пробовал с:

iptables -A INPUT -p tcp --dport 3306 -s 172.0.0.1 -j ПРИНЯТЬ
iptables -A INPUT -p tcp --dport 3306 -j DROP

Но я все еще могу подключиться со своего ноутбука и внутренне.

Если у меня просто дроп, то я не могу подключиться ни с внутреннего, ни с ноута.

iptables -A INPUT -p tcp --dport 3306 -j DROP

Мои IPTables выглядят так:

# Сгенерировано iptables-save v1.8.4 в пятницу, 15 октября, 21:58:42 2021 г.
*фильтр
:ВВОД ПРИНЯТЬ [3222:286906]
:ВПЕРЕД КАПИТЬ [0:0]
: ВЫВОД ПРИНЯТ [4089:439672]
:ДОКЕР - [0:0]
:ДОКЕР-ИЗОЛЯЦИЯ-ЭТАП-1 - [0:0]
:ДОКЕР-ИЗОЛЯЦИЯ-ЭТАП-2 - [0:0]
:ДОКЕР-ПОЛЬЗОВАТЕЛЬ - [0:0]
-A INPUT -s 127.0.0.1/32 -p tcp -m tcp --dport 3306 -j ПРИНЯТЬ
-A ВХОД -p tcp -m tcp --dport 3306 -j DROP
-A FORWARD -j DOCKER-USER
-A ВПЕРЕД -j DOCKER-ИЗОЛЯЦИЯ-ЭТАП-1
-A FORWARD -o docker0 -m conntrack --ctstate СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
-A ВПЕРЕД -o docker0 -j DOCKER
-A ВПЕРЕД -i docker0 ! -o docker0 -j ПРИНЯТЬ
-A ВПЕРЕД -i docker0 -o docker0 -j ПРИНЯТЬ
-A FORWARD -o br-bbc39200a6b6 -m conntrack --ctstate СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
-A ВПЕРЕД -o br-bbc39200a6b6 -j ДОКЕР
-A ВПЕРЕД -i br-bbc39200a6b6 ! -o br-bbc39200a6b6 -j ПРИНЯТЬ
-A ВПЕРЕД -i br-bbc39200a6b6 -o br-bbc39200a6b6 -j ПРИНЯТЬ
-A FORWARD -o br-595c99b571cb -m conntrack --ctstate СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
-A ВПЕРЕД -o br-595c99b571cb -j ДОКЕР
-A ВПЕРЕД -i br-595c99b571cb ! -o br-595c99b571cb -j ПРИНЯТЬ
-A ВПЕРЕД -i br-595c99b571cb -o br-595c99b571cb -j ПРИНЯТЬ
-A ДОКЕР -d 172.19.0.2/32 ! -i br-595c99b571cb -o br-595c99b571cb -p tcp -m tcp --dport 3306 -j ПРИНЯТЬ
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -i br-bbc39200a6b6 ! -o br-bbc39200a6b6 -j DOCKER-ИЗОЛЯЦИЯ-ЭТАП-2
-A DOCKER-ISOLATION-STAGE-1 -i br-595c99b571cb ! -o br-595c99b571cb -j DOCKER-ИЗОЛЯЦИЯ-ЭТАП-2
-A DOCKER-ISOLATION-STAGE-1 -j ВОЗВРАТ
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -o br-bbc39200a6b6 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -o br-595c99b571cb -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j ВОЗВРАТ
-A DOCKER-USER -j ВОЗВРАТ
СОВЕРШИТЬ
# Завершено пт, 15 октября, 21:58:42 2021
# Сгенерировано iptables-save v1.8.4 в пятницу, 15 октября, 21:58:42 2021 г.
*натуральный
: ПРЕДВАРИТЕЛЬНОЕ ПРИНЯТИЕ [1297:65663]
:ВВОД ПРИНЯТЬ [1297:65663]
: ВЫВОД ПРИНЯТ [12:720]
:ОТПРАВКА ПРИНЯТИЯ [16:940]
:ДОКЕР - [0:0]
-A PREROUTING -m тип_адреса --dst-type МЕСТНЫЙ -j DOCKER
- ВЫХОД! -d 127.0.0.0/8 -m тип_адреса --dst-тип ЛОКАЛЬНЫЙ -j DOCKER
-A POSTOUTING -s 172.17.0.0/16 ! -o docker0 -j МАСКАРАД
-A POSTOUTING -s 172.18.0.0/16 ! -o br-bbc39200a6b6 -j МАСКАРАД
-A POSTOUTING -s 172.19.0.0/16 ! -o br-595c99b571cb -j МАСКАРАД
-A POSTROUTING -s 172.19.0.2/32 -d 172.19.0.2/32 -p tcp -m tcp --dport 3306 -j MASQUERADE
-A ДОКЕР -i docker0 -j ВОЗВРАТ
-A ДОКЕР -i br-bbc39200a6b6 -j ВОЗВРАТ
-A ДОКЕР -i br-595c99b571cb -j ВОЗВРАТ
- ДОКЕР! -i br-595c99b571cb -p tcp -m tcp --dport 3306 -j DNAT --назначение 172.19.0.2:3306
СОВЕРШИТЬ
# Завершено пт, 15 октября, 21:58:42 2021

Любая идея приветствуется.

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

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