Добавление поддержки 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 |