tech-net archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: NPF (mis?)behaviour vs. distant site (mis?)behaviour ...
> I have a NPF question. I (82.65.226.80) am currently fighting with a
> remote host (90.102.115.81) that is behaving strangely, and this is
> most of the time not working with npf enabled.
> First, a tshark dump of a https connection with curl, _without_ npf
> running, to show the weird(?) behaviour of the remote host:
> 1 0.000000 82.65.226.80 â?? 90.102.115.81 TCP 74 53349 â?? https(443) [SYN] Seq=0 Win=32768 Len=0 MSS=1460 WS=8 SACK_PERM=1 TSval=1 TSecr=0
> 2 0.029969 90.102.115.81 â?? 82.65.226.80 TCP 62 [TCP ACKed unseen segment] https(443) â?? 53349 [ACK] Seq=1 Ack=27097879 Win=16384 Len=0
> 3 0.029984 82.65.226.80 â?? 90.102.115.81 TCP 54 53349 â?? https(443) [RST] Seq=27097879 Win=0 Len=0
> 4 5.999511 82.65.226.80 â?? 90.102.115.81 TCP 74 [TCP Retransmission] [TCP Port numbers reused] 53349 â?? https(443) [SYN] Seq=0 Win=32768 Len=0 MSS=1460 WS=8 SACK_PERM=1 TSval=13 TSecr=0
> 5 6.038370 90.102.115.81 â?? 82.65.226.80 TCP 78 [TCP Previous segment not captured] [TCP Port numbers reused] https(443) â?? 53349 [SYN, ACK] Seq=0 Ack=1 Win=4140 Len=0 MSS=1380 WS=1 TSval=4230795670 TSecr=13 SACK_PERM=1
> 6 6.038388 82.65.226.80 â?? 90.102.115.81 TCP 66 [TCP ACKed unseen segment] 53349 â?? https(443) [ACK] Seq=1 Ack=1 Win=33576 Len=0 TSval=13 TSecr=4230795670
> 7 6.040516 82.65.226.80 â?? 90.102.115.81 TLSv1 583 Client Hello
> Packet #2 is a bare ACK, not sure what that means, but it happens
> most of the time. This causes the #3 RST and then the connection
> flows as normal.
I've never seen this myself. But I'd hazard a guess that
90.102.115.81 - or, in that particular case, perhaps more likely some
kind of firewall in front of it - is trying to do OS fingerprinting of
the connection-initiating host.
> Now, with my npf.conf configured roughly as follow, I'm just putting
> the two relevant rules here:
> pass stateful out final all apply "log"
> block final all apply "log"
> And the traffic capture:
> 1 0.000000 82.65.226.80 â?? 90.102.115.81 TCP 124 [pass re1/0] 53351 â?? https(443) [SYN] Seq=0 Win=32768 Len=0 MSS=1460 WS=8 SACK_PERM=1 TSval=1 TSecr=0
> 2 0.029993 90.102.115.81 â?? 82.65.226.80 TCP 104 [block re1/0] [TCP ACKed unseen segment] https(443) â?? 53351 [ACK] Seq=1 Ack=1669644097 Win=16384 Len=0
> 3 5.997559 82.65.226.80 â?? 90.102.115.81 TCP 124 [pass re1/0] [TCP Retransmission] [TCP Port numbers reused] 53351 â?? https(443) [SYN] Seq=0 Win=32768 Len=0 MSS=1460 WS=8 SACK_PERM=1 TSval=13 TSecr=0
> 4 6.028038 90.102.115.81 â?? 82.65.226.80 TCP 108 [block re1/0] [TCP Previous segment not captured] [TCP Port numbers reused] https(443) â?? 53351 [SYN, ACK] Seq=0 Ack=2751935152 Win=16384 Len=0 MSS=1460
> Same #2 bare ACK, but this time the RST packet seems to be swallowed,
> neither passed nor blocked (all my block rules have a "log"
> procedure). Is this a NPF bug?
I don't really know NPF, but I'd guess that it's actually the
out-of-window ACK, not the RST, that's getting eaten; I'd further guess
that it's getting eaten because your "stateful" is causing npf to pass
only packets that make sense as traffic belonging to an
interior-established connection (and that ACK doesn't belong).
Remember, tcpdump - and bpf captures in general - normally take place
_outside_ any firewalling done on the capturing host. So, using
tcpdump, you can't really tell the difference between the weird ACK
getting eaten and the RST getting eaten.
/~\ The ASCII Mouse
\ / Ribbon Campaign
X Against HTML mouse%rodents-montreal.org@localhost
/ \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B
Home |
Main Index |
Thread Index |
Old Index