태그 보관물: centos

centos

여러 인터페이스에서 Tcpdump 모든 인터페이스에서 동시에 캡처 할

2 개의 wan 인터페이스와 1 개의 LAN이있는 웹 프록시 역할을하는 CentOS 5 서버에서 트래픽을 캡처해야합니다. 이상한 프록시 문제를 해결하기 위해 전체 대화를 캡처하고 싶습니다. 두 개의 WAN 인터페이스간에 외부 연결이 균형을 이루기 때문에 모든 인터페이스에서 동시에 캡처 할 수 있는지 궁금합니다.

이전에 tcpdump를 사용했지만 한 번에 하나의 인터페이스 만 허용합니다. 모든 인터페이스에서 캡처하기 위해 3 개의 병렬 프로세스를 시작할 수 있지만 3 개의 다른 캡처 파일로 끝납니다.

이 작업을 수행하는 올바른 방법은 무엇입니까?



답변

tcpdump 매뉴얼 페이지에 따르면 :

2.2 이상의 커널이있는 Linux 시스템에서는“any ”라는 인터페이스 인수를 사용하여 모든 인터페이스에서 패킷을 캡처 할 수 있습니다. “모든 ”장치의 캡처는 무차별 모드에서 수행되지 않습니다.

따라서 tcpdump -i any모든 인터페이스의 데이터를 단일 캡처 파일로 동시에 캡처 하려면 다음을 실행할 수 있어야 합니다.


답변

내가 접근하는 방법은 각 인터페이스에서 별도의 파일로 덤프 한 다음 병합하는 것입니다. 모든 인터페이스에는 캡처를 오염시킬 수있는 트래픽이 포함되어 있습니다.

또한 복잡한 필터링없이 인터페이스 당 패킷 스트림을 분석 할 수 있습니다.

나는 3 터미널에서 또는 &로 명령을 배경으로 캡처합니다.

플래그 -nn은 속도에 대한 dns 해상도를 끄고, -s 0은 전체 패킷을 저장하고 -w는 파일에 씁니다.

tcpdump -i wan0 -nn -s 0 -w wan0.dump
tcpdump -i wan1 -nn -s 0 -w wan1.dump
tcpdump -i lan0 -nn -s 0 -w lan0.dump

그런 다음 wireshark의 mergecap 명령으로 파일을 병합합니다.

mergecap -w merged.dump wan0.dump wan1.dump lan0.dump

답변

모든 인터페이스에서 tcpdump를 캡처하려면

tcpdump -i any

답변