Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2007-06-17 12:46:31

  yakubek - Użytkownik

yakubek
Użytkownik
Skąd: Łasin
Zarejestrowany: 2007-05-14
Serwis

Instalacja HTB od podstaw, jak to zrobić-dla początkujących

Witam wszystkich.
Na początek przyznam się, że jestem początkującym użytkownikiem Debiana, do tej pory miałem tylko styczność z Freesco NND.
Ale do rzeczy ….
Sprzęt
Mam serwerek-router, który podłączony jest do Routerka  TPSA (SPEEDTOUCH 510) który pracuje jako Bridge.
Oczywiście dwie karty sieciowe 10/100,płyta gówna Aspen AX6B Plus, dysk 10 GB, ram 256
Wszystko to pracuje na Neostradzie 1024, 5 użytkowników w sieci z dostępem do netu.
System Debian 4.0 Etch, jajko 2.6.18 tryb tekstowy

Chciałbym, aby serwer pełnił rolę strażnika łącza i do tego chce użyć HTB tak żeby wszyscy mieli dostęp do netu, mogli ściągać pliki (P2P) z limitami, ale bez zakazu.
Wiele czytałem na temat kolejkowania pakietów za pomocą HTB, ale tu już zaczyna się problem.
Nie wiem jak się za to zabrać, opisy jaki znalazłem w sieci są dla mnie mało czytelne, wiele poleceń nie uruchamia konsoli konfiguracyjnych.

Czy jest ktoś na forum, kto wyjaśni mi krok po kroku jak zainstalować HTB, czy muszę zmieniać jajko na nowsze, czy można pozostać na tym co mam teraz?

Z góry dziekuję za wszelka pomoc.

Offline

 

#2  2007-06-17 16:02:09

  qluk - Pan inż. Cyc

qluk
Pan inż. Cyc
Skąd: Katowice
Zarejestrowany: 2006-05-22

Re: Instalacja HTB od podstaw, jak to zrobić-dla początkujących

Podział Neostrady poza lokal jest zabroniony!

Rozważmy więc kwestie tego routera. Czy prócz shapingu i firewall'a potrzebujesz na nim coś jeszcze? DHCP, VPN, PPTP, itp.

Offline

 

#3  2007-06-17 16:25:19

  Syziek - Członek DUG

Syziek
Członek DUG
Skąd: Tychy
Zarejestrowany: 2004-11-14

Re: Instalacja HTB od podstaw, jak to zrobić-dla początkujących

Czy on gdziekolwiek napisal ze dzieli poza lokal?

Niechce nikogo bronic ale to jest jakas obsesja, jak ktos pisze ze dzieli neostrade to odrazu mu sie mówi ze poza lokal niemozna.

:P


JID: syziek@jid.dug.net.pl
Registered Linux user: #372377
http://imagegen.last.fm/mrMoonsault2/recenttracks/4/Syziek.gif

Offline

 

#4  2007-06-17 16:40:27

  BiExi - matka przelozona

BiExi
matka przelozona
Skąd: Gorlice
Zarejestrowany: 2004-04-16
Serwis

Re: Instalacja HTB od podstaw, jak to zrobić-dla początkujących

na poczatek polecam przeczytanie artykulu linio na temat htb
http://linio.terramail.pl/htb.pdf
tam jest to dosc zgrabnie opisane

Offline

 

#5  2007-06-17 20:31:36

  qluk - Pan inż. Cyc

qluk
Pan inż. Cyc
Skąd: Katowice
Zarejestrowany: 2006-05-22

Re: Instalacja HTB od podstaw, jak to zrobić-dla początkujących

Syziek, profilaktycznie, a i może mam takie zboczenie życia na legalu :P

Patrząc po wymaganiach to osobiście nie używałbym tutaj HTB. Zamiast tego DummyNet lub ALTQ, a całość uzupełnił pf. Oczywiści DHCP server, może
Squid i jeśli w sieci są AP to CP.

Ponieważ jak widzę sprzęt to nie Soekris lub inny oparty o AMD Geode proponuję coś co dobrze się sprawdzi na defaultowych ustawieniach [urp=http://pfsense.org/l]pfSense[/url] można tez postawić ultra lekkiego (~10MB) m0n0wall.

Offline

 

#6  2007-06-18 17:31:12

  yakubek - Użytkownik

yakubek
Użytkownik
Skąd: Łasin
Zarejestrowany: 2007-05-14
Serwis

Re: Instalacja HTB od podstaw, jak to zrobić-dla początkujących

Witam ponownie.
Dzieki za tak szybki odzew na moje pytanie.
Wracajac do serwera na obecna chwile mam serwer stac na NND Freesco z uslugami: www (apache + php + mysql), ftp, oczywiscie ssh do zarzadzania zdalnie serwerem, dhcp, firewall z blokada p2p i mozliwoscia indywidualnego przydzialu ilosci nawiazywanych polaczen, niceshaper oraz kilka innych uslug do monitorowania serwera np.mrtg

ktos z was moze powiedziec ze skoro mam taki serwer z tym oprogramowaniem i dzialajacy bardzo dobrze to po co szukam sobie problemow? wiec odpowiem tak: nie jestem ekspertem od linuksa, udalo mi sie postawic na prostym systemie (NND) serwerek wiec teraz chcialbym isc dalej i zrobic cos co stawia wyzej poprzeczke. Zgodnie z powiedzeniem "Kto nie idzie do przodu ten sie cofa"
Co do sprzetu, mam w trakcie skladania lepszy, wydajniejszy serwerek z PIII i kontrolerem SCSI.

Wracajac do mojej prosby...
Oczywiscie czytalem juz na temat HTB troche opisow w jezyku polskim (niestety nie znam angielskiego), i zagladalem na strony z paczkami kernela HTB i calej reszty, ale nie wiem dokladnie co pobrac.
- jaka wersja kernela?
- jaki iproute?
- na stronie z HTM jest tylko paczka dla jajka 2.2.x i 2.4.x
Jesli chodzi o jajko to mam 2.6.18, ktore zainstalowalo sie jak przechodzilem na wersje Etch i wyczytalem gdzies na forum, ze mozna pozostawic obecny kernel pod warunkiem zrobienia pewnych zmian,ale jakich nie wiem.

Mysle, ze z waszych rad podpartych dlugim doswiadczeniem z Debianem uda mi sie zainstalowac to wymarzone HTB.

Co do podzialu Neo, kabelki nie wychodza poza budynek, a adres budynku jest jeden dla kilku pomieszczen, ktore wynajmuje krewnym. Tylko w moim mieszkaniu mam 3 komputery + serwer w piwnicy.

Offline

 

#7  2007-06-18 18:55:11

  qluk - Pan inż. Cyc

qluk
Pan inż. Cyc
Skąd: Katowice
Zarejestrowany: 2006-05-22

Re: Instalacja HTB od podstaw, jak to zrobić-dla początkujących

To skoro chcesz miec tam Apacha z MySQL i FTP to moje propozycje raczej odpadają, choć proponuje żebyś zobaczył jak działają - możesz się nauczyć coś więcej o podziale łącza i tworzeniu firewall'a.

Offline

 

#8  2007-06-18 22:49:23

  stepien86 - Członek DUG

stepien86
Członek DUG
Skąd: Łódź
Zarejestrowany: 2006-03-26

Re: Instalacja HTB od podstaw, jak to zrobić-dla początkujących

Jestem w tym momencie po calym dniu roboty ( + zaliczenia w budzie) wiec napisze dosyc krotko bez podawanie konkretnych linkow. Yakubek wiekszosc odpowiedzi temat jakie jadro , iproute jak patchowac jadro itp znajdziesz w dziale kernel na Naszym forum. Bodajze BieXi podala zbior swoich patchy jak mnie pamiec nie myli to w temacie " jadro na serwer" jakos tak. Wiec jak juz wiesz zeby stworzyc kolejkowanie powinienes przekompilowac kernel.
Kiedy zaczniesz z tym dzialac to bedzie latwiej to zrozumiec. Sam jestem poczatkujacy w sprawach sieciowych ale w praktyce szybciej idzie to zrozumiec niz tylko czytac posty :]. A po to jest forum by sobie pomagac.

