このページに「SYNflood攻撃と思われる接続を破棄する」ための設定として

iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

と書いてありました。

しかし、この設定だと「新規接続なのにSYNパケットでないものはDROPする」という設定のように思えます。

SYNflood攻撃というのはWikipediaによると、
「SYNパケットを送信した後、返ってくるSYN-ACKパケットを無視して放置する」
という攻撃方法のようなので、上記の「SYNパケットで無い」ものを対象にしているiptablesの設定と噛み合っていない気がします。

本当に、この設定はSYNflood攻撃の対処法になっているのでしょうか?

(hashlimitやsynクッキーを使うべきとかそういう話ではなく、単純にこの設定がSYNflood攻撃を想定していないように見えたという話です。)