도커 컨테이너 내에서 액세스 할 수있는 IP 주소를 제한하는 가장 좋은 방법은 무엇입니까?


0

도커 컨테이너가 호스트 외부의 단일 IP 주소에만 액세스 할 수 있도록 제한하는 답변이 있습니다. 호스트에서이 iptables 규칙 사용 :

iptables -I FORWARD -i docker0! -d 8.8.8.8 -j DROP

도커 컨테이너 내부에서 IP 주소 8.8.8.8에만 액세스 할 수 있음을 의미합니다.

기본적으로 대상이 8.8.8.8이 아닌 경우 패킷을 삭제하십시오.

컨테이너를 특정 IP 주소 수로 제한 할 수있는 규칙을 설정하는 가장 좋은 방법은 무엇입니까?


나는 전문가가 아니지만 느낌표를 제거하고 끝을 DROP에서 ALLOW로 변경하는 방법에 대해 다른 IP 주소에 다른 규칙을 추가 할 수 있습니다. 전달 정책도 변경하여 변경할 수 있습니다. 따라서 허용되는 것은 허용되는 예외입니다. 그래서 당신은 화이트리스트
— barlop

이것은 특별한 요구 사항입니다. Docker의 링크 기능을 중단하지 않고 귀하의 사례에 맞게 조정할 수있는 솔루션을 보았습니다. 애플리케이션에 대한 자세한 내용과 외부 연결을위한 화이트리스트가 필요한 이유를 알려 주시겠습니까?
— Arnaud Meuret

답변:


0

도커 컨테이너에있는 웹 사이트의 개발자 사본이 Paypal, 다양한 API 등의 라이브 리소스에 액세스 할 수 없도록해야했습니다. 웹 사이트의 코드는 레거시 였고 많은 것들 / URL이 하드 코딩되었습니다.

내가 이것을 달성 한 방법은 빌드 스크립트에서 다음과 같은 것을 갖는 것입니다.

echo
echo "Setting up firewall rules for all docker containers..."
sudo ipset create dockerdests hash:ip -exist
sudo ipset add dockerdests x.x.x.x -exist
sudo ipset add dockerdests y.y.y.y -exist
sudo ipset add dockerdests 8.8.8.8 -exist
sudo ipset add dockerdests 8.8.4.4 -exist
sudo iptables -I FORWARD 1 -i docker0 -m set --match-set dockerdests dst -j ACCEPT
sudo iptables -I FORWARD 2 -i docker0 -j DROP

여기서 xxxx 및 yyyy는 개발 리소스입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.