июля 20 2010 11:22 пп

Ограничение количества сессий с одного ip адреса

Если у вас вдруг возникнет необходимость ограничить количество сессий для айпи адресов в вашей локальной сети, то после прочтения данной заметки у вас будет готовое решение. Воспользуемся штатными возможностями пакетного фильтра iptables, а именно его модулями connlimit и recent. Модуль connlimit сильно расходует ресурсы машины, и использовать его рекомендуется только в маленьких сетях, да и работает он только с протоколом TCP.



Connlimit может ограничивать количество установленных tcp сессий для каждого клиента достаточно простым правилом, например пример приведенный ниже ограничит количество TCP сессий от каждого клиента из сети 172.16.0.0/12 в 200.

Код:

iptables -A FORWARD -s 172.16.0.0/12 -p tcp --syn -m connlimit --connlimit-above 200 -j DROP

Модуль recent работает по следующему принципу: первым правилом iptables вы назначаете пакетам удовлетворяющим определенным критериям уникальное имя которое впоследствии будет использоваться этим модулем для наложения ограничений. Например присвоим всем сетевым пакетам с состоянием NEW (новое соединение), проходящие через сетевой интерфейс eth0 нашего роутера имя SYNF. Код:

iptables -A FORWARD -i eth0 -m state --state NEW -m recent --set --name SYNF --rsource

Вторым правилом мы скажем модулю, что если от какого-то клиента таких пакетов помеченных как SYNF больше 10 за 10 секунд, то такие пакеты должны отбрасываться.

Код:

iptables -A FORWARD -i eth0 -m state --state NEW -m recent --update --seconds 10 --hitcount 10 --rttl --name SYNF --rsource -j DROP

Тестирование показало, что использование модуля recent не влияет на нагрузку роутера. Причем с помошью комбинации модулей state и recent можно делать достаточно интересные ограничения в сетевом трафике препятствуя распространению спама, флуда и пр.


Источник статьи: http://centos.alt.ru/?p=85

Popularity: 13%





2 Комментариев »


2 Responses to “Ограничение количества сессий с одного ip адреса”

  1. Tweets that mention Ограничение количества сессий с одного ip адреса | Stepanoff Home Network -- Topsy.com on 21 Июл 2010 at 02:32 #

    [...] This post was mentioned on Twitter by Максим Степанов, Максим Степанов. Максим Степанов said: New blog post: Ограничение количества сессий с одного ip адреса — http://tinyurl.com/2umb3dy [...]

  2. Larodar on 29 Дек 2010 at 12:18 #

    Доброго дня.
    Чем отличается -m state —state NEW от —syn ?

Trackback URI | Comments RSS

Leave a Reply

You must be logged in to post a comment.


Самые популярные статьи

  • Установка и настройка DNS сервера bind9 Ubuntu-Debian HOWTO
  • Установка Samba сервера на Ubuntu или Debian за 5 минут
  • Установка почтового сервера Postfix + Dovecot + MYSQL и виртуальных доменов
  • Установка и настройка Open VPN сервера на Debian и Ubuntu
  • Настройка маршрутизации в Ubuntu Linux для начинающих
  • Настройка шлюза в локальной сети, лимитирование скорости (shaper), фаервол (iptables).
  • Удаленное подключение к рабочему столу Linux из Windows с помощью Xming и SSH
  • Установка и настройка DHCP сервера
  • Установка и настройка VSFTPD + MYSQL (Ubuntu & Debian)
  • Настройка ограничения и распределения канала (HTB Shaper)
  • Настройка sudo в Debian GNU/Linux и Ubuntu Linux
  • Mail.ru Агент в Linux
  • Установка и настройка L2TP сервера xl2tpd или l2tpd
  • Установка хостинг панели ISPConfig 3 на Ubuntu 9.04
  • Как установить LDAP сервер и его клиентов. (ldap linux debian & ubuntu auth)
  • Сетевые утилиты онлайн - NSLOOKUP
  • Подробное руководство по настройке wifi соединения с шифрованием разных типов
  • Установка apache2.2.x во FreeBSD 7.0
  • IP телефония в Ubuntu или Debian на базе Asterisk за 15 минут
  • Различия в ядрах Ubuntu Server и Ubuntu Desktop
  • Linux в роли WI-FI точки доступа
  • Игры в Linux
  • Установка Ubuntu на RAID-1 диски
  • Настройка рабочего стола Ubuntu, или как догнать и перегнать Windows!
  • Ставим и настраиваем XEN сервер
  • Установка Nginx, PHP5, FastCGI, XCache и MySQL на Ubuntu
  • Открылся русскоязычный Linux торрент трекер
  • HDR обои на рабочий стол 1920×1200
  • Установка Zend Optimizer на Ubuntu 10.04 LTS
  • Сборка Midnight Commander 4.6.3 на Mac OS Leopard

  • « | »

    Рейтинг блогов Rambler's Top100
    службы мониторинга серверов