The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Лимитирование числа запросов в единицу времени через iptables
Разрешаем производить только 4 коннекта к 22 порту в течении 60 секунд:

   iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set

   iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent \
      --update --seconds 60 --hitcount 4 -j DROP
 
18.07.2005 , Автор: Steve , Источник: http://www.debian-administration.or...
Ключи: limit, iptables
Раздел:    Корень / Администратору / Сетевая подсистема, маршрутизация / Пакетные фильтры и фаерволы / Пакетные фильтры в Linux: iptables, ipchains

Обсуждение [ RSS ]
  • 1, CR (?), 15:47, 22/07/2005 [ответить]  
  • +/
    А ещё ipt_recent-ом удобно ловушки для сканеров делать -- временно блокировать ip-адреса, с которых пытаются ломиться на некоторые порты
     
     
  • 2, bat (?), 14:20, 28/07/2005 [^] [^^] [^^^] [ответить]  
  • +/
    а можна пример (всмысле скрипт) ???
     
     
  • 3, Heckfy (ok), 22:15, 28/07/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Не могу найти пример, который видел буквально вчера и чуть ли не на опеннете. :-/
    А пока посмотри сюда: https://www.opennet.ru/openforum/vsluhforumID3/41732.html#32

    А то, что я потерял, содержало строчку для открытия нужного порта по стуку в другой и строку для закрытия соединений на второй по стуку в третий порт.

    :-/

     
     
  • 5, Lombre (?), 16:10, 27/01/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Защищаем SSH при помощи технологии "Port Knocking" [исправить]
    Реализация идеи динамического открытия доступа к 22 порту, при предварительном
    обращении telnet-ом на определенный сетевой порт (в примере 333 - открыть
    доступ и 334 - закрыть). Идея реализована средствами iptables, без привлечения
    дополнительных утилит и анализаторов логов.

       # Создаю цепочку с именем SSH
       iptables -N SSH
       # Правило по умолчанию в INPUT - DROP
       iptables -P INPUT DROP
       # Всё что пришло на 22 порт - в цепочку SSH
       iptables -A INPUT -p tcp --dport 22 -j SSH
       # Всё что пришло на 333 порт - в цепочку SSH
       iptables -A INPUT -p tcp --dport 333 -j SSH
       # Всё что пришло на 334 порт - в цепочку SSH
       iptables -A INPUT -p tcp --dport 334 -j SSH

    Разделения на цепочки сделано для своего удобства, от этого можно и отказаться.

    Теперь заполняем цепочку SSH.

       # Проверяем на наличие имени "SSH" у IP адреса устанавливающего соединение на 22 порт.
       # И если оно присутствует - то ACCEPT
       iptables -A SSH -p tcp -m state --state NEW -m tcp --dport 22 -m recent --rcheck --name SSH --rsource -j ACCEPT

       # Устанавливает имя SSH любому IP адресу с которого пришло новое TCP соединение на указанный порт. (порт 333)
       iptables -A SSH -p tcp -m state --state NEW -m tcp --dport 333 -m recent --set --name SSH --rsource -j DROP

       # Удаляет имя "SSH" с IP адреса установившего соединение на этот порт. (порт 334)
       iptables -A SSH -p tcp -m state --state NEW -m tcp --dport 334 -m recent --remove --name SSH --rsource -j DROP

    Насладимся итоговым результатом:

    Делаем:
       telnet ip_address_or_domain_name 333
    После чего спокойно подключаемся по SSH.

    Когда прекращаем работу закрываем за собой 22 порт:
       telnet ip_address_or_domain_name 334

     
  • 4, Heckfy (ok), 20:01, 29/07/2008 [^] [^^] [^^^] [ответить]  
  • +/
    > а можна пример (всмысле скрипт) ???

    http://silverghost.org.ua/2007/06/13/ssh-portknocking/ :
    $IP=’/sbin/iptables’
    $EXTIP=<Your external IP>

    $IPT -A INPUT -d $EXTIP -p tcp –dport 1500 -j LOG
    $IPT -A INPUT -d $EXTIP -m state –state NEW -m tcp -p tcp –dport 22 -m recent –rcheck –name SSH -j ACCEPT
    $IPT -A INPUT -d $EXTIP -m state –state NEW -m tcp -p tcp –dport 1499 -m recent –name SSH –remove -j DROP
    $IPT -A INPUT -d $EXTIP -m state –state NEW -m tcp -p tcp –dport 1500 -m recent –name SSH –set -j DROP
    $IPT -A INPUT -d $EXTIP -m state –state NEW -m tcp -p tcp –dport 1501 -m recent –name SSH –remove -j DROP
    $IPT -A INPUT -d $EXTIP -p tcp –dport 22 -j DROP

    Немного не в две строки. ;)

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру