質問です
今、生まれて初めて VPS で Linux を弄って、サーバ構築に挑戦しています

iptables の設定をしているのですが https://help.sakura.ad.jp/app/answers/detail/a_id/2423 に

iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP ------�@データを持たないパケットの接続を破棄する
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP ------�Bステルススキャンと思われる接続を破棄する

とありました

TCP には URG, ACK, PSH, RST, SYN, FIN という6つのフラグがあり、�@のフラグ無し、�Bの全フラグは、そもそも正常なTCP通信ではありえないため、DROP することに異論はありません。
ただ、他にも異常な組み合わせ(正常な通信では絶対に存在しない組み合わせ)がたくさんあって、それらは全部ステルススキャンに使える訳なのに、何故この2つだけを拒否しているんでしょうか?


さくら公式の解説を無視して、TCP としてありえないフラグの組み合わせを全部拒否する設定にしてみたところ、期待通りに動作していますが、
これだと何か問題があるのでしょうか?

iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP              ←さくら公式の「�@データを持たないパケットの接続を破棄する」です
iptables -A INPUT -p tcp --tcp-flags ALL SYN,FIN,PSH,URG -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP              ←さくら公式の「�Bステルススキャンと思われる接続を破棄する」です


さくらが、あえて不完全な設定を公式に紹介している理由が理解できません