Добавление поддержки IP sets и пересборка ядра в Debian GNU/Linux
Настроим 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.bz2

2. собираем и устанавливаем

   #m-a a-i netfilter-extension

3. пользумся

Материал взят с opennet.ru