
Archwikiには、ステートフル iptables ファイアウォール彼らはいくつかのポートスキャナを騙すルールただし、DoS 攻撃の脆弱性が生じる可能性があることに注意してください。特に、閉じたポートに継続的にアクセスしようとする IP へのアクセスを拒否すると、潜在的な攻撃者が偽装した IP でこれらのパケットを送信し、ファイアウォールが正当なユーザーを締め出す可能性があります。
推奨される TCP ルールは次のとおりです。
# iptables -I TCP -p tcp -m recent --update --rsource --seconds 60 --name TCP-PORTSCAN -j REJECT --reject-with tcp-reset
# iptables -A INPUT -p tcp -m recent --set --rsource --name TCP-PORTSCAN -j REJECT --reject-with tcp-reset
私の質問は、パケットのTTLをルールに追加すれば、DoS攻撃の効果を制限できるかどうかです。iptables のマニュアルページ:
--rttl:[···] これにより、アドレスがリスト内にあり、現在のパケットの TTL が --set ルールにヒットしたパケットの TTL と一致する場合にのみ一致が発生するように絞り込まれます。これは、偽のパケットを送信して他のユーザーがサイトにアクセスできないようにすることで、このモジュールを介して DoS 攻撃を行うために送信元アドレスを偽装する人がいる場合に便利です。
それは機能するでしょうか、それとも何か見落としているのでしょうか?
答え1
この目的で TTL オプションを使用する場合、いくつかの問題があります。基本的には、アドレスを識別するときに、識別の追加コンポーネントとして TTL を使用することを提案しています。
ただし、攻撃者が IP を偽装して正当なクライアントを締め出すことができるのと同様に、パケットの TTL 値も偽装できます。つまり、誰でも任意の TTL 値を持つパケットを生成でき、想定される初期値から開始することに制限されません。
また、当然のことながら、ネットワーク インフラストラクチャが変化すると、ユーザーと攻撃者間のホップ数も時間とともに変化するため、一意の識別子としての TTL の実用的な有用性は制限されます。
この手法の最後の問題は、攻撃者が自分とあなたの間に、多くの正当なホストとあなたの間にあるホップ数と同じ数のホップ数を持つ可能性が十分にあることです。したがって、TTL スプーフィングがなくても、攻撃者はおそらくある程度の DoS 攻撃を実行できる可能性があります。
答え2
これは iptables の外部のものなので、質問に対する本当の答えにはなりませんが、ポート スキャンから保護したい場合は、PSAD の方が適したオプションです。システムのポート スキャンを行うすべての IP をブロックするように設定できます。 http://cipherdyne.org/psad/
これはiptablesを使用しますが、必ずしもiptablesルールだけではありません