docker-compose 네트워크와 하나의 외부 서버에서 iptables를 엽니다.

docker-compose 네트워크와 하나의 외부 서버에서 iptables를 엽니다.

mysql 서버가 포함된 docker compose를 사용하여 시스템을 배포하려고 합니다. 서버는 동일한 네트워크의 도커 컨테이너 간에 공유됩니다.

우리 네트워크의 특정 외부 서버에서 mysql db에 액세스해야 하므로 docker compose 파일 내에 mysql 포트(3306)를 게시했습니다.

하지만 보안상의 이유로 이 포트에 액세스하려는 다른 IP를 차단하고 싶습니다.

나는 많은 iptables 규칙을 시도했는데 모두 docker-compose 내의 컨테이너를 차단했거나 다른 서버가 포트에 액세스하도록 허용했습니다.

ps. mysql 서버 내에서 사용자 권한을 모두 변경하겠습니다. 하지만 가장 먼저 하고 싶은 일은 포트를 차단하는 것입니다.

답변1

DOCKER-USER 테이블에서 iptables 항목을 구성할 수 있습니다. 이는 Docker 외부에서 수행됩니다. 예를 들어 10.0.0.0/24 이외의 네트워크에서 포트 3306에 대한 eth0 인터페이스 요청이 걱정되는 경우:

iptables -I DOCKER-USER -i eth0 ! -s 10.0.0.0/24 -p tcp \
  -m conntrack --ctorigdstport 3306 -j DROP

NAT 규칙 및 포트 매핑을 처리하려면 일반 TCP 포트 규칙이 아닌 conntrackconn track 원래 대상 포트가 필요합니다.

관련 정보