Назад | Перейти на главную страницу

Последний модуль, что лучше проверить или обновить?

Допустим, у меня есть следующие правила:

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 секунд?

Имейте в виду, что эти правила являются лишь примером для ответа на этот вопрос.

На странице руководства iptables:

   [!] --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 был использован, каждый второй пакет не будет соответствовать (поскольку 60-секундный интервал для двух совпадающих пакетов истек).