nftables 포트 전달 NAT 흐름 중단

nftables 포트 전달 NAT 흐름 중단

소스 주소를 기반으로 대상 포트 튜플에 대한 동적 단기 UDP 포트 전달을 수행하고 있습니다. 매핑, 조회 및 적절한 규칙과 함께 nftable을 사용하면 잘 작동합니다(pre-route/nat dest 체인의 nat 및 post-route/nat src 체인의 masq).

그러나 nftables에서 NAT를 사용할 때 흐름의 후속(설정된) 패킷에 대해서는 규칙 조회가 수행되지 않습니다(참조:문서). 이는 맵에서 요소를 제거하거나 맵에 필터링 규칙을 추가하여 기존 프로세스를 종료할 수 없음을 의미합니다.

이 문제를 처리하는 가장 쉬운 방법은 Stateless NAT를 수행하는 것입니다. 그러나 원시 우선순위를 갖는 사전 라우팅된 필터 체인의 간단한 규칙(예제를 단순화하기 위해 맵을 사용하지 않고 변수를 사용함)은 작동하지 않는 것 같습니다. 추적이 보이지만 $target에 패킷이 도착하지 않습니다.

ip saddr $client ip protocol udp notrack ip daddr set $target nftrace set 1 return

제가 누락한 nftables에 대한 상태 비저장 NAT를 구축하는 방법에 대한 자세한 문서가 있습니까? $target에서 $client로 돌아가는 흐름에 대한 규칙도 추가해야 합니까?

아니면 공격적인 연결 추적 시간 제한을 추가하는 등 내가 알지 못하는 기존 NAT 흐름을 필터링하는 방법이 있습니까(CT가 nftables를 통해 NAT와도 작동하는지 확실하지 않음)?

답변1

글쎄, 문서가 약간 오해의 소지가 있는 것으로 나타났습니다. "흐름의 후속 패킷에 대해 규칙 조회가 발생하지 않습니다"라고 되어 있지만 이는 후속 처리 규칙이 적용되지 않음을 의미합니다.

원래 우선순위로 필터 체인을 추가하면 여전히 활성 NAT 흐름에서 패킷이 삭제됩니다. 정방향 후크 필터링(대상 포트, 주소 등 변경)에서도 마찬가지입니다.

저는 여전히 이 무상태를 모델링하는 방법을 이해하는 데 매우 관심이 있지만 우선 순위가 지정된 원시 작업을 사용하여 사전 라우팅된 필터 체인에 필터 규칙을 추가합니다.

관련 정보