Настроим 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. пользумся
URL: http://sanmai.livejournal.com/506508.html
Обсуждается: http://www.opennet.dev/tips/info/2026.shtml