도커 컨테이너 내에서 액세스 할 수있는 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.