Как заблокировать любой внешний порт (docker-host), скажем, 80 в виртуальной машине ubuntu linux.
Всем привет,
У меня есть две виртуальные машины Ubuntu на провайдере Hertzner Cloud в режиме кластера docker-swarm с двумя стеками, обслуживающими один и тот же контент (но два стека используются для разных целей), один (скажем, VM-1) на порту 80 (отображение портов контейнера докеров 80:80) и другие (скажем, VM-2) на 7000 (отображение портов контейнера докеров 7000: 80).
Итак, я хочу заблокировать порт 7000 на ВМ-1 и порт 80 на ВМ-2.
Мне не удалось реализовать описанный выше сценарий с веб-консоли моего облачного провайдера Hertzner, поскольку они не предоставили никакого раздела для блокировки входящего и исходящего трафика с использованием IP-адресов и портов как AWS или Azure.
До сих пор я пытался использовать UFW для блокировки порта 80 на VM-2. (Не получил желаемого результата).
Также использовал iptables, используя следующие команды
sudo iptables -I INPUT -p tcp -s 0/0 -d 0/0 --dport 80 -j DROP
Он не блокирует трафик при использовании с контейнерами докеров. Но он блокирует трафик, если я устанавливаю любую службу, например nginx, на порт 80 на виртуальной машине как службу.
sudo iptables -I DOCKER-USER -p tcp -s 0/0 -d 0/0 --dport 80 -j DROP
Эта команда (см. Ссылку ниже) блокирует обслуживание всего трафика через порт 80 (например, 80:80 и 7000: 80) внутри контейнера докеров. Я не хочу, чтобы порт 80 внутри контейнера докеров был заблокирован.
Итак, как мне заблокировать только снаружи (dockerhost-port) 80, отображаемое как 80:80 для контейнера докеров на любой виртуальной машине Linux.
Спасибо. Жду быстрого ответа.