UFW가 도커를 사용하여 노출 된 포트를 차단하지 않는 이유는 무엇입니까?


8

내 ufw에 몇 가지 규칙을 설정했지만 아무것도 차단하지 않는 것 같습니다. 현재 상태입니다.

~# ufw status verbose

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22                         ALLOW IN    Anywhere
80                         ALLOW IN    Anywhere
27015:27115/udp            ALLOW IN    Anywhere
27015:27115/tcp            ALLOW IN    Anywhere
22 (v6)                    ALLOW IN    Anywhere (v6)
80 (v6)                    ALLOW IN    Anywhere (v6)
27015:27115/udp (v6)       ALLOW IN    Anywhere (v6)
27015:27115/tcp (v6)       ALLOW IN    Anywhere (v6)

보시다시피 기본적으로 들어오는 연결을 거부하고 특정 포트만 허용합니다. 그러나 여전히 포트 8083에 새 서비스를 설정했으며 외부에서 액세스 할 수 있습니다. 왜 그래야만하지?

도커 컨테이너를 사용 하여이 새로운 서비스를 실행했습니다.


UFW를 다시로드 할 수 있습니까? 서버를 다시 시작해 보셨습니까? iptables에 규칙이 있습니까? 추가하십시오iptables -L
Christopher Perrin

고마워, iptables -L 출력을 보면 docker가 iptables를 직접 편집한다는 것을 알았습니다. docker config를 변경하여 이것을 무시할 수 있습니다
Ivan

답변:


6

마치

Docker는 IPTables로 직접 변조합니다.

. Docker 데몬에 --iptables = false를 추가하여이 동작을 무시할 수 있습니다.

/ etc / default / docker를 편집 하고 DOCKER_OPTS 줄의 주석을 해제 하십시오 :

DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4 --iptables=false"

저자는 다음과 같은 결론을 내렸다.

  • UFW는 iptables에 실제 상태를 알려주지 않습니다 (충격이 아니라 여전히).
  • 공개하고 싶지 않은 Docker에서 -p 옵션 (또는 -P)을 사용하지 마십시오.
  • 루프백 인터페이스 또는 내부 IP 중 하나에서만 바인딩하십시오.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.