Pozdrawiam.


manual ponad wszysytko....konsola ponad manual

Debian GNU Linux

Offline

 

#9  2007-06-26 21:43:43

  yakubek - Użytkownik

yakubek
Użytkownik
Skąd: Łasin
Zarejestrowany: 2007-05-14
Serwis

Re: Instalacja HTB od podstaw, jak to zrobić-dla początkujących

Jak na razie to nie udalomi sie podmienic jadra na nowsze, po kilku probach albo serwerek wstawal na starym jajku, albo cos zle dopisywal do konfigu gruba.
Ale z tego co zaobserwowalem i wyczytalem to jajko 2.6.x ma wkompilowana obsluge htb wiec mysle sobie ze chyba nie trzeba ponownie grzebac w kernelu. ??

W tej chwili mam czysta instalke debiana 4.0 doinstalowalem tylko iproute, skonfigurowalem dhcp i skrypcik firewalla z obsluga dhcp wg. opisu BiExi i pppoeconfig. Koncze teraz skrypt htb pytanie tylko czy to wszystko wystartuje?

Offline

 

#10  2007-06-27 20:00:27

  yakubek - Użytkownik

yakubek
Użytkownik
Skąd: Łasin
Zarejestrowany: 2007-05-14
Serwis

Re: Instalacja HTB od podstaw, jak to zrobić-dla początkujących

Moj plik htb

Kod:

#! /bin/sh

# Poniżej zamieszczono kod odpowiedzialny za kontrolę downloadu: 
# Tworzymy główną kolejkę 1:0 na interfejsie eth1
tc qdisc add dev eth1 root handle 1:0 htb

# W kolejce tej tworzymy główną klasę 1:1 o przepustowości 9Mbit:
tc class add dev eth1 parent 1:0 classid 1:1 htb rate 9000kbit ceil 9000kbit

# Tworzymy podklasy i określamy ich przepustowości (minimalną i maksymalną):
#
# Dla pierwszej podklasy, do której trafią wszystkie połączenia z Neostrady do
# sieci lokalnej, będzie to jakieś 1000 kbit minus kilka procent.
tc class add dev eth1 parent 1:1 classid 1:2 htb rate 1000kbit ceil 1000kbit

# Druga podklasa jest przeznaczona dla połączeń między serwerem, a LAN-em.
# Na razie tworzymy kolejki, później przy użyciu filtrów poprzypisujemy,
# które pakiety trafią do której kolejki.
tc class add dev eth1 parent 1:1 classid 1:3 htb rate 8500kbit ceil 8500kbit

# Teraz tworzymy właściwe podklasy (jedna podklasa na jeden komputer) należące
# do podklasy 1:2 (cała Neostrada). Określają one przepustowości między
# Neostradą, a poszczególnymi użytkownikami sieci.
tc class add dev eth1 parent 1:2 classid 1:4 htb rate 120kbit ceil 900kbit  # dla mnie
tc class add dev eth1 parent 1:2 classid 1:5 htb rate 120kbit ceil 240kbit  # dla 2
tc class add dev eth1 parent 1:2 classid 1:6 htb rate 120kbit ceil 240kbit  # dla 3
tc class add dev eth1 parent 1:2 classid 1:7 htb rate 120kbit ceil 240kbit  # dla 4
tc class add dev eth1 parent 1:2 classid 1:8 htb rate 120kbit ceil 240kbit  # dla 5
tc class add dev eth1 parent 1:2 classid 1:9 htb rate 120kbit ceil 240kbit  # dla 6

# Przydzielamy ruch dla poszczególnych kanałów:
#
# Najpierw filtrujemy w/g źródła pakietu -- jeżeli źródłem jest bramka,
# to trafia do klasy 1:3 (która ma 8,5Mbit)
tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip 
   src 192.168.2.0 flowid 1:3
# Resztę filtrujemy w/g adresu odbiorcy:
tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip 
   dst 192.168.2.2 flowid 1:4  # Ja
tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip 
   dst 192.168.2.3 flowid 1:5  # dla 2
tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip 
   dst 192.168.2.4 flowid 1:6  # dla 3
tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip 
   dst 192.168.2.5 flowid 1:7  # dla 4
tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip 
   dst 192.168.2.6 flowid 1:8  # dla 5
tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip 
   dst 192.168.2.7 flowid 1:7  # dla 6

# Drobna uwaga -- w powyższych wierszach wszędzie występuje "preference 1".
# Po godzinie prób i błędów doszedłem do wniosku, że tak musi być, gdyż w
# przeciwnym przypadku shaping nie chciał działać i wszystkie połączenia
# między serwerem a klientami przydzielał nie do 1:3, tylko do pozostałych :(

# Sprawiedliwy algorytm kolejkowania (zamiast fifo):
#
# Domyślnie kolejka będzie działała na zasadzie fifo -- czyli pakiet, który
# ostatni trafi do kolejki, ostatni z niej też wyjdzie. W przypadku porządnego
# zapchania może to uniemożliwić korzystanie z czegokolwiek. SFQ przepuszcza
# pakiety "sprawiedliwie", czyli losowo. Uniemożliwi to zapchanie telnetu Kazą
# i innych interaktywnych usług.
tc qdisc add dev eth1 parent 1:3 handle 3:0 sfq perturb 10
tc qdisc add dev eth1 parent 1:4 handle 4:0 sfq perturb 10
tc qdisc add dev eth1 parent 1:5 handle 5:0 sfq perturb 10
tc qdisc add dev eth1 parent 1:6 handle 6:0 sfq perturb 10
tc qdisc add dev eth1 parent 1:7 handle 7:0 sfq perturb 10
tc qdisc add dev eth1 parent 1:8 handle 8:0 sfq perturb 10
tc qdisc add dev eth1 parent 1:9 handle 9:0 sfq perturb 10
# 3.2. Kształtowanie ruchu wychodzącego
# Wykorzystujemy tu możliwości iptables do znakowania pakietów, a następnie na podstawie fwmark 
# przyporządkowujemy je do poszczególnych kanałów: 
# Na razie to samo... tworzymy główną kolejkę
tc qdisc add dev eth0 root handle 1:0 htb

# Główna klasa: 256kbit minus trochę
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 256kbit ceil 256kbit quantum 16

# 5 klas dla każdego komputera, łącznie z serwerem. Końcówkę quantum musiałem
# dopisać, bo inaczej kernel wypisywał, że "quantum of class ... is too small"
# i zaśmiecał logi.
# Klasy o numerach 2 do 6, są to podklasy głównej klasy 1:1
tc class add dev eth0 parent 1:1 classid 1:2 htb rate 24kbit 
   ceil 24kbit quantum 4  # bramka
