Настроим IP sets (http://ipset.netfilter.org/) в Debian. Ipset позволяет использовать
большие таблицы IP и MAC адресов, подсетей номеров портов совместно с iptables (подключение через одно
правило, в таблице используется хэширование). Возможно быстрое обновление списка целиком.Например:
ipset -N servers ipmap --network 192.168.0.0/16
ipset -A servers 192.168.0.1
iptables -A FORWARD -m set --set servers dst,dst -j ACCEPTСтавим исходные тексты ядра и устанавливаем необходимые для сборки пакеты:
# apt-get install kernel-package libncurses5-dev fakeroot
/usr/src# REV=`date +%F`
/usr/src# KV=2.6.29/usr/src# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-${KV}.tar.bz2
/usr/src# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-${KV}.tar.bz2.sign
/usr/src# gpg --verify linux-${KV}.tar.bz2.sign/usr/src# tar xvjf linux-${KV}.tar.bz2
/usr/src# ln -s linux-${KV} linuxУстанавливаем патчи ipset:
# cd /usr/src/
src # aptitude install git-core ipset
src # git clone git://git.netfilter.org/ipset.git
src # cd ipset/
ipset # make KERNEL_DIR=/usr/src/linux patch_kernel
cd kernel; ./patch_kernel /usr/src/linuxСобираем ядро:
ipset # cd /usr/src/linux
/usr/src/linux# make-kpkg clean
/usr/src/linux# make menuconfig
/usr/src/linux# cp .config ~/Отвечаем yes на все что нам нужно.
Начинаем непосредственно компиляцию:
/usr/src/linux# fakeroot make-kpkg --revision=${REV} kernel_image
Пьем чай. Спокойно. Оно заканчивается:
dpkg --build /usr/src/linux/debian/linux-image-${KV} ..
dpkg-deb: building package `linux-image-${KV}' in `../linux-image-${KV}_${REV}_amd64.deb'.
make[2]: Leaving directory `/usr/src/linux-${KV}'
make[1]: Leaving directory `/usr/src/linux-${KV}'/usr/src/linux#
/usr/src/linux# dpkg -i ../linux-image-${KV}_${REV}_amd64.debЕсли не получилось, удаляем и компилируем с той же ${REV}:
/usr/src/linux# dpkg -r linux-image-${KV}
/usr/src/linux# REV=`date +%F`
/usr/src/linux# rm -fr debian/
/usr/src/linux# make menuconfigИ так далее как было выше.
После установки обновляем конфиг grub:
/usr/src/linux# update-grub
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
Searching for splash image ... none found, skipping ...
Found kernel: /vmlinuz-${REV}
Updating /boot/grub/menu.lst ... doneОбязательно проверяем и перезагружаемся:
/usr/src/linux# cat /boot/grub/menu.lst
/usr/src/linux# rebootЗаключительный тест:
~ $ ping server
Debian 5.0 (Lenny и ipset).
Дополнение от pavel_simple:
В Debian 5.0 (Lenny), модулей ipset как таковых нет. Вместо этого имеется всё необходимое,
чтобы ими можно было воспользоваться.1. устанавливаем пакеты.
#apt-get build-dep netfilter-extensions-source
#apg-get install netfilter-extensions-source
#cd /usr/src
#tar xjf netfilter-extensions.tar.bz22. собираем и устанавливаем
#m-a a-i netfilter-extension
3. пользумся
URL: http://sanmai.livejournal.com/506508.html
Обсуждается: http://www.opennet.me/tips/info/2026.shtml
Да уж... IPSets это круто, но пока они обновяцца... Можно сдохнуть. Живой пример - зажим мирового трафика и украинский анлим... Пока мы с кошки получаем список префиксов и запуливаем его в IPSets (ну не умеют кошки нормально резать полосу, а умеющие стОят денех, как маленький провайдер со своей клиентской базой), проходит как раз столько времени, сколько надо, чтобы быстренько повесицца на ближайшем патч-корде...
>Да уж... IPSets это круто, но пока они обновяцца... Можно сдохнуть. Живой
>пример - зажим мирового трафика и украинский анлим... Пока мы с
>кошки получаем список префиксов и запуливаем его в IPSets (ну не
>умеют кошки нормально резать полосу, а умеющие стОят денех, как маленький
>провайдер со своей клиентской базой), проходит как раз столько времени, сколько
>надо, чтобы быстренько повесицца на ближайшем патч-корде...ммм... а вы наверное таблицы заполняете через... ммм жопу а не через restore, угадал?
Не трушно. Надо создать патч-пакет для ipset и дальше юзать:fakeroot make-kpkg --revision=${REV} --added-patches ipset kernel_image
>Не трушно. Надо создать патч-пакет для ipset и дальше юзать:
>
>fakeroot make-kpkg --revision=${REV} --added-patches ipset kernel_imageещё один... и что при обновлении пересобирать весь kernel?
вы до конца прочитали?
а что такое #m-a a-i ?
module-assistant auto-install
А типа не судьбаmake config
make
make modules_install
make install
vi /boot/grub/menu.lst
init 6
или без fakeroot не кошерно?
pavlin не читатель, павлин пейсатель -- для тупых и не умеющих читать до конца -- громко-громкоНЕ НУЖНО переделывать kernel чтобы поставить ipset в Debian. А так-же НЕ НУЖНО слушать/читать всякую херню которою постят на opennet'е. И ДА - НУЖНО читать документацию.
Не слушайте бяку...1. ядро демьяна выкидываем нах... как исходники так и бинарник
2. качаем последнюю ванилу
3. патчи которые нужны.
4. компилем.И при следующем apt-get upgrade ваша система и настрокйи ipset не грохнутся, потому как ВЫ контролируете когда и что обновлять! Особенно ядро!
>Не слушайте бяку...
>
>1. ядро демьяна выкидываем нах... как исходники так и бинарник
>2. качаем последнюю ванилу
>3. патчи которые нужны.
>4. компилем.
>
>И при следующем apt-get upgrade ваша система и настрокйи ipset не грохнутся,
>потому как ВЫ контролируете когда и что обновлять! Особенно ядро!
>именно -- не слушайте. для павнина и извращенцев есть lfs
>>Не слушайте бяку...
> не слушайте. для павнина и извращенцев есть lfsБе-бе-бе :-P
>>>Не слушайте бяку...
>> не слушайте. для павнина и извращенцев есть lfs
>
>Бе-бе-бе :-PЖ:-)