Docker 내부의 Linux에서 특정 앱의 네트워크 트래픽을 기록하여 인터넷 연결을 차단하고 응답을 스푸핑합니다.

Docker 내부의 Linux에서 특정 앱의 네트워크 트래픽을 기록하여 인터넷 연결을 차단하고 응답을 스푸핑합니다.

Docker 인스턴스 내부의 Ubuntu에서 실행되는 앱(QEMU를 통해 실행되는 Google의 Android 에뮬레이터)이 있습니다. 나는 다음을 원한다:

  • QEMU 내부에서 실행되는 VM에서 들어오는 모든 네트워크 트래픽(패킷)을 캡처합니다.
  • 나머지 인스턴스는 연결된 상태로 유지하면서 해당 VM의 트래픽이 인터넷에 도달하지 못하도록 방지
  • 해당 VM에서 다른 서버로 보낸 요청에 대한 스푸핑 응답을 통해 내가 해당 서버인 것처럼 가장합니다.
  • 이 모든 작업을 자동화된 헤드리스 방식으로 수행합니다(사용자 입력 없이 스크립트만 사용).

이것저것 조사하다가 알게 된 사실https://github.com/mandiant/flare-fakenet-ng, 이것이 바로 나에게 필요한 것입니다. 문제는 내 설정에서 작동하지 않는 것 같다는 것입니다(Fakenet의 네트워크 드라이버가 로드될 때마다 모든 구성에 관계없이 모든 네트워크 트래픽이 비활성화되고 Docker 인스턴스에 대한 제어가 손실됩니다). 여기에 대해 질문을 했습니다(Ubuntu Linux의 fakenet-ng에서 전환기를 활성화하면 모든 네트워크 트래픽이 비활성화됩니다.), 그러나 답변을 받지 못했습니다.

지금까지 이 문제를 해결하지 못했기 때문에 이를 달성할 수 있는 다른 방법을 찾고 있습니다. 어떤 도구와 방법을 사용해야 합니까? 그들의 장점과 단점은 무엇입니까?

답변1

Android Emulator 자체에는 tcpdump 구현과 패킷을 파일로 덤프하는 옵션이 포함되어 있습니다. 이렇게 사용하세요 emulator -tcpdump {path_to_dump}.pcap {other_options}.

인터넷 연결을 중지하고 응답을 스푸핑하는 것과 관련하여 별도의 사용자 그룹에서 에뮬레이터를 시작하고 프로세스의 GID를 기반으로 iptables 필터링을 수행하여 특정 GID에서 들어오는 모든 트래픽을 스푸핑된 응답이 있는 로컬 서버로 리디렉션할 수 있습니다. 구현됩니다. 다음과 같은 것https://pypi.org/project/spoof/또는https://pypi.org/project/fake-server/이 사용 사례에 적합할 수 있습니다.

관련 정보