tc class add dev eth0 parent 1:1 classid 1:3 htb rate 24kbit 
   ceil 48kbit quantum 4  # Ja
tc class add dev eth0 parent 1:1 classid 1:4 htb rate 24kbit 
   ceil 24kbit quantum 4  # dla 2
tc class add dev eth0 parent 1:1 classid 1:5 htb rate 24kbit 
   ceil 24kbit quantum 4  # dla 3
tc class add dev eth0 parent 1:1 classid 1:6 htb rate 24kbit 
   ceil 24kbit quantum 4  # dla 4
tc class add dev eth0 parent 1:1 classid 1:7 htb rate 24kbit 
   ceil 24kbit quantum 4  # dla 5
tc class add dev eth0 parent 1:1 classid 1:8 htb rate 24kbit 
   ceil 24kbit quantum 4  # dla 6

# Sprawiedliwe kolejkowanie... tak jak wyżej.
tc qdisc add dev eth0 parent 1:2 handle 2:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:3 handle 3:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:4 handle 4:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:5 handle 5:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:6 handle 6:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:6 handle 7:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:6 handle 8:0 sfq perturb 10

# "Czarna magia":
#
# Klasyfikujemy nie wg źródła pochodzenia pakietu, tylko wg fwmarka (to po
# handle, 20 do 24).
tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 20 fw flowid 1:2
tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 21 fw flowid 1:3
tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 22 fw flowid 1:4
tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 23 fw flowid 1:5
tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 24 fw flowid 1:6
tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 24 fw flowid 1:7
tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 24 fw flowid 1:8


# Przypisanie pakietom znaczków, w zależności od pochodzenia. Każdy pakiet
# wychodzący dostaje jakiś mark (-j MARK --set-mark eth1):
iptables -t mangle -N MYSHAPER-OUT
iptables -t mangle -I POSTROUTING -o eth0 -j MYSHAPER-OUT
iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.2 -j MARK 
   --set-mark 21 # od Ja
iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.3 -j MARK 
   --set-mark 22 # od 2
iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.4 -j MARK 
   --set-mark 23 # od 3
iptables -t mangle -A MYSHAPER-OUT -s 192.168.2.5 -j MARK 
   --set-mark 24 # od 4
iptables -t mangle -A MYSHAPER-OUT -s 192.168.2.6 -j MARK 
   --set-mark 24 # od 5
iptables -t mangle -A MYSHAPER-OUT -s 192.168.2.7 -j MARK 
   --set-mark 24 # od 6
# Powyższe pakiety dają się ładnie zaklasyfikować, ponieważ jako źródło
# pochodzenia mają adres IP klienta. Z pakietami wychodzącymi z serwera jest
# pewnien problem, ponieważ adresem źródłowym jest zewnętrzne IP Neostrady+
# (80.*). Tak więc pozostałe pakiety bez znaczka (mark=0) oznaczamy jako 20.
# To w zupełności wystarcza. Dodatkowo działa motywująco na takich, którzy w
# ramach kombinowania zmienią sobie IP, aby ominąć ograniczenie.
iptables -t mangle -A MYSHAPER-OUT -m mark --mark 0 -j MARK --set-mark 20
# 3.3. Skrypt konfiguracyjny
# Cała konfiguracja ogranicza się do utworzenia jednego skryptu shellowego,
# dla wygody przyjmującego parametry stop, start i status: 

#!/bin/sh
# shaper.sh -- prosty i łatwy skrypt do zarządzania pasmem
if [ "$1" == "stop" ]
then
    echo "Zatrzymujemy shapera"
    tc qdisc del root dev eth1 2>/dev/null
    tc qdisc del root dev eth0 2>/dev/null
    iptables -t mangle -D POSTROUTING -o eth0 -j MYSHAPER-OUT 2>/dev/null
    iptables -t mangle -F MYSHAPER-OUT 2>/dev/null
    iptables -t mangle -X MYSHAPER-OUT 2>/dev/null
    exit
fi
if [ "$1" == "start" ]
then
# To co było wcześniej -- do pieca! :)
    echo "Uruchamiamy shapera"
    tc qdisc del root dev eth1 2>/dev/null
    tc qdisc del root dev eth0 2>/dev/null
    iptables -t mangle -D POSTROUTING -o eth0 -j MYSHAPER-OUT 2>/dev/null
    iptables -t mangle -F MYSHAPER-OUT 2>/dev/null
    iptables -t mangle -X MYSHAPER-OUT 2>/dev/null
########## DOWNLOAD
    tc qdisc add dev eth1 root handle 1:0 htb
    tc class add dev eth1 parent 1:0 classid 1:1 htb rate 9000kbit ceil 9000kbit
    tc class add dev eth1 parent 1:1 classid 1:2 htb rate 480kbit ceil 480kbit
    tc class add dev eth1 parent 1:1 classid 1:3 htb rate 8500kbit ceil 8500kbit
    tc class add dev eth1 parent 1:2 classid 1:4 htb rate 120kbit ceil 480kbit
    tc class add dev eth1 parent 1:2 classid 1:5 htb rate 120kbit ceil 480kbit
    tc class add dev eth1 parent 1:2 classid 1:6 htb rate 120kbit ceil 480kbit
    tc class add dev eth1 parent 1:2 classid 1:7 htb rate 120kbit ceil 480kbit
    tc class add dev eth1 parent 1:2 classid 1:8 htb rate 120kbit ceil 480kbit
    tc class add dev eth1 parent 1:2 classid 1:9 htb rate 120kbit ceil 480kbit
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip 
       src 192.168.2.0 flowid 1:3
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip 
       dst 192.168.2.2 flowid 1:4
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip 
       dst 192.168.2.3 flowid 1:5
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip 
       dst 192.168.2.4 flowid 1:6
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip 
       dst 192.168.2.5 flowid 1:7
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip 
       dst 192.168.2.6 flowid 1:8
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip 
       dst 192.168.2.7 flowid 1:8
    tc qdisc add dev eth1 parent 1:3 handle 3:0 sfq perturb 10
    tc qdisc add dev eth1 parent 1:4 handle 4:0 sfq perturb 10
    tc qdisc add dev eth1 parent 1:5 handle 5:0 sfq perturb 10
    tc qdisc add dev eth1 parent 1:6 handle 6:0 sfq perturb 10
    tc qdisc add dev eth1 parent 1:7 handle 7:0 sfq perturb 10
    tc qdisc add dev eth1 parent 1:8 handle 8:0 sfq perturb 10
    tc qdisc add dev eth1 parent 1:9 handle 9:0 sfq perturb 10
