방화벽 카운터는 패킷이 규칙과 일치할 때 증가하며, 패킷을 보관하지 않고 그렇게 합니다. 이것만으로 대부분의 폐기 조사에서 첫 번째 질문에 답할 수 있습니다. 그 흐름이 애초에 이 규칙에 도달했는가 하는 질문입니다. 페이로드 캡처는 다른 질문에 답하며, 실행되는 동안 인터페이스를 지나는 다른 모든 것을 수집합니다. 카운터로 시작하고, 카운터가 모호할 때만 메타데이터 로깅으로 넘어가세요.

카운터가 첫 번째 질문에 답한다

일치할 수 있는 모든 규칙에는 카운터가 있고, 시험 전과 후에 그것을 읽으면 트래픽이 도착했는지 알 수 있습니다. 그것은 아카이브가 아니라 두 숫자의 비교이며, 저장 공간이나 노출 측면에서 비용이 들지 않습니다.

규칙을 소유한 도구로 카운터를 읽으세요:

iptables -L FORWARD -v -n --line-numbers
nft list ruleset

델타가 증거입니다. 카운터가 움직이지 않는 규칙은 그 흐름을 본 적이 없으며, 이는 더 이른 경계를 가리킵니다. 잘못된 인터페이스, 잘못된 테이블, 또는 패킷을 그곳으로 보낸 적 없는 경로입니다. 카운터가 움직이는데도 여전히 폐기하는 규칙은 정책이 쓰인 대로 하고 있음을 알려줍니다.

카운터가 말해 주지 못하는 것

카운터는 이유가 아니라 숫자를 줍니다. 주소로 일치한 패킷과 포트로 일치한 패킷을 구별하지 못하고, 비슷한 두 규칙 중 어느 것이 흐름을 잡았는지도 말하지 못합니다. 또한 카운터를 소유한 규칙을 읽지 않으면 패킷이 폐기되었는지, 거부되었는지, 아니면 수락된 뒤 나중에 유실되었는지도 알 수 없습니다.

여기서 메타데이터 로깅이 필요하며, 범위가 핵심입니다. 특정 시험 흐름에 대해 인터페이스, 방향, 주소, 프로토콜, 판정을 기록하세요. 그 필드들은 사용자가 무엇을 하고 있었는지 기록하지 않고 실패한 경계를 찾아냅니다.

페이로드 로깅은 다른 질문에 답하며, 인터페이스에 있는 모든 사람에 대해 답합니다.

범위가 좁은 메타데이터 로깅

시험 흐름에만 일치하는 규칙을 작성하고, 눈에 띄는 접두사를 붙이고, 플랫폼 자체의 제어 아래에서 속도를 제한해 평범한 재시도가 저장 공간을 넘치게 하지 않도록 하세요. 접두사 덕분에 장치가 기록하는 다른 모든 것 사이에서 자신의 항목을 찾을 수 있습니다.

기능이 있다는 이유만으로 페이로드 로깅이나 무제한 패킷 로깅을 켜지 마세요. 잘린 캡처도 자동으로 페이로드가 없는 것은 아닙니다. 헤더 크기와 패킷 배치가 다양하기 때문에 작아 보이는 스냅 길이도 애플리케이션 바이트를 담을 수 있습니다.

꼭 캡처해야 한다면 하나의 흐름을, 제한된 시간 동안, 질문에 답하는 가장 작은 스냅 길이로 캡처하세요.

새 요청 하나를 일치시키세요

실제 클라이언트 경로를 따르는 무해한 트래픽을 만들고, 그 전후로 관련 카운터를 비교하세요. 게이트웨이의 로컬 시험은 포워딩 규칙을 완전히 놓칠 수 있습니다. 패킷이 포워딩 경로를 타지 않기 때문입니다. 이미 성립된 세션은 새 연결과 다른 상태 처리를 따를 수 있으므로, 오래 지속된 흐름은 새 흐름을 대신하지 못합니다.

시간 창을 정하고 적어 두세요. 지정된 두 분 사이에, 이 클라이언트 주소에서, 이 프로토콜로 이 목적지까지가 진단입니다. 오늘 아침 어느 때가는 검색입니다.

하나의 흐름, 하나의 창, 하나의 경계가 여기서의 진행 단위입니다.

정리하고 발췌만 남기세요

조사가 끝나면 소유 구성에서 임시 진단 규칙을 제거하세요. 그대로 남겨 둔 좁은 로깅 규칙은 의도하지 않은 기록 시스템이 되고, 여섯 달 뒤에는 왜 존재하는지 아무도 기억하지 못합니다.

정책이 요구하면 원본 기록을 비공개로 보관하고, 전체 캡처 대신 검토된 최소 발췌를 공유하세요. 페이로드가 없더라도 주소, 계정 식별자, 내부 토폴로지는 민감합니다. 발췌를 소유자가 있는 문서로 취급하세요. 진단에 필요 없는 것은 모두 가리세요.

목표는 특정 요청에 대한 특정 실패 경계입니다. VPN을 사용하는 모든 사람의 완전한 아카이브를 만드는 어떤 것은 진단을 넘어 다른 프로젝트를 시작한 것입니다. 무언가를 추가하기 전에 플랫폼의 로깅 문서에서 기본적으로 무엇을 기록하는지 확인하세요.

관련 글