Войти через loginza
Закрыть панель

23

Июн

2011

Хешируемые списки iptables — ipset

Распечатать статью Разместил: spider. Рубрика Linux, сеть |

Давно хотел написать статью по ipset, но все как то руки не доходили.

А тема то для меня довольно интересная.

Да и намучался одно время  я достаточно с этим.

Итак — для чего оно вообще нужно ? И кому ?

Для этого рассмотрим немного теории.

Используется в основном это дело на маршрутизаторах с установленной ОС Linux.

Для того, чтоб выпустить клиента в сеть достаточно добавить в фаерволе всего несколько простых правил.

Например :

/sbin/iptables -t NAT -I POSTROUTING -s $IP_Client -o eth1 -j MASQUERADE
/sbin/iptables -I FORWARD -s $IP_Client -j ACCEPT
/sbin/iptables -I FORWARD -d $IP_Client -j ACCEPT

Правила пишу по памяти, но я думаю суть ясна : первым мы разрешаем маскарадинг клиента наружу, вторым и третьим разрешаем проходить пакеты в интернет и обратно.

Вроде бы ничего сложного, но если мы вспомним, то пакет не выйдет в инет пока не пройдет ВСЕ правила фаервола. А под всеми я понимаю весь набор правил маршрутизатора.

Для 1 или 100 клиентов это конечно не много и современные машины вполне спокойно справляются с такой нагрузкой.

Но представьте, что если клиентов 1000 или больше ?

Прежде чем выпустить хоть 1 пакет он должен пробежаться по ВСЕМ 3000 правилам. Почему 3000 — потому что для каждого клиента мы написали по 3 правила.

И чем больше клиентов, тем соответственно пакет не попадет в инет пока не пробежит по всем правилам.

А теперь представьте, что хотя бы половина клиентов использует программы p2p, где создается более 200-300 соединений для 1 клиента.

Вот тут я и понял что основной задачей стоит уменьшение правил фаервола.

Но как их уменьшить-то ?

Вот тут нам на помощь и приходит ipset.

Ipset представляет собой программу для работы с наборами адресов IP (IP set) в ядре Linux. Программа позволяет создавать, изменять и проверять наборы адресов IP, с которыми работает ядро Linux (включая netfilter/iptables). IP set может включать в себя адреса IP, номера портов TCP и UDP, а также дополнительную информацию.

От теории к практике.

Не знаю как на других дистрибутивах, но на Linux Ubuntu Server все ставится достаточно просто :

sudo apt-get install module-assistant
sudo apt-get install ipset-source
/sbin/m-a a-i ipset

вот и все что требуется — модули будут загружены и скомпилированы автоматически.

Что же делать дальше ?

А вот что :

Смотрим наши правила и заменяем их списками :

/sbin/ipset -N FFIN ipmap --network 192.168.0.0/16
/sbin/ipset -N FSNAT ipmap --network 192.168.0.0/16

Создаем 2 цепочки для форварда и для НАТа.

/sbin/iptables -t mangle -I FORWARD -m set --set FFIN src,dst -j ACCEPT
/sbin/iptables -t mangle -I FORWARD -m set --set FFIN dst,src -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING  -m set --set FSNAT src -o $eWAN -j MASQUERADE

И ВСЕ.

Теперь только заполняем списки

/sbin/ipset -A FSNAT $IP_Client
/sbin/ipset -A FFIN $IP_Client

Теперь в фаерволе вместо 3000 правил реально будет только 3. ТРИ. Всего то 3 правила-списка.

Это колоссально снизит нагрузку на процессор.
Более детально про ipset можно почитать тут или

 man ipset
 

31

Окт

2009

Краткий обзор Ubuntu 9.10 Karmik Koala

Распечатать статью Разместил: spider. Рубрика Linux, Новости |

header

Как только добрался домой залил свежескачанные образы на болванки.

Первым я решил пробовать ДВДшный вариант Ubuntu 9.10.

Почему ?

Наверно потому, что ноут (а ставил я именно на него) используется как браузер, просмотрщик картинок и редактор текстов.

Инет там через Wifi и играться с кдешным нетворк менеджером мне пока не хотелось.

Для начала опишу процесс самой установки :

перво-наперво предложили выбрать язык установки — русский;

затем часовой пояс (для Украины предложили их целых 3: Запорожье, Киев и Ивано-Франковск);

потом раскладку клавиатуры — и хотя была выбрана «Русская» — текст печатался только латиницей и переключаться никак не хотел;

следующий шаг — разбивка раздела — тут я немного замешкался: во-первых он правильно определил установленную Windows7, во вторых предложил варианты разбивки диска — некоторые довольно разумные, но я все же остановился на ручном разбиении.

Дальше скучно — система ставилась минут 30-40.

Первый запуск.

Загрузилась система секунд за 30-35.

Сразу порадовало :

-наличие 3D ускорения (мой ноут MSI ER710 довольно скептично относился к драйверам);

-наличие Wifi  что упростило дальнейшую установку и настройку;

а вот установка дополнительных языков ввела меня просто в ступор (см. скриншот ниже ):

p1

Мало того, что есть и русский и украинский — так это еще и отображено графически — просто супер и удобно =)

И это все «С коробки».

Допиливать пришлось только кодеки видео и мп3, но это скорее натфиль, чем напильник.

В целом система очень понравилось — все работает корректно шустро и без вопросов.

На днях буду пробовать СДшную версию КДЕшного варианта *бубунты на довольно слабую машинку. Как говорят — продолжение следует …..

p2

p3