########## UPLOAD
    tc qdisc add dev eth0 root handle 1:0 htb
    tc class add dev eth0 parent 1:0 classid 1:1 htb rate 120kbit ceil 120kbit quantum 16
    tc class add dev eth0 parent 1:1 classid 1:2 htb rate 24kbit ceil 24kbit quantum 4
    tc class add dev eth0 parent 1:1 classid 1:3 htb rate 24kbit ceil 24kbit quantum 4
    tc class add dev eth0 parent 1:1 classid 1:4 htb rate 24kbit ceil 24kbit quantum 4
    tc class add dev eth0 parent 1:1 classid 1:5 htb rate 24kbit ceil 24kbit quantum 4
    tc class add dev eth0 parent 1:1 classid 1:6 htb rate 24kbit ceil 24kbit quantum 4
    tc class add dev eth0 parent 1:1 classid 1:7 htb rate 24kbit ceil 24kbit quantum 4
    tc class add dev eth0 parent 1:1 classid 1:8 htb rate 24kbit ceil 24kbit quantum 4
    
    tc qdisc add dev eth0 parent 1:2 handle 2:0 sfq perturb 10
    tc qdisc add dev eth0 parent 1:3 handle 3:0 sfq perturb 10
    tc qdisc add dev eth0 parent 1:4 handle 4:0 sfq perturb 10
    tc qdisc add dev eth0 parent 1:5 handle 5:0 sfq perturb 10
    tc qdisc add dev eth0 parent 1:6 handle 6:0 sfq perturb 10
    tc qdisc add dev eth0 parent 1:7 handle 7:0 sfq perturb 10
    tc qdisc add dev eth0 parent 1:8 handle 8:0 sfq perturb 10
    
    tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 20 fw flowid 1:2
    tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 21 fw flowid 1:3
    tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 22 fw flowid 1:4
    tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 23 fw flowid 1:5
    tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 24 fw flowid 1:6
    tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 24 fw flowid 1:7
    tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 24 fw flowid 1:8
    
    iptables -t mangle -N MYSHAPER-OUT
    
    iptables -t mangle -I POSTROUTING -o eth0 -j MYSHAPER-OUT
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.2 -j MARK --set-mark 21
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.3 -j MARK --set-mark 22
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.4 -j MARK --set-mark 23
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.5 -j MARK --set-mark 24
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.6 -j MARK --set-mark 25
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.7 -j MARK --set-mark 26
###    iptables -t mangle -A MYSHAPER-OUT -s 192.168.1.10 -j MARK --set-mark 24
    iptables -t mangle -A MYSHAPER-OUT -m mark --mark 0 -j MARK --set-mark 20
    exit
fi
if [ "$1" == "status" ]
then
    echo "eth1: "
    tc -s qdisc show dev eth1
    echo "eth0: "
    tc -s qdisc show dev eth0
    exit
fi
echo "$0 start|stop|status"
## KONIEC

plik firewall

Kod:

# wlaczenie w kernelu forwardowania 
echo 1 > /proc/sys/net/ipv4/ip_forward
# czyszczenie starych regul
iptables -F
iptables -X
iptables -t nat -X
iptables -t nat -F
# ustawienie polityki dzialania
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# zezwolenie nna laczenie sie z naszym zewnetrznym ip po ssh

iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT
# Otwart port SSH
iptables -A INPUT -s 0/0 -d 192.168.2.0 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -s 0/0 -d 192.168.2.0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 0/0 -d 192.168.2.0 -p udp --dport 22 -j ACCEPT
iptables -A OUTPUT -s 0/0 -d 192.168.2.0 -p udp --dport 22 -j ACCEPT
# polaczenia nawiazane
#iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
#iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
#iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
# polaczenia nawiazane dla wlaczonego dhcp
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
# udostepniaie internetu w sieci lokalnej
###iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j MASQUERADE
###iptables -A FORWARD -s 192.168.2.0/24 -j ACCEPT
# Dla wlaczonego dhcp
# Komputer IBM
iptables -t nat -A POSTROUTING -s 192.168.2.2 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:0D:60:B1:38:EE -j ACCEPT
# Michal
iptables -t nat -A POSTROUTING -s 192.168.2.3 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:e0:7d:a1:94:d5 -j ACCEPT
# Marek
iptables -t nat -A POSTROUTING -s 192.168.2.4 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:40:05:3c:7c:a0 -j ACCEPT
# Mazur
iptables -t nat -A POSTROUTING -s 192.168.2.5 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:50:fc:65:84:44 -j ACCEPT
# Wojtek
iptables -t nat -A POSTROUTING -s 192.168.2.6 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:4f:4e:60:8b:6b -j ACCEPT
# Ewelina
iptables -t nat -A POSTROUTING -s 192.168.2.7 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:50:8d:68:d6:e1 -j ACCEPT
# Przemek
iptables -t nat -A POSTROUTING -s 192.168.2.8 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:0e:2e:ab:20:c4 -j ACCEPT


Po starcie systemu i odpaleniu z palca htb wywalakomunikat :

Kod:

serwer:~# /etc/init.d/htb start
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
RTNETLINK answers: File exists
We have an error talking to the kernel
RTNETLINK answers: File exists
We have an error talking to the kernel
RTNETLINK answers: File exists
We have an error talking to the kernel
RTNETLINK answers: File exists
We have an error talking to the kernel
RTNETLINK answers: File exists
We have an error talking to the kernel
RTNETLINK answers: File exists
We have an error talking to the kernel
RTNETLINK answers: File exists
We have an error talking to the kernel
iptables: Chain already exists
Uruchamiamy shapera
RTNETLINK answers: File exists
We have an error talking to the kernel
RTNETLINK answers: File exists
We have an error talking to the kernel
iptables: Chain already exists

Co jest zle ??
Czy musze instalowac nowe jadro i konfigurowac ??
Prosze was o pomoc

Offline

 

#11  2007-06-30 13:31:24

  yakubek - Użytkownik

yakubek
Użytkownik
Skąd: Łasin
Zarejestrowany: 2007-05-14
Serwis

Re: Instalacja HTB od podstaw, jak to zrobić-dla początkujących

moze nie mam sie czym chwalic, ale zrobilem HTB w taki sposob:
- zainstalowalem debianka 4.0 z podstawowym systemem w trybie tekstowym zjaderkiem 2.6.18-4
- nastepnie zmienilem wpisy w konfigu apta

Kod:

# 
# deb cdrom:[Debian GNU/Linux testing _Etch_ - Official Beta i386 NETINST Binary-1 20070320-21:02]/ etch contrib main

# deb cdrom:[Debian GNU/Linux testing _Etch_ - Official Beta i386 NETINST Binary-1 20070320-21:02]/ etch contrib main

deb http://ftp.pl.debian.org/debian/ etch main
deb-src http://ftp.pl.debian.org/debian/ etch main

deb http://security.debian.org/ etch/updates main contrib
deb-src http://security.debian.org/ etch/updates main contrib

- potem atp-get update
- apt-get uprade

- instalka ssh, mc, sysvconfig, rrconf, iproute, iptables, iptraf  to tylena poczatek

- zrobilem skrypcie firewall i umiescilem go w /etc/init.d
- zrobilem skrypcik htb w /etc/init.d
Skrypty startuja podczas startu serwera

update-rc.d program defaults 20

HTB chodzi dobrze, dowolnie moge zmieniac transfer dla uzytkownikow.

plik firewall

# wlaczenie w kernelu forwardowania
echo 1 > /proc/sys/net/ipv4/ip_forward
# czyszczenie starych regul
iptables -F
iptables -X
iptables -t nat -X
iptables -t nat -F
# ustawienie polityki dzialania
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# zezwolenie nna laczenie sie z naszym zewnetrznym ip po ssh

iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT
# Otwart port SSH
iptables -A INPUT -s 0/0 -d 192.168.2.0 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -s 0/0 -d 192.168.2.0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 0/0 -d 192.168.2.0 -p udp --dport 22 -j ACCEPT
iptables -A OUTPUT -s 0/0 -d 192.168.2.0 -p udp --dport 22 -j ACCEPT

# Hamownia
# polaczenia nawiazane
#iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
#iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
#iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
# polaczenia nawiazane dla wlaczonego dhcp
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
# udostepniaie internetu w sieci lokalnej
###iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j MASQUERADE
###iptables -A FORWARD -s 192.168.2.0/24 -j ACCEPT
# Dla wlaczonego dhcp
# Komputer IBM
iptables -t nat -A POSTROUTING -s 192.168.2.2 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:0D:60:B1:38:EE -j ACCEPT
# Michal
iptables -t nat -A POSTROUTING -s 192.168.2.3 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:e0:7d:a1:94:d5 -j ACCEPT
# Marek
iptables -t nat -A POSTROUTING -s 192.168.2.4 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:40:05:3c:7c:a0 -j ACCEPT
# Mazur
iptables -t nat -A POSTROUTING -s 192.168.2.5 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:50:fc:65:84:44 -j ACCEPT
# Wojtek
iptables -t nat -A POSTROUTING -s 192.168.2.6 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:4f:4e:60:8b:6b -j ACCEPT
# Ewelina
iptables -t nat -A POSTROUTING -s 192.168.2.7 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:50:8d:68:d6:e1 -j ACCEPT
# Przemek
iptables -t nat -A POSTROUTING -s 192.168.2.8 -j MASQUERADE
iptables -A FORWARD -m mac --mac-source 00:0e:2e:ab:20:c4 -j ACCEPT


plik htb

#!/bin/sh
# shaper.sh — prosty i łatwy skrypt do zarządzania pasmem
if [ "$1" == "stop" ]
then
    echo "Zatrzymujemy shapera"
    tc qdisc del root dev eth1 2>/dev/null
    tc qdisc del root dev eth0 2>/dev/null   
    iptables -t mangle -D POSTROUTING -o eth0 -j MYSHAPER-OUT 2>/dev/null
    iptables -t mangle -F MYSHAPER-OUT 2>/dev/null
    iptables -t mangle -X MYSHAPER-OUT 2>/dev/null
    exit
fi
if [ "$1" == "start" ]
then
# To co było wcześniej — do pieca! :)
    echo "Uruchamiamy shapera"
    tc qdisc del root dev eth1 2>/dev/null     
    iptables -t mangle -D POSTROUTING -o eth0 -j MYSHAPER-OUT 2>/dev/null
    iptables -t mangle -F MYSHAPER-OUT 2>/dev/null
    iptables -t mangle -X MYSHAPER-OUT 2>/dev/null
########## DOWNLOAD
    tc qdisc add dev eth1 root handle 1:0 htb

    tc class add dev eth1 parent 1:0 classid 1:1 htb rate 99000kbit ceil 99000kbit

    tc class add dev eth1 parent 1:1 classid 1:2 htb rate 1000kbit ceil 1000kbit
    tc class add dev eth1 parent 1:1 classid 1:3 htb rate 98000kbit ceil 98000kbit

    tc class add dev eth1 parent 1:2 classid 1:4 htb rate 256kbit ceil 1000kbit #Yakub
    tc class add dev eth1 parent 1:2 classid 1:5 htb rate 256kbit ceil 1000kbit #Laptop
    tc class add dev eth1 parent 1:2 classid 1:6 htb rate 256kbit ceil 1000kbit #Karolinka
    tc class add dev eth1 parent 1:2 classid 1:7 htb rate 256kbit ceil 1000kbit #Skura
    tc class add dev eth1 parent 1:2 classid 1:8 htb rate 256kbit ceil 1000kbit #Skura
    tc class add dev eth1 parent 1:2 classid 1:9 htb rate 256kbit ceil 1000kbit #Skura
    tc class add dev eth1 parent 1:2 classid 1:10 htb rate 256kbit ceil 1000kbit #Skura

    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip
src 192.168.2.0 flowid 1:3
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip
dst 192.168.2.2 flowid 1:4
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip
dst 192.168.2.3 flowid 1:5
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip
dst 192.168.2.4 flowid 1:6
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip
dst 192.168.2.5 flowid 1:7
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip
dst 192.168.2.6 flowid 1:8
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip
dst 192.168.2.7 flowid 1:9
    tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip
dst 192.168.2.8 flowid 1:10

    tc qdisc add dev eth1 parent 1:3 handle 3:0 sfq perturb 10
    tc qdisc add dev eth1 parent 1:4 handle 4:0 sfq perturb 10
    tc qdisc add dev eth1 parent 1:5 handle 5:0 sfq perturb 10
    tc qdisc add dev eth1 parent 1:6 handle 6:0 sfq perturb 10
    tc qdisc add dev eth1 parent 1:7 handle 7:0 sfq perturb 10
    tc qdisc add dev eth1 parent 1:8 handle 8:0 sfq perturb 10
    tc qdisc add dev eth1 parent 1:9 handle 9:0 sfq perturb 10
    tc qdisc add dev eth1 parent 1:10 handle 10:0 sfq perturb 10
########## UPLOAD
    tc qdisc add dev eth0 root handle 1:0 htb

    tc class add dev eth0 parent 1:0 classid 1:1 htb rate 250kbit ceil 250kbit quantum 16

    tc class add dev eth0 parent 1:1 classid 1:2 htb rate 50kbit ceil 250kbit quantum 4 #Serwer
    tc class add dev eth0 parent 1:1 classid 1:3 htb rate 50kbit ceil 250kbit quantum 4 #Ja
    tc class add dev eth0 parent 1:1 classid 1:4 htb rate 50kbit ceil 250kbit quantum 4 #Michal
    tc class add dev eth0 parent 1:1 classid 1:5 htb rate 50kbit ceil 250kbit quantum 4 #Marek
    tc class add dev eth0 parent 1:1 classid 1:6 htb rate 50kbit ceil 250kbit quantum 4 #Mazur
    tc class add dev eth0 parent 1:1 classid 1:7 htb rate 50kbit ceil 250kbit quantum 4 #Wojtek
    tc class add dev eth0 parent 1:1 classid 1:8 htb rate 50kbit ceil 250kbit quantum 4 #Ewelina
    tc class add dev eth0 parent 1:1 classid 1:9 htb rate 50kbit ceil 250kbit quantum 4 #Przemek

    tc qdisc add dev eth0 parent 1:2 handle 2:0 sfq perturb 10
    tc qdisc add dev eth0 parent 1:3 handle 3:0 sfq perturb 10
    tc qdisc add dev eth0 parent 1:4 handle 4:0 sfq perturb 10
    tc qdisc add dev eth0 parent 1:5 handle 5:0 sfq perturb 10
    tc qdisc add dev eth0 parent 1:6 handle 6:0 sfq perturb 10
    tc qdisc add dev eth0 parent 1:7 handle 7:0 sfq perturb 10
    tc qdisc add dev eth0 parent 1:8 handle 8:0 sfq perturb 10
    tc qdisc add dev eth0 parent 1:9 handle 9:0 sfq perturb 10

    tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 20 fw flowid 1:2
    tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 21 fw flowid 1:3
    tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 22 fw flowid 1:4
    tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 23 fw flowid 1:5
    tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 24 fw flowid 1:6
    tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 25 fw flowid 1:7
    tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 26 fw flowid 1:8
    tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 27 fw flowid 1:9

    iptables -t mangle -N MYSHAPER-OUT
    iptables -t mangle -I POSTROUTING -o eth0 -j MYSHAPER-OUT
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.2 -j MARK --set-mark 21
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.3 -j MARK --set-mark 22
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.4 -j MARK --set-mark 23
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.5 -j MARK --set-mark 24
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.6 -j MARK --set-mark 25
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.7 -j MARK --set-mark 26
    iptables -t mangle -A MYSHAPER-OUT -p tcp -s 192.168.2.8 -j MARK --set-mark 27
