GNU/Linux >> Linux の 問題 >  >> Linux

iptables でパケットをレート制限する必要がありますか?

レート制限は防止ではなく、DoS への招待です。特に、状態情報のない認証されていないパケットが一定のレートを超えた場合にパケットがドロップされる上記のフレーバーでは。この接続状態では誰でも労力をかけずにパケット (送信元 IP アドレスを含む) を偽造できるため、レート制限機能を利用した新しい DoS 攻撃ベクトルが発生します。

通常、レート制限は、

がある場合にのみ意味があります。 <オール>
  • 構成における予測可能なハード接続制限またはソフト接続制限
  • 一般的なトラフィックのレート制限をこの制限未満に設定して、負荷に関係なく優先トラフィックまたは管理トラフィックの接続を設定できるようにします
  • 1. 多くの場合、面倒だと判断するのは難しいですが、2. 接続のセットアップ時に「優先または管理」トラフィックを残りのトラフィックと確実に区別できる場合にのみ機能することは明らかです。別のネットワーク インターフェイスを経由している場合。

    それ以外の場合は、システムの回復力を増すよりもむしろ減らすことになります。


    -m limit の問題は、送信元 IP アドレスに関係なく、すべての TCP パケットが制限されることです。したがって、

    のような syn パケットの制限が低い場合
    -A INPUT -p tcp  --syn -m limit --limit 30/s --limit-burst 30 -j ACCEPT
    -A INPUT -p tcp --syn -j DROP
    

    hping コマンド ラインを使用する 1 つのクライアントのみが、制限ルールが一致し、ソース IP アドレスに関係なく多くのパケットをドロップするため、SYN​​ フラグを使用して多くの tcp パケットを送信することでサーバーをダウンさせることができます。 limit は、トラフィックの良し悪しを区別しません。良好な受信トラフィックも停止します。

    hping は次のようになります:

    hping thetargetedhostip -p 80 -S -c 1000 -i u20000
    

    IP アドレスごとに着信 tcp 接続を制限するには、hashlimit を使用することをお勧めします .次のルールは、1 秒あたり 30 パケットが受信される場合にのみ一致し、IP あたりの許可されたパケットの数を減らします 毎秒 15 パケットまで。

    -A INPUT -p tcp --syn -m hashlimit --hashlimit 15/s --hashlimit-burst 30 --hashlimit-mode srcip --hashlimit-srcmask 32 --hashlimit-name synattack -j ACCEPT 
    -A INPUT -p tcp --syn -j DROP
    

    実際、今日ダウンしたサーバーの多くは、攻撃中にリソースが不足したためにダウンしたのではなく、制限モジュールがすべての受信トラフィックをドロップしたためだと確信しています.


    Linux
    1. Linux IPTables:ファイアウォール ルールを追加する方法 (Allow SSH の例を使用)

    2. lxc-execute でメモリと CPU を制限する

    3. iptables または tc を使用してクライアントごとのパケットを制限する方法。

    1. ImageMagick で PDF を作成する 2 GB 制限を超える

    2. IPTables を使用した FTP の許可

    3. iptables でポート転送するにはどうすればよいですか?

    1. GeoIPとiptablesがある国からのIP範囲をブロックする

    2. tcpdumpでパケットをキャプチャする

    3. CentOS7でiptablesを使用する