web-dev-qa-db-ja.com

最近のモジュール、好ましいrcheckまたはupdateは何ですか?

次のルールがあるとしましょう。

iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT 
iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 22 -m recent --set --name counting1 --rsource 
iptables -A INPUT -m recent --update --seconds 60 --hitcount 2 --name counting1 --rsource -j LOG --log-prefix "SSH  ataque " 
iptables -A INPUT -m recent --update --seconds 60 --hitcount 2 --name counting1 --rsource -j RETURN 
-A INPUT -j ACCEPT

マニュアルを読みましたが、どのような場合に--rcheckまたは--updateオプションが推奨されるのか正確にはわかりません...更新はヒットカウントが0にリセットされて再起動することを意味します(上記の例のように) )60秒?

これらのルールは、この質問を公開するための単なる例であることに注意してください

前もって感謝します

前もって感謝します

2
sebelk

Iptablesのmanページから:

   [!] --rcheck
          Check if the source address of the packet is  currently  in  the
          list.

   [!] --update
          Like  --rcheck,  except it will update the "last seen" timestamp
          if it matches.

したがって、updateを使用してもヒットカウントはリセットされず、最後に表示されたタイムスタンプが(再)設定されます。 --secondsについて次のように述べられています。

   --seconds seconds
          This  option must be used in conjunction with one of --rcheck or
          --update. When used, this will narrow the match to  only  happen
          when  the  address  is  in the list and was seen within the last
          given number of seconds.

つまり、--rcheckを使用すると、一度にルールで指定された時間間隔(たとえば、--seconds)のみに一致するようにルールが作成され、--updateを使用すると、ルールの時間間隔が延長されます。間隔中に一致するパケットが検出された場合に一致します。

したがって、45秒ごとに一致するパケットがある場合、質問に示されているサンプルルールは、パケットをログに記録し、チェーンから戻り続けます。 OTOH --rcheckが使用された場合、2つおきのパケットは一致しません(2つの一致するパケットの60秒間隔が期限切れになったため)。

2
zagrimsan