Instalacja 7Layer - (przystosowanie jądra i iptables)

Slackware FAQ - czyli baza pytań i odpowiedzi.

Moderatorzy: Moderatorzy, Administratorzy

ODPOWIEDZ
Awatar użytkownika
myuser
Użytkownik
Posty: 442
Rejestracja: 2006-02-09, 17:44
Lokalizacja: Warszawa
Kontakt:

Instalacja 7Layer - (przystosowanie jądra i iptables)

Post autor: myuser » 2006-03-12, 23:23

Instalacja 7Layer (przystosowanie jądra i iptables)


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
Wszystko testowane na: Slackware Linux 10.2 (kernel 2.6.15.3), iptables 1.3.3, 7layer 2.1, protokoły 7layer z dnia 2006-02-12. Zalecam robienie wszystkiego na koncie root'a (nie będę się tutaj rozdrabniał na $ i #).

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
Rozpakowujemy je tak jak w przypadku kernela.
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"
Po zaznaczeniu wszystkich niezbędnych opcji zapisujemy ten plik konfiguracyjny. Wykonujemy polecenie:
# 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
Po dodaniu wpisu do lilo.conf uruchamiamy je ponownie w celu zapisania zmian, a więc z konsoli:
# 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)
Ostatnio zmieniony 2006-08-28, 09:21 przez myuser, łącznie zmieniany 6 razy.

ODPOWIEDZ