@jimp Sorry for being so slow. Forgetting to check in to a new forum :)
I think in iptables --syn actually only hit packets with SYN and ACK,RST and FIN bits cleared.
Do I understand correctly if the rule,
Iptable -A <chain> -j Deny -s <network> -p tcp --syn
Translates to ,
action drop
ip-version ipv4
source destination <network>
protocol tcp
tcp flags value 2 mask 18
Reason being "tcp flags value 2 mask 18" will only hit if SYN flag is set.
It can't match the whole mask, that is to say ACK must not be set.
Illegal combinations like SYN+RST will be ignored as it's not part of the mask.
Other flag combinations will not be a hit as a SYN flag is not set.
I guess I have a hard time getting that it's not like this.
Value nominates what flag need to be set to start a match against the mask.
The mask must be fulfilled to trigger the rule.
This gives that "tcp flags value 2 mask 18" would only start check if SYN is set, and the rule would only trigger if the packet have SYN+ACK.