HMUG Mac OS X Darwin obsadí strany
Aktuální adresář
muž8
Jméno
<ipfw> IP firewall a provoz <shaper> řídí program
Osnova
<ipfw> Q] [P <preproc> D makro[=hodnota]] [U makro]] <pathname>
<ipfw> F Qproud
<ipfw> Q] {nula <resetlog> vymazat} [číslo ...
<ipfw> S pole]] [AftN] {seznam přehlídka} [číslo ...
<ipfw> Qsčítat číslorule-body
<ipfw> roura číslo <config> pipe-config-options
<ipfw> roura vymazat seznam přehlídka} [číslo ...
<ipfw> fronta číslo <config> queue-config-options
<ipfw> fronta vymazat seznam přehlídka} [číslo ...
Popis
<ipfw> je uživatelské rozhraní pro kontrolníipfirewall(4 a
dummynet(4 provoz <shaper> v FreeBSD.
Každý přícházející nebo vycházející balík je prošel<ipfw> pravidla. Jestliže
hostitel funguje jako brána, balíky předané bránou jsou profesionální
<cessed> u<ipfw> dvakrát. V případu hostitel chová se jako most, balíky pro
<warded> mostem být zpracovaný u<ipfw> jednou.
Firewall konfigurace je vyrobená z seznamu z dosáhl pravidel, který je
hledán každý balík až do zápasu je založen a významná akce je vykonaná.
V závislosti na akci a jistých systémových nastaveních,
balíky mohou být <reinjected> do firewallu u pravidla po tom odpovídajícím
pro další zpracování. Všechna pravidla platí o všech rozhraních,
tak to je zodpovědnost systému správce zapsat <ruleset> taková cesta
pokud jde o minimalizovat množství kontrol.
Konfigurace vždy zahrnujeStandardní pravidlo dosáhlo 65535 který
nemůže být upravený programátorem a vždy odpovídá balíkům. Akce
spojená s standardním pravidlem může být jedenpopírat nebodovolit
závisí na jak jádro je konfigurováno.
Jestliže <ruleset> zahrnuje jedny nebo více pravidla skeep-state volba, pak
<ipfw> převezme<stateful> chování, i.e. na zápasu vytvoří
dynamická pravidla odpovídá přesným parametrům adresy a přístavy odpovídajícího
balíku.
Tato dynamická pravidla, který mít omezený celý život, být kostkovaný u
prvního výskytu zcheck-state nebokeep-state vládnout a být typicky
použitý otevřít firewall on-demand k legitimnímu provozu jedinému. Vidět
Pravidlo Formát aPříklady sekce dole pro více informace o
<stateful> chování z<ipfw>.
Všechna pravidla zahrnující dynamický <ones> mít několik sdružené pulty: zabalený
počet, bajt počet, žurnálový počet a <timestamp>, který ukazuje
čas posledního zápasu. Pulty mohou být zobrazované nebo seřízené s<ipfw>
příkazy.
Pravidla mohou být přidaná ssčítat příkaz; vymazaný individuálně s
vymazat příkaz, a globálně sproud příkaz; zobrazovaný, volba
spojit se s obsahem pultů, používajícípřehlídka aseznam příkazy.
Nakonec, pulty mohou být seřízené snula a<resetlog> příkazy.
Následující volby jsou dostupné:
Zatímco jmenuje, ukázat pultu hodnoty. Vidět taképřehlídka příkaz.
F Nepožádají o potvrzení pro příkazy, které mohou působit problémy
jestliže zneužitý, i.e. proud. Poznámka, jestliže tam je žádný <tty>
sdružil se s proces, toto je naznačující.
Q Chvílesčítat<ing>,nula<ing>,<resetlog><ging> neboproud<ing>, být
klidný okolo akce naznačíF. Toto je užitečné pro nastavující pravidla <exe>
<cuting> rozmanitý<ipfw> příkazy v zápisu e.g.,
Sh /etc/rc.firewall, nebo tím, že zpracuje soubor z mnoho<ipfw>
pravidla, přes vzdálené přihlašovací zasedání. Jestližeproud je vykonaný v
normální mnohomluvný režim s standardní jadrovou konfigurací, to
tiskne zprávu. Protože všechna pravidla jsou naplněná, zpráva
nemůže být doručený k přihlašovacímu zasedání. Toto způsobí vzdálený
přihlašovací zasedání být uzavřený a zbytek <ruleset> je
ne zpracovaný. Přístup k utěšit je požadovaný obnovit.
T Zatímco jmenuje, dávat poslední zápas <timestamp>.
N Pokusit se vyřešit adresy a servisní jména v výstupu.
S pole
Zatímco jmenuje roury, druh podle jednoho z čtyř pultů
Úhrn a proud balíky nebo bajty.
Uklidnit konfiguraci, pravidla mohou být daná do souboru, který je
zpracovaný používající<ipfw> jak ukázaný v první osnovové lince. Absolutní<pathname>
musí být použitý. Soubor bude čtená linka linkou a aplikovaným jak
<argu> <ments> k<ipfw> pomůcka.
Volitelně, <preprocessor> může být specifikovaný používajícíP <preproc> kde
<pathname> má být zavedený přes. Užitečné <preprocessors> zahrnujícpp(1 a
m4(1. If<preproc> nezačíná lomítkem jako jeho nejprve <charac>
<ter>, obvyklá cesta jmenné hledání je vykonané. Péče by měla být zaujatá
tímto v prostředích kde ne všechny <filesystems> jsou zahájené přesto časem
<ipfw> je provozovaný e.g. když oni jsou zahájení přes NFS. JednouP
byl specifikovaný, nepovinnýD aU specifikace mohou následovat a bude
předáván k <preprocessor>. Toto počítá s ohebnou konfigurací
soubory rády <conditionalizing> je na místním <hostname> a použití
maker centralizovat častě požadované argumenty jako IP adresy.
The<ipfw> roura rozkazy jsou konfiguroval provoz <shaper> jak ukázaný
vProvoz SHAPER Konfigurace sekce dole.
Pravidlový formát
The<ipfw> pravidlový formát je následování:
<prob> zápaspravděpodobnostakce žurnál <logamount> číslo]] <proto> od <src>
k <dst> interface-spec] [volby
Každý balík může být filtrován založený na následování informace, která
je spojována s tím:
Přenášet a přijímat rozhraní jménem nebo adresou
Směr přícházející nebo vycházející
Zdroj a cíl IP adresa možná maskovala
Protocol TCP, UDP, ICMP, <etc>.
Zdroj a cílové přístavní seznamy, rozsahy nebo masky
TCP vlajky
IP rozdělí vlajku
IP volby
ICMP typy
Uživatel / skupinový občanský průkaz zásuvky sdružil se
s balíkem
Poznamenat, že to může být nebezpečné k filtru na zdroji IP osloví
nebo získá TCP / TCP přístav protože jeden nebo oba mohli snadno být <spoofed>.
<prob> zápaspravděpodobnost
Zápas je jen deklarován s specifikovanou pravděpodobností plovoucí
bodové číslo mezitím 0 a 1. Toto může být užitečné pro číslo
aplikací takových jako náhodný zabalený pokles nebo ve spojitosti
sdummynet(4Simulovat účinek rozmanitého cestového vedení
<ing> k out-of-order zabalenému doručení.
akce:
dovolit Dovolit balíky, které odpovídají pravidlu. Hledání skončí.
Aliases jepovolení,povolení apřijmout to.
popírat Odhodit balíky, které odpovídají tomuto pravidlu. Hledání <termi>
<nates>. pokles je <alias> propopírat.
odmítnout Kritizovaný. Odhodit balíky, které odpovídají tomuto
pravidlu, a pokusit se poslat ICMP hostitele nedostupná zpráva. Hledání
skončí.
<unreach> kód
Odhodit balíky, které odpovídají tomuto pravidlu a
pokusit se poslat ICMP nedostupná zpráva s kódemkód, kdekód je
číslo od 0 k 255, nebo jeden z těchto <aliases>: síť,hostitel,
protokol,přístav,<needfrag>,<srcfail>,net-unknown,
host-unknown,izolovaný,net-prohib,host-prohib,<tosnet>,
<toshost>,filter-prohib,host-precedence nebo
precedence-cutoff. Hledání skončí.
seřízený TCP balíky jediné. Odhodit balíky, které odpovídají
tomuto pravidlu, a pokusit se poslat TCP seřídil RST poznamená. Hledání
skončí.
počet Aktualizovat pulty pro všechny balíky, které odpovídají pravidlu. The
hledání pokračuje s příštím pravidlem.
check-state
Kontroluje balík proti dynamickému <ruleset>. Jestliže
zápas je založen pak hledání skončí, jinak my
stěhovat se do příštího pravidla. Jestliže necheck-state pravidlo je
založeno, dynamický <ruleset> je kostkovaný u nejprvekeep-state
pravidlo.
odklonit přístav
Odklonit balíky, které odpovídají tomuto pravidlu kdivert(4
zásuvka svázaná k přístavupřístav. Hledání skončí.
podložka přístav
Poslat kopii balíků, které odpovídají tomuto
pravidlu k divert(4 zásuvka svázaná k přístavupřístav. Hledání <termi>
<nates> a originální balík je přijímaný ale vidět <sec>
<tion>Chyby dole.
<fwd> <ipaddr>[,přístav
Měnit next-hop na odpovídajících balíkách k<ipaddr>, který
může být IP adresa v tečkovaném čtyřúhelníku nebo hostitelském jméně. If
<ipaddr> není directly-reachable adresa, cesta jak
najitý v místní oponuje stolu pro to IP je použitý
místo toho. If<ipaddr> je místní adresa, pak na balíku
vstupuje do systému od vzdáleného hostitele to
bude odkloněný kpřístav na místním stroji, udržující se místní
adresa zásuvky dané k originálu IP adresa
balík byl předurčený pro. Toto je určeno pro použití s
průhledné zástupné servery. Jestliže IP není místní
adresa pak přístavní číslo jestliže specifikovaný je ignorován
a pravidlo jen platí o balíkách, které opouštějí systém.
Toto bude také mapovat adresy k místním přístavům když balíky
být vytvořený místně. Hledání skončí jestliže tento
pravidlové zápasy. Jestliže přístavní číslo není dané pak
přístavní číslo v balíku je použité, aby balík pro
vnější stroj levý Y by byl předaný k místní
přístav Y. The jádro musí byli zkompilovaní s
IPFIREWALL_FORWARD volba.
roura rouranr
Projít kolem balíku kdummynet(4 ``pipe pro šířku pásma <lim>
<itation>, zpoždění, <etc>.. VidětProvoz SHAPER
Konfigurace sekce pro další informaci. The
hledání skončí; nicméně, na odchodu z roury a jestliže
sysctl(8 proměnnánet.inet.ip.fw.onepovolení není
soubor, balík je prošel znovu k firewallu kód
začínání od příštího pravidla.
fronta frontanr
Projít kolem balíku kdummynet(4 ``queue pro šířku pásma
limitace, která používá WF2Q.
<skipto> číslo
Skok všechna následující pravidla dosáhla méně nežčíslo. The
hledání pokračuje s prvním pravidlem dosáhlčíslo nebo
<higher>.
žurnál <logamount> číslo
Jestliže jádro bylo zkompilované s IPFIREWALL_VERBOSE, pak když
balík odpovídá pravidlu sžurnál klíčové slovo zpráva bude
nahraný ksyslogd(8 s LOG_SECURITY zařízením. Poznámka: u
standardní, oni jsou připojení k/var/log/security soubor vidět
syslog.conf(5. Jestliže jádro bylo zkompilované s
IPFIREWALL_VERBOSE_LIMIT volba, pak opomenutím nahrávající vůle
přestat po množství balíků specifikovaných volbou být
přijatý pro ten zvláštní řetězový vstup, a
net.inet.ip.fw.verboselimit bude soubor k tomu číslu. Jak
někdy, jestliže<logamount> číslo je použitý, točíslo bude žurnál
<ging> limit spíše nežnet.inet.ip.fw.verboselimit, kde
hodnota ``0 odstraní nahrávající mez. Logging může pak být re
umožněný tím, že vyčistí nahrávání pultu nebo zabaleného pultu pro
ten vstup.
Utěšit nahrávající a žurnálový limit být nastavitelný dynamicky
přessysctl(8 rozhraní v MIB základu z
net.inet.ip.fw.
<proto> An IP protokol specifikovaný číslem nebo jménem pro úplný seznam
vidět/etc/protocols. Theip nebovšichni klíčová slova znamenají
nějaký protokol bude odpovídat si.
<src> a<dst>:
některý mě | [ne<adresamaska> přístavy
Specifikujícíněkterý nutí pravidlo odpovídat nějakému IP číslu.
Specifikujícímě dělá pravidlo odpovídat nějakému IP číslu
konfigurovanému na rozhraní v systému. Toto je <computationally> semi-expen-
<sive> kontrola, která by měla být použitá pozorně.
The<adresamaska> může být specifikován jak:
<ipno> An IP množství formy 1.2.3.4. Jen tento vynutit
si IP číslo bude odpovídat pravidlu.
<ipno>kousky An IP číslo s maskovou šířkou formy 1.2.3.4/24.
V tomto případu všechna IP čísla od 1.2.3.0 k 1.2.3.255
bude odpovídat si.
<ipno>:maska An IP číslo s maskou formy
1.2.3.4:255.255.240.0. V tomto případu všechna IP čísla
od 1.2.0.0 k 1.2.15.255 bude odpovídat si.
Smysl pro zápas může být převrácený předcházením adresy
sne modifikátor, přiměje všechny jiné adresy, aby byl vyrovnaný
místo toho. Toto neovlivní výběr přístavních čísel.
S TCP a UDP protokoly, nepovinnýpřístavy může být specifikován
jak:
přístavpřístavpřístavpřístav:maska}[,přístav[,...
Zápis specifikuje rozsah přístavů zahrnujících svázaný
<aries>.
The:Zápis specifikuje přístav a masku, zápas je deklarován
jestliže přístavní číslo v balíku odpovídá tomu v pravidle,
omezený k kouskům, které jsou nastával maska.
Servisní jména od/etc/servicesMůže být použitý místo numerický
přístavní hodnoty. Rozsah může jen být specifikovaný jako první
hodnota, a délka přístavního seznamu je omezená na IP_FW_MAX_PORTS
přístavy jak definovaný v/usr/src/sys/netinet/ipfw.h. Opačné lomítko
Může být zvyklý na útěk úprk charakter v službě
jméno:
<ipfw> přidají počet <tcp> od nějakého
ftp\\-data-ftp
k některému Rozdělené balíky, které mají non-zero vyrovnaný i.e. ne
první fragment bude nikdy odpovídat pravidlu, které má jeden nebo více
přístavní specifikace. Vidět<frag> volba pro detaily na odpovídá si
rozdělené balíky.
interface-spec
Některé kombinace následujícího <specifiers> jsou povolené:
v Jen odpovídat přícházejícím balíkům.
ven Jen odpovídat vycházejícím balíkům.
přes ifX Balík musí procházejí rozhranímifX.
přes jestliže Balík musí procházejí rozhranímifX, kdeX je
nějaké jednotkové číslo.
přes některý Balík musí procházejíněkteří rozhraní.
přes <ipno> Balík musí procházejí rozhraním, které má IP
adresa<ipno>.
Thepřes klíčové slovo přiměje rozhraní, aby vždy byl kostkovaný. If
<recv> nebo<xmit> je použitý místopřes, pak jen přjímat nebo
přenášet rozhraní příslušně je kostkovaný. Tím, že specifikuje
oba, to je možné odpovídat si balíky založené na obou přjímají a
přenášet rozhraní, e.g.:
<ipfw> sčítají 100 popírat ip od některého k nějakému
ven
<recv> ed0 <xmit> ed1 The<recv> rozhraní může být testované na buď přícházející a nebo vycházející
balíky, chvíle<xmit> rozhraní může jen být testované na vycházející
balíky. Takven je požadovaný av je invalida kdykoli<xmit> je
použitý. Specifikujícípřes spolu s<xmit> nebo<recv> je invalida.
Balík nemůže mít přjímat nebo přenášet rozhraní: balíky
vzniká z místního hostitele mít žádný přijmout rozhraní, chvíle
balíky předurčené pro místního hostitele mají žádný přenášet rozhraní.
volby:
keep-state metoda
Na zápasu, firewall vytvoří dynamické pravidlo,
jehož standardní chování je k odpovídajícímu <bidirectional>
provoz mezi zdrojem a cílem IP / přístav používající
stejný protokol. Pravidlo má omezený celý život ošidit
<trolled> souborem zsysctl(8 proměnné a život
čas je obnovený vždy když odpovídající balík je založen.
Aktuální chování může být upravené specifikováním <dif>
<ferent>metoda, ačkoli právě teď jen standardní
jeden je specifikován.
přemoštěný
Zápasy jediné přemostily balíky. Toto může být užitečné pro
<multicast> nebo vysílací provoz, který chtěl jinak
projít firewallem dvakrát: jednou v průběhu toho,
jak přemostí, a sekundu čas když balík je dodán k
místní hromada.
Mimo malého výkonového trestu, toto by bylo
problém když používároury protože stejný balík by byl
odpovídal za dvakrát v podmínkách šířky pásma, fronta <occupa>
<tion>, a také zvrátí.
<frag> Zápas jestliže balík je fragment a toto není
první fragment <datagram>. <frag> nemůže být použitý v
souvislost s jeden<tcpflags> nebo TCP / TCP přístav <specifi>
<cations>.
<ipoptions> specifikace
Zápas jestliže IP záhlaví obsahuje čárku oddělený seznam
voleb specifikovaných vspecifikace. The podporoval IP volby
být:
<ssrr> Přísná zdrojová cesta,<lsrr> Volná zdrojová cesta,rr
Rekordní zabalená cesta ats <timestamp>. Nepřítomnost z
zvláštní volba může být označená s!.
<tcpoptions> specifikace
Zápas jestliže TCP záhlaví obsahuje čárku oddělený seznam
voleb specifikovaných vspecifikace. The podporoval TCP volby
být:
<mss> Maximální úseková velikost,okno <tcp> okno inzerovat
<ment>,pytel Výběrový <ack>,ts Rfc1323
<timestamp> a cc Rfc1644 t / <tcp> spojení počet. Nepřítomnost z
zvláštní volba může být označená s!.
ustavený
TCP balíky jediné. Zápasové balíky, které mají RST nebo ACK
kousky dané.
nastavení TCP balíky jediné. Zápasové balíky, které mají SYN kousek
soubor ale žádný ACK kousek.
<tcpflags> specifikace
TCP balíky jediné. Zápas jestliže TCP záhlaví obsahuje
čárka oddělila seznam vlajek specifikovaných vspecifikace. The
podporoval TCP vlajky být:
ploutev,<syn>,<rst>,<psh>,<ack> a<urg>. Nepřítomnost počtu úderů
<ticular> vlajka může být označená s!. A ovládá kterého
obsahuje<tcpflags> specifikace může nikdy odpovídat <frag>
<mented> balík, který má non-zero vyrovnaný. Vidět<frag>
volba pro detaily na odpovídajících rozdělených balíkách.
<icmptypes> typy
ICMP balíky jediné. Zápas jestliže ICMP typ je v seznamu
typy. Seznam může být specifikovaný jako nějaká
kombinace z rozsahy nebo individuální typy oddělené čárkami. <sup>
<ported> ICMP typy jsou:
odrážet odpověď0, cíl nedostupný3, zdroj
uhasit4, přesměrovat5, odrážet žádost8, směrovač <adver>
<tisement>9, žádost směrovače10, time-to-live
překonaný11, IP záhlaví špatné12, <timestamp> žádost
13, <timestamp> odpověď14, informační žádost15,
informační odpověď16, oslovit maskovou žádost17A
adresová masková odpověď18.
<uid> uživatel
Odpovídat všem TCP nebo UDP balíky poslané u nebo
přijatý pro uživatel. Auživatel může být vyrovnaný jménem nebo identifikací
číslo.
<gid> skupina
Odpovídat všem TCP nebo UDP balíky poslané u nebo
přijatý pro skupina. Askupina může být vyrovnaný jménem nebo identifikací
číslo.
TRAFFIC SHAPER konfigurace
The<ipfw> pomůcka je také uživatelské rozhraní prodummynet(4 provoz <shaper>.
<shaper> operuje dělícími se balíky dotoky podle
user-specified masky na různých polích IP záhlaví. Balíky,
které patří k stejnému toku jsou pak přešel na dva různé objekty, pojmenovaný
roura nebofronta.
Aroura napodobuje spojení s danou šířkou pásma, propagační zpoždění,
frontová velikost a zabalená ztrátová rychlost. Zabalený tranzit přes rouru podle jeho parametrů.
Afronta je abstrakce realizovala WF2Q politiku. Frontoví
kolegové k každému toku váha a odkazová roura. Pak, všechny
toky spojené k stejné rouře jsou naplánované u rychlosti fixované rourou
podle WF2Q politiky.
The<ipfw> rourový konfigurační formát je následování:
roura číslo <config> bw šířka pásma zařízení] [zpoždění ms-delay] [fronta štěrbiny
velikost}] [<plr> loss-probability] [maska mask-specifier] [kbelíky
hash-table-size] [<red> <gred> wq<min>thmaximálníthmaximálníp
The<ipfw> frontový konfigurační formát je následování:
fronta číslo <config> roura rouranr] [váha váha] [fronta štěrbiny velikost
<plr> loss-probability] [maska mask-specifier] [kbelíky hash-table-size
<red> <gred> wq<min>thmaximálníthmaximálníp
Následující parametry mohou být konfigurované pro rouru:
bw šířka pásma zařízení
Šířka pásma, změřený vKM]{kousek / sBajt / s.
Hodnota z 0 standardní prostředky neomezená šířka pásma. Jednotka musí
následovat okamžitě číslo, jak v
<ipfw> roura 1 <config> bw 300Kbit
/
s fronta 50KBytes Jestliže přístrojové jméno je specifikované místo numerické
hodnoty, pak přenášet hodiny je dodaný specifikovaným zařízením. U
moment jedinýtun(4 zařízení podporuje tuto funkčnost, pro
použití ve spojitosti sppp(8.
zpoždění ms-delay
Propagační zpoždění, změřený v <milliseconds>. Hodnota je
kulatý k příštímu násobku hodin znaménko typicky 10ms,
ale to je dobrá zkušenost k provozovaným jádrům s ``options HZ=1000
redukovat <granularity> k 1ms nebo méně. Standardní hodnota
je 0, znamenání žádného zpoždění.
fronta štěrbiny velikostKbytes
Frontová velikost, vštěrbiny neboKBytes. Standardní hodnota je 50 štěrbin, který
je typická frontová velikost pro Ethernet zařízení. Poznamenat, že pro
pomalá rychlost spojí vás by měl držet frontovou velikost
krátkou nebo váš provoz by mohl být zasažený významným <queueing> zpožděním. E.g.,
50 max-sized <ethernet> balíky 1500 bajtů znamená 600Kbit
nebo 20s z fronta na 30Kbit / s roura. Dokonce horší účinek může vyplývat
jestliže vy dostat balíky z rozhraní s hodně větší MTU, e.g.
<loopback> rozhraní s jeho 16KB balíky.
<plr> packet-loss-rate
Zabalená ztrátová rychlost. Argumentpacket-loss-rate je floating-point
číslo mezitím 0 a 1, s 0 významem žádná ztráta, 1 význam 100
ztráta. Ztrátová rychlost je vnitřně reprezentována na 31 kouskách.
maska mask-specifier
Thedummynet(4 nechá vás vytvořit per-flow fronty. Tok <iden>
<tifier> je postavený maskováním IP adres, přístavy a profesionální
<tocol> typy jak specifikoval v rourové konfiguraci. Balíky s
stejný <identifier> po maskujícím pádu do stejné fronty.
Dostupné maskové <specifiers> jsou kombinace z následování:
dst-ip maska,src-ip maska,dst-port maska,src-port maska,<proto>
maska nebovšichni, kde druhé prostředky všechny kousky v všech polích jsou
významný. When používal uvnitřroura konfigurace, každý tok je
přiřadil rychlost rovnou rychlosti roury. When používal uvnitř
fronta konfigurace, každý tok dostane váhu rovnat se k
váha fronty a všech toků, které trvají na stejné rouře
podílová šířka pásma úměrně k jejich váze.
kbelíky hash-table-size
Specifikuje velikost <hash> stolu použitého pro ukládající různý
fronty. Standardní hodnota je 64 kontrolovaný usysctl(8 proměnná
net.inet.ip.dummynet.hashvelikost, povolený rozsah je 16 k 1024.
roura rouranr
Spojí frontu s specifikovanou rourou. Rozmanité fronty obvykle
s různými váhami může být propojený na stejnou rouru, který
specifikuje celkovou rychlost pro soubor front.
váha váha
Specifikuje váhu být použitý pro toky, které odpovídají této frontě.
Váha musí být v rozsahu 1..100, a <defaults> k 1.
<red> <gred> wq<min>thmaximálníthmaximálníp
Dělat použití červené fronty vedoucí algoritmus. wq amaximálníp
plavou na bodových číslech mezitím 0 a 1 0 ne zahrnutý,
chvíle<min>th amaximálníth být celočíselná čísla, která specifikují prahy
pro frontové vedení prahy jsou vypočítané v bajtech jestliže
fronta byla definovaná v bajtech, v štěrbinách jinak. The
dummynet(4 také podporuje jemnou červenou variantu <gred>. Three
sysctl(8 proměnné mohou být zvyklé na kontrolu červené chování:
net.inet.ip.dummynet.redvyhledáváníhloubka
specifikuje správnost v počítání průměrné fronty
když spojení je nezaměstnané <defaults> k 256,
musí být větší než nula
net.inet.ip.dummynet.red<avg><pkt>velikost
specifikuje očekávanou průměrnou zabalenou velikost
<defaults> k 512, musí být větší než nula
net.inet.ip.dummynet.redmaximální<pkt>velikost
specifikuje očekávanou maximální zabalenou velikost,
jen použitý když frontové prahy jsou v bajtech <defaults> k
1500, musí být větší než nula.
Úplný seznam
Tady být některé důležité body zvážit to když navrhne vaše pravidla:
o Pamatovat si, že vy filtrujete oba balíky běžnév aven. Nejvíce <connec>
<tions> potřebují balíky běžné v obou směrech.
o Pamatovat si k testu velmi opatrně. To je dobrý nápad být blízký
utěšit když dělá toto. Jestliže vy nemůžete být blízcí utěšit,
použití auto-recovery zápis takový jak jeden v
/usr/share/examples/ipfw/changerules.sh.
o Nezapomenou <loopback> rozhraní.
Jemné body
o Tam je jeden druh balíku že firewall vždy odhodí,
to je TCP balík je fragment s fragmentem vyrovnaným z jednoho. This
je platný balík, ale to jen má jedno použití, pokusit se obejít
firewally. Když nahraje je umožněný, tyto balíky jsou ohlásené jak
bytí zastavilo se u pravidla -1.
o Jestliže vy jste přihlásil se k přes síť, nakládáníkld(4 verze z
<ipfw> je pravděpodobně ne jak přímý jak vy byste mysleli. Já <recom>
spravit následující příkazovou řádku:
<kldload> /modules/ipfw.ko&&
<ipfw> sčítají 32000 dovolit ip od
některého
k některému Podél stejných linek, dělání
<ipfw> proud
v podobném okolí je také špatná myšlenka.
o The<ipfw> seznam filtru nemůže být upravený jestliže systém bezpečná úroveň
je soubor k 3 nebo <higher> vidětinit(8 pro informaci o systémové bezpečnosti
úrovně.
Zabalený odklon
Adivert(4 zásuvka svázaná k specifikovanému přístavu přijme všechny
balíky odkloněné k tomu přístavu. Jestliže žádná zásuvka je svázaná k cíli levému,
nebo jestliže jádro nebylo zkompilované s odklonit zásuvkovou podporu, balíky
jsou vynechány.
SYSCTL proměnné
Soubor zsysctl(8 proměnné ovládací prvky chování firewallu.
Tito jsou ukázaní dole spolu s jejich standardní hodnotou a významem:
net.inet.ip.fw.debug: 1
Ovládací prvky, které odvšivují zprávy vytvořené u<ipfw>.
net.inet.ip.fw.onepovolení: 1
When soubor, balík, který odchází zdummynet(4 roura není
prošel ačkoli firewall znovu. Jinak, po rouře
akce, balík <reinjected> do firewallu u příšte
pravidlo.
net.inet.ip.fw.verbose: 1
Umožní mnohomluvné zprávy.
net.inet.ip.fw.enable: 1
Umožní firewall. Dávání této proměnné k 0 nechá vás běžet
váš stroj bez firewallu dokonce jestliže zkompilovaný v.
net.inet.ip.fw.verboselimit: 0
Limituje množství zpráv vytvořených mnohomluvným firewallem.
net.inet.ip.fw.dynkbelíky: 256
net.inet.ip.fw.curr<dyn>kbelíky: 256
Konfigurovaná a aktuální velikost <hash> stolu zvyklého
na držení dynamická pravidla. Toto musí být síla z 2. Stůl může jen být
přeformovaný když vyprázdnit se, tak aby přeformoval to
bezmyšlenkovitě vy chcete pravděpodobně mít kproud a přeložit <ruleset>.
net.inet.ip.fw.dynpočet: 3
Aktuální množství dynamických pravidel nepřepisovatelných.
net.inet.ip.fw.dynmaximální: 1000
Maximální počet dynamických pravidel. Když vy jste udeřili do
tohoto limitu, ne dynamičtější pravidla mohou být nainstalovaná do okamžiku než starý <ones> vypršet.
net.inet.ip.fw.dyn<ack>celý život: 300
net.inet.ip.fw.dyn<syn>celý život: 20
net.inet.ip.fw.dynploutevcelý život: 20
net.inet.ip.fw.dyn<rst>celý život: 5
net.inet.ip.fw.dynkrátkýcelý život: 30
Tyto proměnné řídí celý život, během několika sekund, z dynamický
pravidla. Na parafovat SYN výměnu celý život je držený krátký,
pak zvětšil se po obou SYN byl viděn, pak snížil se
znovu během finální ploutve výměna nebo když RST
Příklady
Tento příkaz přidá záznam, který popírá všechny <tcp>
balíky odcracker.evil.org k <telnet> přístavu zwolf.tambov.su od bytí pro
<warded> hostitelem:
<ipfw> sčítají popírat <tcp> od cracker.evil.org k
wolf.tambov.su <telnet>
Tento zamítne nějaké spojení od celé sušenkové sítě k mému hostiteli:
<ipfw> sčítají popírat ip od 123.45.67.0/24 k my.host.org
Nejprve a účinný způsob, jak omezit přístup ne používání dynamických
pravidel je použití následujících pravidel:
<ipfw> sčítají dovolit <tcp> od
některého k některý prokázal <ipfw> sčítají dovolit <tcp> od net1 portlist1 k
net2 portlist2 nastavení <ipfw> sčítají dovolit <tcp> od net3 portlist3 k
net3 portlist3 nastavení ...
<ipfw> sčítají popírat
<tcp>
od některého k některému První pravidlo bude rychlé utkání pro normální TCP balíky, ale to nebude
odpovídat si parafovat SYN balík, který bude vyrovnaný unastavení
pravidla jediná pro vybraný zdroj / cílové páry. Všichni jiné SYN
balíky budou odmítnuté finálempopírat pravidlo.
Aby chránil místo před záplavou útoky zahrnující padělají TCP balíky, to
je bezpečnější používat dynamická pravidla:
<ipfw> přidají check-state
<ipfw> sčítají popírat <tcp> od
některého k některý prokázal <ipfw> sčítají dovolit <tcp> od my-net k
nějakému
nastavení keep-state Toto nechá firewall instalovat dynamická pravidla jediná pro ty
<connec> <tion>, které začínají pravidelný SYN balík přijde z vnitřní
strany naší sítě. Dynamická pravidla jsou kostkovaná když setká se s nejprve
check-state nebokeep-state pravidlo. Acheck-state pravidlo by mělo být
obvykle umístěné blízko začátku <ruleset> minimalizovat množství práce,
která prohlíží <ruleset>. Vaše vzdálenost může měnit se.
BEWARE: <stateful> pravidla mohou být podřízená denial-of-service
útokům SYN-flood, který otevře masivní množství dynamických pravidel. Účinky takových
útoků mohou být částečně omezené tím, že jedná podle souboru zsysctl(8
proměnné, které řídí operaci firewallu.
Tady je dobré použití zseznam příkaz vidět účetní záznamy a
<timestamp> informaci:
<ipfw> u seznamu
nebo ve zkratce forma bez <timestamps>:
<ipfw> seznam
Další pravidlo odkloní všechny přícházející balíky od 192.168.2.0/24
odklonit přístav 5000:
<ipfw> odkloní 5000 ip od 192.168.2.0/24 k
některému v
Řídí se pravidly přehlídka část aplikace z<ipfw> adummynet(4
pro simulace a mít rád.
Toto pravidlo upustí náhodné přícházející balíky s pravděpodobností z 5:
<ipfw> přidají <prob> 0.05 popírat
ip
od některého k některému v Podobný účinek může být dosáhl dělajícího použití <dummynet> rour:
<ipfw> přidají rouru 10 ip od
některého k některému <ipfw> roura 10
<config>
<plr> 0.05 My můžeme používat roury, aby uměle limitoval šířku pásma, e.g. na strojovém aktu
<ing> jako směrovač, jestliže my chceme snížit dopravu od místních
klientů na 192.168.2.0/24, který my děláme:
<ipfw> přidají rouru 1 ip od 192.168.2.0/24
k některému ven <ipfw> roura 1 <config> bw 300Kbit
/
s fronta 50KBytes poznámka, kterou my používámeven modifikátor aby pravidlo není použité dvakrát.
Pamatovat si ve skutečnosti to<ipfw> pravidla jsou kontroloval oba na
přícházejících a <outgo> <ing> balíkách.
By měl my rádi simulujeme <bidirectional> spojení s šířkou pásma,
která <limita> <tions>, správný způsob je následování:
<ipfw> přidají rouru 1 ip od
některého k některému ven <ipfw> přidají rouru 2 ip od
některého k některému v <ipfw> roura 1 <config> bw 64Kbit
/ s fronta 10Kbytes <ipfw> roura 2 <config> bw 64Kbit
/
s fronta 10Kbytes The nahoře může být velmi užitečný, e.g. jestliže vy chcete vidět jak vaše
přepychová internetová stránka bude hledat obytného uživatele, který je spojený
jediný přes pomalé spojení. Vy byste neměli používat jen jednu rouru pro oba směry,
ledaže vy chcete simulovat half-duplex střední e.g. AppleTalk, Ethernet,
IRDA. To není nutné že obě roury mají stejnou konfiguraci, tak my
můžeme také simulovat asymetrická spojení.
By měl my rádi ověříme síťový výkon s červenou frontou řídit
<ment> algoritmus:
<ipfw> přidají rouru 1 ip od
některého k některému <ipfw> roura 1 <config> bw 500Kbit / s fronta 100
červené 0.002/30/80/0.1
Další typické použití dopravního <shaper> má představit nějaké
zpoždění v komunikaci. Toto může ovlivnit hodně aplikace, které
dělají množství vzdálených procedurálních hovorů, a kde round-trip-time
spojení často stane se omezujícím faktorem mnohem více než šířka pásma:
<ipfw> přidají rouru 1 ip od
některého k některému ven <ipfw> přidají rouru 2 ip od
některého k některému v <ipfw> roura 1 <config>
odkládají 250ms bw 1Mbit / s <ipfw> roura 2 <config>
odkládají
250ms bw 1Mbit / s Per-flow <queueing> může být užitečný pro paletu účelů. Nějaký velmi
jednoduchý počítá provoz:
<ipfw> přidají rouru 1
<tcp> od některého k některému <ipfw> přidají rouru 1
<udp> od některého k některému <ipfw> přidají rouru 1 ip od
některého k některému <ipfw> roura 1
<config>
maskují všechny Nad souborem pravidel bude vytvářet fronty a sbírat statistiky pro celý
provoz. Protože roury mají žádné limitace, jediný účinek sbírá
statistiky. Poznamenat, že my potřebujeme 3 pravidla, ne jen
ten poslední, protože když<ipfw> pokusí se odpovídat IP balíkům to nebude zvažovat
přístavy, tak my bychom neviděli spojení na oddělených přístavech jak různý <ones>.
Důmyslnější příklad sníží odchozí dopravu na síti s per-host limity,
spíše než per-network limituje:
<ipfw> přidají rouru 1 ip od 192.168.2.0/24
k některému ven <ipfw> přidají rouru 2 ip od některého
192.168.2.0/24 v <ipfw> roura 1 <config> maskují src-ip, který
0x000000ff bw 200Kbit / s fronta 20Kbytes
<ipfw> roura 2 <config> maskují dst-ip, který
0x000000ff bw 200Kbit / s fronta 20Kbytes
SEE ALSO
cpp(1,m4(1,bridge(4,divert(4,dummynet(4,ip(4,ipfirewall(4,
protocols(5,services(5,init(8,kldload(8,reboot(8,sysctl(8,
syslogd(8
Chyby
Syntax rostla přes roky a to není velmi čisté.
WARNING!!WARNING!!WARNING!!WARNING!!WARNING!!WARNING!!WARNING!!
Tento program může vložit váš počítač do spíše nepoužitelného státu. Když
používá to poprvé, pracovat na utěšit počítače, a dělatNOT dělat
něco vy nerozumíte.
Když zachází s / sčítající řetězové záznamy, služba a protokolová jména
nejsou přijímaná.
Přícházející zabalené fragmenty odkloněné uodklonit nebopodložka být
<reassembled> před doručením k zásuvce.
Balíky, které odpovídají sipodložka pravidlo by nemělo být okamžitě přijímané,
ale by měl pokračovat procházet pravidlem seznam. Toto může být fixované
v pozdnější verzi.
Autoři
Ugen J. S. Antsilevich,
Poul-Henning Kamp, Alex
Nash, Archie
Cobbs, Luigi Rizzo.
API založený na kódu psaném prostřednictvím Daniel Boulet pro BSDI.
Pracovat nadummynet(4 provoz <shaper> podporovaný prostřednictvím Akamba Corp.
Historie
The<ipfw> pomůcka nejprve objevila se v FreeBSD 2.0. dummynet(4 byl
počáteční <duced> v FreeBSD 2.2.8. Stateful rozšíření byla představená v
FreeBSD 4.0.
Darwin únor 16, 2000 Darwin