На моей виртуальной машине запущено несколько док-контейнеров.
Один из них предоставляет порт 8000
с HTTP-сервером (django / python).С другой стороны, nginx установлен, он слушает 80
порт и прокси проходят 8000:
proxy_pass http://127.0.0.1:8000
Работает отлично.Но если я подключаюсь к порту 8000 напрямую из браузера, например:
http://example.com:8000/
, он возвращает ответ от внутреннего обработчика докера.
Как закрыть этот порт 8000 и не навредить всему?
Я пытался сделать это с помощью утилиты iptables
, но похоже, что Docker создал много собственных правил, и я не знаю, буду ли я создавать нормальные, не нарушая правил этих докеров:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy DROP)
target prot opt source destination
DOCKER-USER all -- anywhere anywhere
DOCKER-ISOLATION-STAGE-1 all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain DOCKER (2 references)
target prot opt source destination
Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target prot opt source destination
DOCKER-ISOLATION-STAGE-2 all -- anywhere anywhere
DOCKER-ISOLATION-STAGE-2 all -- anywhere anywhere
RETURN all -- anywhere anywhere
Chain DOCKER-ISOLATION-STAGE-2 (2 references)
target prot opt source destination
DROP all -- anywhere anywhere
DROP all -- anywhere anywhere
RETURN all -- anywhere anywhere
Chain DOCKER-USER (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Планируется сделать:
iptables -A INPUT -p tcp --dport 8000 -j REJECT
Это нормально?