#   iptables -t mangle -A MYSHAPER-OUT -s 192.168.2.5 -j MARK --set-mark 28
    iptables -t mangle -A MYSHAPER-OUT -m mark --mark 0 -j MARK --set-mark 20
    exit
fi
if [ "$1" == "status" ]
then
    echo "eth1: "
    tc -s qdisc show dev eth1
    exit
fi
echo "$0 start|stop|status"
## KONIEC

teraz tak

eth0 - wyjscie do neta
eth1 - wyjscie dla LAN
net ADSL 1024 (neostrada)

czego do szczescia mi brakuje... zeby ograniczyc ilosc polaczen dla 2 uzytkownikow ktorze mula siec p2p i tu niestety nie bardzo sobie moge poradzic

Jak zmodyfikowac wpisy w pliku firewall zeby zrobic limit ilosci polaczen?
np. takie wpisy generuja blad podczas starty firewalla

iptables -t filter -I FORWARD -p tcp -s 192.168.2.2 -m connlimit - connlimit-above 300 -j REJECT

iptables -t mangle -A FORWARD -p tcp -s 192.168.2.2 -m connlimit --connlimit-above 300 -j DROP

Offline

 

#12  2007-06-30 13:43:01

  qluk - Pan inż. Cyc

qluk
Pan inż. Cyc
Skąd: Katowice
Zarejestrowany: 2006-05-22

Re: Instalacja HTB od podstaw, jak to zrobić-dla początkujących

# Otwart port SSH
iptables -A INPUT -s 0/0 -d 192.168.2.0 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -s 0/0 -d 192.168.2.0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 0/0 -d 192.168.2.0 -p udp --dport 22 -j ACCEPT
iptables -A OUTPUT -s 0/0 -d 192.168.2.0 -p udp --dport 22 -j ACCEPT

Źle, jeszcze nie spotkałem się z działaniem ssh po UDP. A drugi błąd masz w OUTPUT, nie możesz podac --dport 22 bo to oznacza że TY łącząc sie z SSH używasz u siebie portu 22, a jak wiadomo jest wybierany "losowy" wiekszy niż 1024. Koljena sprawa to taka że masz politykę OUTPUT na Accept więc po co "dwa" razy puszczać?

Offline

 

#13  2007-06-30 13:54:20

  yakubek - Użytkownik

yakubek
Użytkownik
Skąd: Łasin
Zarejestrowany: 2007-05-14
Serwis

Re: Instalacja HTB od podstaw, jak to zrobić-dla początkujących

Faktycznie zrobiłem błąd,zaraz poprawię.

Co jedna zrobic z konfigiem firawalla żeby limitować ilość połączeń?

Offline

 

#14  2007-06-30 14:03:48

  qluk - Pan inż. Cyc

qluk
Pan inż. Cyc
Skąd: Katowice
Zarejestrowany: 2006-05-22

Re: Instalacja HTB od podstaw, jak to zrobić-dla początkujących

dstlimit
This module allows you to limit the packet per second (pps) rate on a per destination IP or per destination port base. As opposed to the `limit' match, every destination ip / destination port has it's own limit.

--dstlimit avg
    Maximum average match rate (packets per second unless followed by /sec /minute /hour /day postfixes).
--dstlimit-mode mode
    The limiting hashmode. Is the specified limit per dstip, dstip-dstport tuple, srcip-dstip tuple, or per srcipdstip-dstport tuple.
--dstlimit-name name
    Name for /proc/net/ipt_dstlimit/* file entry
[--dstlimit-burst burst]
    Number of packets to match in a burst. Default: 5
[--dstlimit-htable-size size]
    Number of buckets in the hashtable
[--dstlimit-htable-max max]
    Maximum number of entries in the hashtable
[--dstlimit-htable-gcinterval interval]
    Interval between garbage collection runs of the hashtable (in miliseconds). Default is 1000 (1 second).
[--dstlimit-htable-expire time
    After which time are idle entries expired from hashtable (in miliseconds)? Default is 10000 (10 seconds).

limit
This module matches at a limited rate using a token bucket filter. A rule using this extension will match until this limit is reached (unless the `!' flag is used). It can be used in combination with the LOG target to give limited logging, for example.

