Pytanie: Dlaczego 7layer?
Odpowiedź: Bo rozpoznaje on znakomitą większość popularnych protokołów sieciowych. Najlepszy do ograniczania p2p.
Kod: Zaznacz cały
Spis treści:
1. Pobieranie potrzebnych pakietów
a) Kernel
b) Iptables
c) 7layer
2. Patchowanie kernela
3. Instalacja kernela
4. Patchowanie iptables
5. Instalacja iptables
6. Ściaganie protokołów 7layer
7. Przykładowe regułki iptables wykorzystujące 7layer
8. Bibliografia
1. Pobieranie potrzebnych pakietów
a) Przechodzimy do katalogu /usr/src/ (tam wszystko będziemy ściągać, patchować etc.):
# cd /usr/src
Najnowszą wersję kernela można pobrać poleceniem:
# wget ftp://slackware.at/slackware-current/te ... .3.tar.bz2
Rozpakujmy teraz to co ściągnęliśmy. Jeśli ktoś nie pamięta polecenia tar to może zrobić coś takiego:
- Uruchomić do Midnight Commandera # mc
- Spróbować wejść do ściągniętego archiwum jak do katalogu. Pojawi się wtedy jego zawartość archiwum. Należy skopiować wszystko (F5) do katalogu /usr/src.
Przypominam komendy na tar.bz2 (wywoływane z /usr/src):
# bzip2 -dc linux-2.6.15.3.tar.bz2 | tar xf -
b) Przechodzimy do katalogu /usr/src. Ściągamy iptables (tutaj wersja 1.3.3) ze strony www.netfilter.org.
Kod: Zaznacz cały
wget http://www.netfilter.org/projects/iptables/files/iptables-1.3.3.taz.bz2
c) Przechodzimy do katalogu /usr/src. Ściągamy 7layer z http://l7-filter.sourceforge.net
# wget http://mesh.dl.sourceforge.net/sourcefo ... 2.1.tar.gz
Rozpakowujemy jak pozostałe rzeczy do /usr/src.
Przypominam komendy na tar.gz (wywoływane z /usr/src):
# tar xzf netfilter-layer7-v2.1.tar.gz
2. Patchowanie kernela
Przechodzimy do katalogu /usr/src/netfilter-layer7-v2.1 (tam gdzie wypakowaliśmy layer7) i kopiujemy plik kernel-2.6.13-2.6.15-layer7-2.1.patch do źródeł kernela.
# cp kernel-2.6.13-2.6.15-layer7-2.1.patch /usr/src/linux-2.6.15.3
Przechodzimy do źródeł kernela:
# cd /usr/src/linux-2.6.15.3
Teraz patchowanie:
# patch -p1 < kernel-2.6.13-2.6.15-layer7-2.1.patch
3. Instalacja kernela
Jeśli mamy swój plik .config to kopiujemy go do /usr/src/linux-2.6.15.3/. Jeśli nie to nic strasznego ale czeka Nas więcej pracy. Przechodzimy do katalogu z kernelem:
# cd /usr/src/linux-2.6.15.3
i uruchamiany
# make menuconfig
lub jeśli jesteśmy pod X'ami.
# make xconfig
(Wczytujemy plik .config -> jeśli mieliśmy swój poprzedni. Jeśli nie to odsyłam do artykułów na temat "konfiguracji jądra")
Musimy zaznaczyć 7layer. Ścieżka:
Kod: Zaznacz cały
# EXPERIMENTAL (Code maturity level options -> Prompt for development and/or incomplete code/drivers)
# Netfilter (Device Drivers -> Networking support -> Networking Options -> Network packet filtering)
# Connection tracking (Network packet filtering -> IP: Netfilter Configuration -> Connection tracking)
# "Connection tracking flow accounting" -> "IP tables support"
# i wreszcie "Layer 7 match support"
# make bzImage
to dłuższą chwilkę potrwa. Następnie:
# make modules
# make modules_install
Nasze świeżo skompilowane jądro znajduje się teraz w katalogu /usr/src/linux-2.6.15.3/arch/i386/boot/bzImage. Teraz skopiujemy je do katalogu /boot (np. przy pomocy mc). Zwróćmy uwagę, czy ma ono odpowiednią nazwę: vmlinuz-2.6.15.3 (zmieniamy ją z bzImage). Oczywiście nie nadpisujemy go na nasze stare jądro, a także nie pozbywamy się od razu starego. Najpierw musimy upewnić się czy nowe działa bez problemów. Tak więc musimy dodać odpowiedni wpis do pliku konfiguracyjnego LILO w /etc/lilo.conf. Przykładowo:
Kod: Zaznacz cały
image=/boot/vmlinuz-2.6.15.3
root=/dev/hda6 <- to zależy na której partycji masz linuksa (skopiuj tą wartość z poprzedniego wpisu)
label=Slack-2.6.15.3
read-only
# lilo -v
Musisz zobaczyć swój nowy wpis Slack-2.6.15.3. Jeśli go nie ma to wróć do pliku lilo.conf. Teraz restart:
# shutdown -r now
(po uruchomieniu boot loader'a wybieramy Slack-2.6.15.3)
4. Patchowanie iptables
Przechodzimy do katalogu /usr/src/netfilter-layer7-v2.1 (tam gdzie wypakowaliśmy layer7) i kopiujemy plik iptables-layer7-2.1.patch do źródeł iptables.
# cp iptables-layer7-2.1.patch /usr/src/iptables-1.3.3
Przechodzimy do źródeł iptables:
# cd /usr/src/iptables-1.3.3
Teraz patchowanie:
# patch -p1 < iptables-layer7-2.1.patch
5. Instalacja iptables
W /usr/src/iptables-1.3.3 wykonujemy:
# chmod +x extensions/.layer7-test
# make KERNEL_DIR=/usr/src/inux-2.6.15.3
# make install KERNEL_DIR=/usr/src/linux-2.6.15.3
Uwaga!
Może zdarzyć się tak, że make nie przejdzie (wyskoczy jakiś błąd np. Error 1) wtedy odsyłam do strony:
https://lists.netfilter.org/pipermail/n ... 63397.html
6. Ściąganie protokołów 7layer
Przechodzimy do /usr/src i ściągamy protokoły rozpoznawane przez 7layer:
# wget http://mesh.dl.sourceforge.net/sourcefo ... -12.tar.gz
Tworzymy katalog /etc/l7-protocols:
# mkdir /etc/l7-protocols
Rozpakowujemy tam ściągnięte protokoły (łatwiej przy pomocy MC). Można je rozpakować w inne miejsce. Ja nie widzę jednak takiej potrzeby, ale jeśli kogoś to interesuje to odsyłam do http://l7-filter.sourceforge.net/HOWTO#conform
7. Przykładowe regułki iptables wykorzystujące 7layer
Generalny wzór regułki wygląda tak:
iptables [ustalenie tabeli i łańcucha] -m layer7 --l7proto [nazwa protokołu] -j [co zrobić]
8. Bibliografia:
http://l7-filter.sourceforge.net/HOWTO
http://www.haxite.org/index.php3?site=a ... iew&id=385
Autor: Łukasz Antoniak (gg:3080824)