창 크기를 수신하기 위한 iptables 일치 규칙?

창 크기를 수신하기 위한 iptables 일치 규칙?

옵션이 설정되지 않았거나 특정 창 수신 크기가 설정되지 않은 상태에서 패킷을 일치시키는 규칙이 필요합니다.

IP(tos 0x0, ttl 66, id 9000, 오프셋 0, 플래그 [없음], proto TCP (6), 길이 40) yyyy11111 > xxxxhttp: 플래그 [S], cksum 0xe425(올바른), seq 1729214256, win 715, 길이 0

따라서 이 패킷에는 win 715, 플래그 [없음]이 있습니다. -> 이러한 패킷을 어떻게 일치시킬 수 있습니까?

답변1

답변해 주셔서 감사합니다. 하지만 최고의 솔루션(최고 속도)을 찾은 것 같습니다.

iptables -I INPUT -m u32 --u32 "6&0xFF=0x6 && 0>>22&0x3C@12&0xFFFF=0x02CB" -j LOG

위의 줄은 이것이 TCP 패킷임을 확인한 다음 IP 길이를 찾아 이를 비교해야 하는 바이트에 적용합니다(예: 715). 한 마디로 모든 사람은 u32라는 훌륭한 모듈을 사용하여 패킷의 모든 비트/바이트를 추출/찾기/비교할 수 있습니다. 더 많은 정보를 위해서:iptables-u32.v0.1

답변2

--tcp-option numberIptables에는 TCP 플래그와 TCP 옵션, 즉 및 를 처리하는 옵션이 있습니다 --tcp-flags.

창 크기의 경우 다음 옵션과 함께 문자열 모듈을 사용할 수 있습니다 --hex-string pattern. 따라서 옵션이 --hex-string 02CB귀하의 경우에 해당됩니다. 정확한 결과를 얻으려면 --from및 를 사용하여 검색 오프셋을 제한해야 합니다 --to. 보다iptables 매뉴얼더 많은 정보를 위해서.

관련 정보