--limit rate
    Maximum average matching rate: specified as a number, with an optional `/second', `/minute', `/hour', or `/day' suffix; the default is 3/hour.
--limit-burst number
    Maximum initial number of packets to match: this number gets recharged by one every time the limit specified above is not reached, up to this number; the default is 5.

http://iptables-tutorial.frozentux.net/other/iptables.html
Limitowanie poprzez obniżenie maksymalnego przepływy powinno wystarczyć
Poszukam jeszcze czegoś, ale ja uzywam PF i tam jest troche inaczej :)

edit:
http://pl.docs.pld-linux.org/siec_iptables.html

A no i możesz nie miec moduły connlimit :]

Offline

 

#15  2007-06-30 15:08:07

  yakubek - Użytkownik

yakubek
Użytkownik
Skąd: Łasin
Zarejestrowany: 2007-05-14
Serwis

Re: Instalacja HTB od podstaw, jak to zrobić-dla początkujących

Mysle ze wlasnie nie ma wkompilowanego w jadro modułu connlimit, nie grzebalem nic w jadrze.

Offline

 

#16  2007-07-04 12:47:55

  _bolek_ - Użytkownik

_bolek_
Użytkownik
Zarejestrowany: 2005-11-09

Re: Instalacja HTB od podstaw, jak to zrobić-dla początkujących

a mnie sie wydaje ze htb a niema prawa ci dzialac bo jesli pamiec mnie niemyli to trzeba je wkompilowac w jajko a napewno niejest standardowo wkompilowane.

do do kolejkowania to raczej polecil bym ci HFSC bo lepiej sie sprawuje mozna wiecej nim zrobic ale jest z nim zabawy bo niegdzie niema pozadnego opisu jak go zrobic. a jak juz zrobisz HFSC to niebedziesz musial robic limitowania pakietow bo HFSC ma mozliwosc ustawienia "warznosci pakietw" i czasu odpowiedzi na nie czy jakos tak to sie zwie :D


qluk jesli mnie pamiec nie myli to PF jest tylko pod BSD dostepny tak jak i ALTQ wiec to raczej malo pomocne :D

Offline

 

#17  2007-07-04 14:03:55

  yakubek - Użytkownik

yakubek
Użytkownik
Skąd: Łasin
Zarejestrowany: 2007-05-14
Serwis

Re: Instalacja HTB od podstaw, jak to zrobić-dla początkujących

Skoro nie jest wkompilowane htb w jadro to dlaczego ladnie przycina dowload i upload, dlaczego nie pokazuje bledow podczas uruchamianie skryptu HTB?
Moze wypowie sie ktos bardziej doswiadczony w debianie jak to jest z jest z tym jajkiem, co jest wkompilowane, a czego nie ma.

Offline

 

#18  2007-07-04 15:55:59

  _bolek_ - Użytkownik

_bolek_
Użytkownik
Zarejestrowany: 2005-11-09

Re: Instalacja HTB od podstaw, jak to zrobić-dla początkujących

wlasnie sobie siadlem to testowego komputerka (zawsze na nim mieszam nim na swoim serku cos zaczne robic) i sprawdzilem, HTB jest wrzucone do nowego jajka jako modol, czyli mozan go wylaczyc, jednakze jedynie htb, jesli chcesz cos wiecej to albo dokompiluj sobie modlo badz tak jak ja przekompiluj jajko od nowa z tym co potrzebujesz i czego nie potrzebujesz, dzieki temu przyokazji odchudzisz jajko.

samo htb jednak jak dla mnie niejest dobre bo czasto zdaza sie ze ktos wskakuje z kolejki i zaczyna sie problem dlatego polecam raczej hfsc niz htb.

Offline

 

#19  2007-07-05 19:47:12

  yakubek - Użytkownik

yakubek
Użytkownik
Skąd: Łasin
Zarejestrowany: 2007-05-14
Serwis

Re: Instalacja HTB od podstaw, jak to zrobić-dla początkujących

...jesli chcesz cos wiecej to albo dokompiluj sobie modlo ...

tzn. co moge zrobic bez ponownego kompilowania calego jadra?

A jesli kompilacja calego nowego jajka to w jaki sposob, ja robilem sposobem debiana i jeszcze innym sposobem , ale za kazdym razem konczylo sie instalacja nowego systemu.

Offline

 

#20  2007-07-12 21:56:30

  _bolek_ - Użytkownik

_bolek_
Użytkownik
Zarejestrowany: 2005-11-09

Re: Instalacja HTB od podstaw, jak to zrobić-dla początkujących

kompilacja sposobem debiana jest op problem sie pojawia gdy niedopiszesz przy kompilacji polecenia --initrd, bez tego debian nieruszy

Offline

 

#21  2007-07-19 10:32:44

  jezoo - Dzięcioł

jezoo
Dzięcioł
Skąd: Z lasu
Zarejestrowany: 2005-09-02

Re: Instalacja HTB od podstaw, jak to zrobić-dla początkujących

powiedzcie mi co ja robie nie tak, mam takie bledy:

RTNETLINK answers: No such file or directory
iptables: Chain already exists
iptables: No chain/target/match by that name
iptables: No chain/target/match by that name
iptables: No chain/target/match by that name
iptables: No chain/target/match by that name

a moje htb wyglada tak:

#!/bin/bash

# Z mienne
    tc=/sbin/tc
    ip=/sbin/ip
    ipt=/usr/local/sbin/iptables
#--------------------------------------

#
#       eth0 - internet ---> WAN
#       eth2 - local interface ---> LAN
#

# Kasowanie glownej kolejki
    $tc qdisc del root dev eth0
# Tworzenie glownej kolejki
    $tc qdisc add dev eth0 root handle 1:0 htb
# Tworzenie glownej klasy
    $tc class add dev eth0 parent 1:0 classid 1:1 htb rate 2000kbit ceil 2000kbit

# Tworzenie glownych klas podzialu pasma
    # 2Mbit
        $tc class add dev eth0 parent 1:1 classid 1:2 htb rate 2000kbit ceil 2000kbit
    # 1Mbit
        $tc class add dev eth0 parent 1:1 classid 1:3 htb rate 1000kbit ceil 1000kbit
    # 512 Kbit
        $tc class add dev eth0 parent 1:1 classid 1:4 htb rate 512kbit ceil 512kbit
    # 256 Kbit
        $tc class add dev eth0 parent 1:1 classid 1:5 htb rate 256kbit ceil 256kbit
    # 128 Kbit
        $tc class add dev eth0 parent 1:1 classid 1:6 htb rate 256kbit ceil 256kbit

    # 64 Kbit
        $tc class add dev eth0 parent 1:1 classid 1:7 htb rate 64kbit ceil 64kbit

#---------------------------------------------------------------------------------------------

# Gwarantowne lacze
        # Kafejka
        $tc class add dev eth0 parent 1:6 classid 1:9 htb rate 200kbit ceil 256kbit prio 2
        $tc class add dev eth0 parent 1:6 classid 1:10 htb rate 200kbit ceil 256kbit prio 2
        $tc class add dev eth0 parent 1:6 classid 1:11 htb rate 200kbit ceil 256kbit prio 2
        $tc class add dev eth0 parent 1:6 classid 1:12 htb rate 200kbit ceil 256kbit prio 2
        #$tc class add dev eth0 parent 1:4 classid 1:6 htb rate 200kbit ceil 256kbit prio 2
#------------------------------------------------------------------------------------------------

        # Tworzenie lancuka
        $ipt -t mangle -N htbETH0
        # kasowaniu przy ponownym przeladowaniu
        $ipt -t mangle -D POSTROUTING -o eth0 -j htbETH0
        # zalozenie lancucha na eth0
        $ipt -t mangle -I POSTROUTING -o eth0 -j htbETH0

#
# Regulki dla kafejki
#
    $tc filter add dev eth0 protocol ip parent 1:0 u32 match ip src 192.168.50.10 flowid 1:9
    $tc qdisc add dev eth0 parent 1:9 handle 9:0 sfq perturb 10
    $ipt -t mangle -D htbETH0 -p tcp -s 192.168.50.10 -j MARK --set-mark 60 >>/dev/null
    $ipt -t mangle -A htbETH0 -p tcp -s 192.168.1.10 -j MARK --set-mark 60

    $tc filter add dev eth0 protocol ip parent 1:0 u32 match ip src 192.168.50.31 flowid 1:10
    $tc qdisc add dev eth0 parent 1:10 handle 10:0 sfq perturb 10
    $ipt -t mangle -D htbETH0 -p tcp -s 192.168.50.31 -j MARK --set-mark 60 >>/dev/null
    $ipt -t mangle -A htbETH0 -p tcp -s 192.168.1.31 -j MARK --set-mark 60


    $tc filter add dev eth0 protocol ip parent 1:0 u32 match ip src 192.168.50.32 flowid 1:11
    $tc qdisc add dev eth0 parent 1:11 handle 11:0 sfq perturb 10
    $ipt -t mangle -D htbETH0 -p tcp -s 192.168.50.32 -j MARK --set-mark 60 >>/dev/null
    $ipt -t mangle -A htbETH0 -p tcp -s 192.168.1.32 -j MARK --set-mark 60



    $tc filter add dev eth0 protocol ip parent 1:0 u32 match ip src 192.168.50.33 flowid 1:12
    $tc qdisc add dev eth0 parent 1:12 handle 12:0 sfq perturb 10
    $ipt -t mangle -D htbETH0 -p tcp -s 192.168.50.33 -j MARK --set-mark 60 >>/dev/null
    $ipt -t mangle -A htbETH0 -p tcp -s 192.168.1.33 -j MARK --set-mark 60

# Markowanie pakietow NoName
        $ipt -t mangle -A htbETH0 -m mark --mark 0 -j MARK --set-mark 2000

# Spr wpisow
    $ipt -vxL FORWARD -n | awk '{print $9, $2}'

# <EOF>

a jak dam tc qdisc show to mam:

qdisc htb 1: dev eth0 r2q 10 default 0 direct_packets_stat 4183
qdisc sfq 9: dev eth0 parent 1:9 quantum 1514b perturb 10sec
qdisc sfq 10: dev eth0 parent 1:10 quantum 1514b perturb 10sec
qdisc sfq 11: dev eth0 parent 1:11 quantum 1514b perturb 10sec
qdisc sfq 12: dev eth0 parent 1:12 quantum 1514b perturb 10sec
qdisc pfifo_fast 0: dev eth2 [Unknown qdisc, optlen=20]

natomiast jak wpisze tc class show to nawet jednej klasy nie uswiadczy, czemu tak jest??


LRU #480459

Offline

 

#22  2007-08-26 18:34:22

  markus66201 - Nowy użytkownik

markus66201
Nowy użytkownik
Zarejestrowany: 2007-08-23

Re: Instalacja HTB od podstaw, jak to zrobić-dla początkujących

Jestem własnie w trakcie konfiguracji serwera opartego na Ubuntu serwer 7.04. Podzial łącza zrobilem na Niceshaper ale jako ze od jakiegos czasu administruje siecią wifi na swoim osiedlu a mam router LINKSYSA WRT54GL z Tomato do ktorego uzywam fajnego programiku http://openlinksys.info/d...download_id=115 Scriptgenerator-a do owego linkasysa ktorego sofcik jest oparty na linkusie. I tak sie zastanawiam czy taki skrypt :
Kod:

code:modprobe ipt_layer7
TCA="tc class add dev br0"
TFA="tc filter add dev br0"
TQA="tc qdisc add dev br0"
SFQ="sfq perturb 10"
tc qdisc del dev br0 root
tc qdisc add dev br0 root handle 1: htb
tc class add dev br0 parent 1: classid 1:1 htb rate 3096kbit
$TCA parent 1:1 classid 1:10 htb rate 512kbit ceil 2800kbit prio 0
$TCA parent 1:1 classid 1:11 htb rate 512kbit ceil 2167kbit prio 1
$TCA parent 1:1 classid 1:12 htb rate 512kbit ceil 2167kbit prio 1
$TCA parent 1:1 classid 1:13 htb rate 5kbit ceil 700kbit prio 4
$TCA parent 1:1 classid 1:14 htb rate 5kbit ceil 700kbit prio 4
$TCA parent 1:1 classid 1:15 htb rate 5kbit ceil 700kbit prio 4
$TCA parent 1:1 classid 1:16 htb rate 5kbit ceil 700kbit prio 4
$TCA parent 1:1 classid 1:17 htb rate 5kbit ceil 700kbit prio 4
$TCA parent 1:1 classid 1:18 htb rate 50kbit ceil 512kbit prio 0
$TCA parent 1:1 classid 1:19 htb rate 1200kbit ceil 2900kbit prio 1
$TCA parent 1:1 classid 1:20 htb rate 110kbit ceil 800kbit prio 2
$TCA parent 1:1 classid 1:21 htb rate 100kbit ceil 512kbit prio 2
$TCA parent 1:1 classid 1:22 htb rate 75kbit ceil 128kbit prio 0
$TQA parent 1:10 handle 10: $SFQ
$TQA parent 1:11 handle 11: $SFQ
$TQA parent 1:12 handle 12: $SFQ
$TQA parent 1:13 handle 13: $SFQ
$TQA parent 1:14 handle 14: $SFQ
$TQA parent 1:15 handle 15: $SFQ
$TQA parent 1:16 handle 16: $SFQ
$TQA parent 1:17 handle 17: $SFQ
$TQA parent 1:18 handle 18: $SFQ
$TQA parent 1:19 handle 19: $SFQ
$TQA parent 1:20 handle 20: $SFQ
$TQA parent 1:21 handle 21: $SFQ
$TQA parent 1:22 handle 22: $SFQ
$TFA parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:10
$TFA parent 1:0 prio 1 protocol ip handle 11 fw flowid 1:11
$TFA parent 1:0 prio 1 protocol ip handle 12 fw flowid 1:12
$TFA parent 1:0 prio 4 protocol ip handle 13 fw flowid 1:13
$TFA parent 1:0 prio 4 protocol ip handle 14 fw flowid 1:14
$TFA parent 1:0 prio 4 protocol ip handle 15 fw flowid 1:15
$TFA parent 1:0 prio 4 protocol ip handle 16 fw flowid 1:16
$TFA parent 1:0 prio 4 protocol ip handle 17 fw flowid 1:17
$TFA parent 1:0 prio 0 protocol ip handle 18 fw flowid 1:18
$TFA parent 1:0 prio 1 protocol ip handle 19 fw flowid 1:19
$TFA parent 1:0 prio 2 protocol ip handle 20 fw flowid 1:20
$TFA parent 1:0 prio 2 protocol ip handle 21 fw flowid 1:21
$TFA parent 1:0 prio 0 protocol ip handle 22 fw flowid 1:22
iptables -t mangle -A POSTROUTING -m layer7 --l7proto sip -j MARK --set-mark 10
iptables -t mangle -A POSTROUTING -m layer7 --l7proto skypetoskype -j MARK --set-mark 11
iptables -t mangle -A POSTROUTING -m layer7 --l7proto skypeout -j MARK --set-mark 12
iptables -t mangle -A POSTROUTING -m layer7 --l7proto edonkey -j MARK --set-mark 13
iptables -t mangle -A POSTROUTING -m layer7 --l7proto fasttrack -j MARK --set-mark 14
iptables -t mangle -A POSTROUTING -m layer7 --l7proto soulseek -j MARK --set-mark 15
iptables -t mangle -A POSTROUTING -m layer7 --l7proto bittorrent -j MARK --set-mark 16
iptables -t mangle -A POSTROUTING -m layer7 --l7proto directconnect -j MARK --set-mark 17
iptables -t mangle -A POSTROUTING -p tcp --sport 53 -j MARK --set-mark 18
iptables -t mangle -A POSTROUTING -p tcp --sport 80 -j MARK --set-mark 19
iptables -t mangle -A POSTROUTING -p tcp --sport 110 -j MARK --set-mark 20
iptables -t mangle -A POSTROUTING -p tcp --sport 25 -j MARK --set-mark 21
iptables -t mangle -A POSTROUTING -p tcp --sport 5128 -j MARK --set-mark 22
iptables -I FORWARD -p tcp -m layer7 --l7proto edonkey -m connlimit --connlimit-above 100 -j DROP
iptables -I FORWARD -p tcp -m layer7 --l7proto fasttrack -m connlimit --connlimit-above 50 -j DROP
iptables -I FORWARD -p tcp -m layer7 --l7proto soulseek -m connlimit --connlimit-above 50 -j DROP
iptables -I FORWARD -p tcp -m layer7 --l7proto bittorrent -m connlimit --connlimit-above 100 -j DROP
iptables -I FORWARD -p tcp -m layer7 --l7proto directconnect -m connlimit --connlimit-above 50 -j DROP


z podzialem na uslugi bedzie dzialal pod ubuntu i jak ewentualnie go wdrozyc poza zmiana nazw interfejsow?? I to własnie pytanie kieruje do mądrzejszych od siebie moze ktos pomoze??

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)