원격 캡처에서 SSH 흐름을 제외해야 할까요?
원격 캡처는 자신의 출력을 나르는 연결 자체를 기록합니다. 얼마나 제외할지 결정하고, 두 개의 부정 호스트 테스트를 or 로 절대 결합하지 마세요.
같은 연결로 출력을 지켜보면서 원격 머신에서 캡처하는 것은 자기 참조적인 측정이며, 측정하려는 대상을 왜곡합니다. 출력하는 모든 패킷은 캡처 중인 세션을 통해 되돌아옵니다. 그 흐름을 제외하는 것이 대개 옳지만, 제외의 범위는 실제 결정입니다. 너무 좁으면 캡처가 스스로 넘치고, 너무 넓으면 증거가 사라집니다.
캡처가 자기 자신을 기록하는 이유
캡처는 자기 출력의 귀환 경로를 봅니다. 터미널에 출력되는 모든 줄이 관리 연결에서 하나 이상의 패킷이 되고, 필터가 그것을 다시 일치시켜 출력합니다. 결과는 버퍼나 회선이 항복할 때까지 커지는 루프입니다.
그래서 파일로 기록한 캡처는 멀쩡해 보이지만 같은 캡처를 실시간으로 스트리밍하면 쓸 수 없게 됩니다. 트래픽은 새것이 아니라 여러분이 만든 것입니다. 십 초짜리 캡처도 루프가 시작되면 회선이 감당할 수 있는 양보다 많은 출력을 낼 수 있습니다.
제외를 하나의 그룹으로 구성하세요
로컬 터미널의 주소가 아니라 원격 호스트가 여러분의 세션을 보는 방식에서 시작하세요. 점프 호스트나 NAT 장치는 상대를 여러분이 입력한 적 없는 무언가로 만들 수 있으므로, 주소는 원격 측 자체의 시점에서 읽으세요. 그다음 호스트와 포트를 하나로 묶어 부정이 그 쌍 전체에 적용되게 하세요.
tcpdump -ni eth0 '(net 10.60.0.0/24) and not (host 203.0.113.77 and tcp port 2222)'표현식 전체를 인용하면 셸이 괄호를 문법으로 읽지 않습니다. 결과를 믿기 전에 필터를 다시 출력해 보세요.
옳아 보이면서 모든 것을 통과시키는 필터
잘못된 필터는 자연스럽게 읽히는 것입니다. 출발지가 상대가 아니거나, 목적지가 상대가 아닙니다. 여러분의 워크스테이션에서 온 패킷에는 첫 번째 검사가 참이고, 응답에는 두 번째가 참입니다. 둘을 or 로 결합하면 양방향이 모두 남는데, 그것이 바로 버리려던 것입니다.
pcap 필터 논리는 and 와 or 에 같은 우선순위를 주고 왼쪽에서 오른쪽으로 평가하므로, 둘을 섞을 때 괄호는 선택 사항이 아닙니다. 두 부정을 결합하는 대신 묶은 표현식 하나를 부정하세요. 그 한 번의 변경이 작동하는 필터와 여러분의 타이핑으로 가득한 캡처를 가릅니다. pcap 필터 참조 는 터미널에서 읽을 만큼 짧고, 필터가 예상 밖으로 동작할 때마다 확인할 가치가 있습니다.
캡처가 무엇을 증명해야 하는지로 결정하세요
캡처가 무엇을 증명해야 하는지 물어 얼마나 제외할지 결정하세요. 같은 호스트로 가는 애플리케이션 트래픽을 봐야 한다면 SSH 포트만 제외하고 다른 세션의 잡음은 받아들이세요. 그 호스트가 질문과 무관하다면 통째로 제외하는 편이 더 단순하고, 스스로 만든 패킷 한 부류를 통째로 없앱니다. 선택을 캡처 파일 옆에 적어 두세요. 필터는 증거에 대한 가정이기 때문입니다.
인터페이스 선택이 무엇을 볼 수 있는지를 결정합니다. 터널에서는 내부 트래픽이 보이고, 물리 인터페이스에서는 암호화된 전송이 보입니다. 선택한 지점에 관리 패킷이 이미 없다면, 계층을 잘못 겨냥한 캡처는 어떤 제외로도 고쳐지지 않습니다.