컨테이너를 사용하여 단일 Linux 시스템에서 LAN 및 WAN을 에뮬레이트

컨테이너를 사용하여 단일 Linux 시스템에서 LAN 및 WAN을 에뮬레이트

데이터 플레인 애플리케이션을 테스트하고 컨테이너를 사용할 수 있는 방법이 있는지 알고 싶습니다.

내 애플리케이션이 포함된 컨테이너를 시작하면 시스템에서 생성된 모든 인터넷 트래픽을 해당 컨테이너로 보내고 내 애플리케이션에서 해당 트래픽을 처리한 후 다시 호스트 네트워크 네임스페이스로 보내고 물리적 인터페이스(예: eth0) 밖으로 보낼 수 있습니다.

예:

Facebook을 방문하면 모든 트래픽(DNS/UDP, HTTPS/TCP)이 동일한 컴퓨터의 컨테이너 애플리케이션으로 이동하여 내 애플리케이션에 의해 처리된 다음 eth0을 통해 전송됩니다. 인터넷에서 반환되는 트래픽은 먼저 내 애플리케이션으로 반환된 다음 호스트 클라이언트(여기서는 브라우저)로 전송됩니다.

답변1

비DNS TCP 트래픽의 경우 - 페이스북의 IP 주소가 컨테이너의 IP 주소임을 애플리케이션에 알립니다. 컨테이너에서 TLS MITM 프록시를 실행합니다(이전에는 squid에서 sslbump라고 했지만 현재 구현은 다음과 같습니다).엿보기 접합).

인증서 경고를 클릭하지 않으려면 자체 인증 기관을 설정하고 클라이언트를 실행하는 호스트의 CA 인증서 데이터베이스에 CA 인증서를 설치해야 합니다.

자신만의 DNS 서버를 설정하고 DNS를 스푸핑하도록 영역을 구성하거나(pihole을 통해 가능한 것으로 의심됨) 호스트 파일의 DNS 항목을 덮어써야 합니다.

나는 당신이 이것을 달성하는 과정에서 많은 것을 배울 것이라고 생각합니다.

관련 정보