Рейтинг:0

Докер и Iptables

флаг cn

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

Пока все хорошо, все работает.Поэтому я пытаюсь укрепить структуру, добавив fail2ban, который мне не удалось заставить работать. Я изо всех сил пытаюсь понять лучше iptables, но я не могу заставить его работать. После перезапуска докера и проверки файла iptables (/etc/iptables/iptables.rules) у меня есть это

# Сгенерировано iptables-save v1.8.7, пятница, 29 октября, 09:48:00 2021
*натуральный
: ПРЕДВАРИТЕЛЬНОЕ ПРИНЯТИЕ [82:13454]
:ВВОД ПРИНЯТЬ [71:12758]
: ВЫВОД ПРИНЯТ [72:4846]
:ОТПРАВКА ПРИНЯТИЯ [858:45979]
:ДОКЕР - [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.19.0.0/16 ! -o br-0aee38841ef3 -j МАСКАРАД
-A POSTROUTING -s 172.19.0.2/32 -d 172.19.0.2/32 -p tcp -m tcp --dport 3000 -j MASQUERADE
-A ДОКЕР -i docker0 -j ВОЗВРАТ
-A ДОКЕР -i br-0aee38841ef3 -j ВОЗВРАТ
- ДОКЕР! -i br-0aee38841ef3 -p tcp -m tcp --dport 3000 -j DNAT --назначение 172.19.0.2:3000
СОВЕРШИТЬ
# Завершено пт, 29 октября, 09:48:00 2021
# Сгенерировано iptables-save v1.8.7, пятница, 29 октября, 09:48:00 2021
*фильтр
:ВВОД ПРИНЯТЬ [98:7750]
:ВПЕРЕД ПРИНЯТЬ [0:0]
: ВЫВОД ПРИНЯТ [77:11194]
:ДОКЕР - [0:0]
:ДОКЕР-ИЗОЛЯЦИЯ-ЭТАП-1 - [0:0]
:ДОКЕР-ИЗОЛЯЦИЯ-ЭТАП-2 - [0:0]
:ДОКЕР-ПОЛЬЗОВАТЕЛЬ - [0:0]
-A ВВОД -s 37.XXX.XXX.XX/32 -j DROP
-A ВХОД -j DOCKER-ПОЛЬЗОВАТЕЛЬ
-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-0aee38841ef3 -m conntrack --ctstate СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
-A ВПЕРЕД -o br-0aee38841ef3 -j ДОКЕР
-A ВПЕРЕД -i br-0aee38841ef3 ! -o br-0aee38841ef3 -j ПРИНЯТЬ
-A ВПЕРЕД -i br-0aee38841ef3 -o br-0aee38841ef3 -j ПРИНЯТЬ
-A ДОКЕР -d 172.19.0.2/32 ! -i br-0aee38841ef3 -o br-0aee38841ef3 -p tcp -m tcp --dport 3000 -j ПРИНЯТЬ    
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -i br-0aee38841ef3 ! -o br-0aee38841ef3 -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-0aee38841ef3 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j ВОЗВРАТ
-A DOCKER-USER -s 37.XXX.XXX.XX/32 -j DROP
СОВЕРШИТЬ
# Завершено пт, 29 октября, 09:48:00 2021

Я только что удалил другие правила для контейнеров, так как они аналогичны тому, что я оставил (dport 3000).

бр-0aee38841ef3

это мост, созданный, когда я создал сеть докеров, в которой находятся мои контейнеры.

Как видите, я пытался добавить правило DROP на свой общедоступный IP-адрес (37.XXX.XXX.XX) как в цепочках INPUT, так и в цепочках DOCKER-USER, но я все еще могу перемещаться по своим контейнерам (у меня есть собственный домен, который A записи указывают на мой IP), поэтому правило не работает. Конечно, iptables запускается и перезагружается с новыми правилами, так что мне не хватает, чтобы забанить IP?

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

Вам может понадобиться:

iptables -A DOCKER-USER -j ВОЗВРАТ

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

A.B avatar
флаг cl
A.B
Я думаю, что наоборот: это правило уже добавлено Docker и предотвращает работу добавленных к нему правил (а не вставленных перед ним).

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

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