Статьи Ubuntu 10.10 + Layer7 +iptables-1.4.1.1

Discussion in 'Статьи' started by hpagof, 16 Mar 2011.

  1. hpagof

    hpagof Elder - Старейшина

    Joined:
    5 Oct 2006
    Messages:
    42
    Likes Received:
    3
    Reputations:
    0
    Ну начнём )
    Обновляем систему и устанавливаем необходимые пакеты.
    Code:
    apt-get update
    apt-get install build-essential
    apt-get install kernel-package
    apt-get install libncurses5-dev
    Собираем необходимый материал )

    Code:
    cd /usr/src/
    wget  http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.bz2 
    wget http://nchc.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.22.tar.gz
    wget http://jaist.dl.sourceforge.net/sourceforge/l7-filter/l7-protocols-2009-05-28.tar.gz
    wget http://iptables.org/projects/iptables/files/iptables-1.4.1.1.tar.bz2
    Распаковываем:
    Code:
    tar -xvjf  linux-2.6.28.tar.bz2
    tar -xzvf  l7-protocols-2009-05-28.tar.gz
    tar -xzvf  netfilter-layer7-v2.22.tar.gz
    tar -xvf  iptables-1.4.1.1.tar.bz2
    Создаем ссылки для удобства:
    Code:
    ln -s linux-2.6.28  linux
    ln -s  iptables-1.4.1.1 iptables
    Копируем протоколы:
    Code:
    cd /etc/
    mkdir  l7-protocols
    cp /usr/src/l7-protocols-2009-05-28/protocols/* /etc/l7-protocols
    Патчим ядро и iptables:
    Code:
    cd /usr/src/linux
    patch -p1 <../ netfilter-layer7-v2.22/ kernel-2.6.25-2.6.28-layer7-2.22.patch
    cd ../netfilter-layer7-v2.22/for_older_iptables/iptables-1.4.1.1-for-kernel-2.6.20forward
    cp * /usr/src/iptables/extensions
    Code:
    cd /usr/src/linux 
    cp /boot/config-2.6.35-22-generic ./.config
    make menuconfig
    Должно открыться что-то похожее на меню )
    Идём по следующему пути

    Network support –> Networking options –> Network packet filtering framework (Netfilter) –> Core netfilter configuration
    И отмечаем:
    <M> Netfilter connection tracking support
    <M> “layer7″ match support
    [*] Layer 7 debugging output

    Жмём ESC и заходим в IP:Netfilter Configuration
    Отмечаем: (У меня отмечать не пришлось, так что будьте по внимательнее)
    <M> IPv4 connection tracking support (required for NAT)
    <M> Full NAT

    Потом жмём ESC пока систем не задаст вопрос:
    Do you wish to save your new kernel configuration? Жмем YES
    make-kpkg clean
    make-kpkg --initrd --append-to-version=-l7 kernel_image kernel_headers


    Пока идёт сборка ядра, успеете выпить чай и немного отдохнуть )

    Устанавливаем ядро
    cd /usr/src

    Code:
    dpkg -i linux-headers-2.6.28-l7_2.6.28-l7-10.00.Custom_i386.deb
    dpkg -i linux-image-2.6.28-l7_2.6.28-l7-10.00.Custom_i386.deb
    nano /etc/default/grub
    Закоментируем строку

    #GRUB_HIDDEN_TIMEOUT=0
    Далее выполняем команду
    root@ubuntu:/# update-grub

    Вы должны увидеть что-то вроде этого:
    Code:
    Generating grub.cfg ...
    Found linux image: /boot/vmlinuz-2.6.35-22-generic
    Found initrd image: /boot/initrd.img-2.6.35-22-generic
    Found linux image: /boot/vmlinuz-2.6.28-l7
    Found initrd image: /boot/initrd.img-2.6.28-l7
    Found memtest86+ image: /boot/memtest86+.bin
    Done
    Далее делаем reboot

    При выборе ядра выбираем только что собранное ядро.

    Прежде чем установить iptables 1.4.11 сначало удалите существующую версию
    apt-get remove iptables

    Установка iptables-1.4.1.1 c подержкой Layer7
    Code:
    cd /usr/src/iptables
    ./configure  --with-ksource=/usr/srс/linux
    make
    make install
    reboot
    Проверяем:

    Code:
    iptables -A FORWARD -m layer7 --l7proto skypeout -j DROP
    iptables -A FORWARD -m layer7 --l7proto skypetoskype -j DROP
    ######################################################
    iptables –L –n –v

    Chain INPUT (policy ACCEPT 87 packets, 7379 bytes)
    pkts bytes target prot opt in out source destination

    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target prot opt in out source destination
    0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 LAYER7 l7proto skypeout
    0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 LAYER7 l7proto skypetoskype

    Chain OUTPUT (policy ACCEPT 22 packets, 2136 bytes)
    pkts bytes target prot opt in out source destination

    Вот собственно и всё )
    Данное правило не позволяет блокировать SkypeChat
    1 правило блокирует звонки со скайпа на телефоны второе правило со скайпа на скайп )