OpenBSD
Router
Hoci
sú tieto stránky o FreeBSD, OpenBSD mám rovnako
rád a keďže som vytvoril zaujímavý projekt - jednodisketové
mini BSD, ktorý poslúži ako router, rád sa podelím
o info.
SONaFR
- Simple OpenBSD
NAT and
Firewall/Router
Jednoduchý
NAT a Firewall/Router na jednej diskete
SONaFR je maličký systém, ktorý zbehnete z jednej diskety
a ktorý využijete ako NAT a Firewall/Router.
SONaFR-1.0, Copyright (c) George Sipos, október 2007
Download SONaFR here
Kontakt
SONaFR - router na jednej diskete
SONaFR-2.0 k stiahnutiu
Keď nepoužívate diskety, stiahnite
si multiboot ISO obraz, ktorý obsahuje moje tri projekty
- SONaFR, KarmaBSD (MP3 prehrávač
na jednej diskete na báze OpenBSD) a 1FCDBSD
(MP3 prehrávač na jednej diskete, ale na báze FreeBSD).
Na úvod niekoľko slov o OpenBSD
Copyright (c) George Sipos
Tu som sa rozhodol umiestniť svoj ďalší maličký
výtvor - SONaFR-1.0 (Simple OpenBSD NAT
and Firewall/Router), ktorý som otestoval
a s ktorého schopnosťami som bol spokojný. Vznikol tak maličký
jednodisketový router na báze OpenBSD 4.1 s pokynmi vo farebnom
texte, ktoré aj tu popíšem. OpenBSD ako systém si určite zaslúži
niekoľko slov, ktorých obsah možno poznáte a teda nasledovné
riadky môžete preskočiť. Ak o OpenBSD neviete nič, čítajte!
Ak sa chcete rýchlo dozvedieť, ako používať/konfigurovať tento
mini BSD SONaFR systém, kliknite sem.
História
BSD
O histórii som písal aj v časti o FreeBSD, ale predsa si
len stručne niečo povieme. UNIX sa začal vyvíjať v Bell Labs
(AT&T) (1960-1970). Niekoľko univerzít ho kúpilo aj s
licenciou na zdrojový kód a UC (University of California)
v Berkeley tiež. Keď sa Unix začal vyvíjať v AT&T v USA
v sedemdesiatych rokoch, táto obrovská spoločnosť mala toho
času zákaz konkurovať na trhu s počítačmi. Z tohto dôvodu
bola AT&T ochotná poskytnúť licenciu na Unix vrátane zdrojových
kódov za malý poplatok univerzitám, kde študenti a výskumníci
mali dostatok času, aby kód vylepšovali.
Internet už vznikal v rokoch osemdesiatych (interne medzi
univerzitami) a univerzity si navzájom vymieňali opravy kódu
Unixu, ktorý však nebol dokonalý. Opravy (patches) koordinovala
skupina Computer Science Research Group (CSRG) na univerzite
v Berkeley (University of California) a tieto opravy
dostali pomenovanie ako BSD Unix (Berkeley Software
Distribution). Toto prebiehalo dosť dlho, pričom AT&T
zároveň získavala opravený kód späť.
V deväťdesiatych rokoch sa BSD kód otvára, hoci sa objavovali
mraky v podobe právnych sporov ohľadne licencie. BSD 4.4-Lite2
ako "starý otec" všetkých BSD systémov, ktorý vyšiel
z "úkrytu", v ktorom ho predtým videlo a mohlo ohmatať
iba pár "vyvolencov", potreboval zo súčasného pohľadu
ešte veľa práce. Právnici v Berkeley dokázali, že väčšina
BSD kódu v podstate vychádzala z práce týchto opráv, či už
od študentov alebo špičkových vývojárov, a že v podstate vôbec
nešlo o pôvodný AT&T kód. Spoločnosť AT&T napokon
musela zastaviť svoje aktivity a vydala vlastnú verziu Unixu
- System V Unix. Skupina CSRG však pravdaže odstránila
z BSD sporný kód, na ktorý si nárokovala firma AT&T zo
svojho pohľadu oprávnene.
BSD, teda Berkeley Software Distribution, je rodina Unixov,
ktorú vyvíjala kalifornská univerzita v Berkeley od konca
rokov 1970 aj za finančnej podpory ARPA (vojenskej agentúry).
V roku 1985 prišiel na svet projekt 386/BSD so zameraním na
čipy Intel. 386/BSD bol postavený najmä na myšlienkach dvoch
ľudí: Billa Jolitza a jeho manželky.
Linux
V čase, keď vznikol Linux (1992), BSD systémy boli oveľa
viac vyvinutejšie. Prvá verzia NetBSD 0.8 prišla v apríli
1993 a prvé oficiálne CD FreeBSD 1.0 v decembri 1993. K vynálezom
BSD patrí aj TCP/IP, na ktorom stojí internet. Linux je postavený
na klone Unixu (Minix), ktorý zďaleka nespĺňal požiadavky
na plnohodnotnejší systém v tom čase, ale vďaka veľkej práci
a nadšeniu vývojárov Linux veľmi veľa dobehol. Dnes je Linux
"hodnotnejší" (aj keď je to relatívne) najmä vďaka
veľkej podpore ovládačov, v ktorých zase zaostávajú BSD systémy
- nie preto, že by boli horšie, ale kvôli nezáujmu. V BSD
komunite sa väčšia popularita Linuxu oproti BSD odôvodňuje
oveľa viac viditeľným reklamným zastrešením Linuxu (Novell,
Red Hat, Mandrake...), ktoré v BSD svete v takom rozsahu chýba.
Pre otvorenie BSD bol najvýznamnejší rok 1993
Bill Jolitz nečakane rezignuje v kooperácii; je uvoľnená
neoficiálna oprava kódu 386/BSD. Ale prichádza aj verzia 4.3
BSD-Lite ("Net/2"), ktorá sa stala verejnou. V roku
1993 sa ako prvá sformovala skupina NetBSD, ktorá sa
chopila aj tejto neoficiálnej opravy 386/BSD. Medzi zakladateľov
NetBSD patril aj Theo de Raadt. Hneď po NetBSD
vzniká projekt FreeBSD a Theo de Raadt, zakladateľ
OpenBSD, sa pre svoj odchod z tímu NetBSD rozhodol
z osobných dôvodov, čo sa stalo v roku 1995, teda oveľa neskôr.
Theo de Raadt mi odpísal na email, kde uviedol, že jeho odchod
bol spôsobený bojom o moc a že doteraz nevidí inú možnú príčinu.
OpenBSD je teda z rodiny BSD ako OS najmladší
iba podľa roku, keď vznikol jeho názov; systém je vlastne
celý postavený na NetBSD, z ktorého v roku 1995 vyšiel
v celej jeho kráse. BSD systémy sú voľné a ktokoľvek si ich
môže "zobrať". Samozrejme - čím viac sa OpenBSD
vzdiaľuje od roku 1995, tým menej sa podobá na dnešné NetBSD.
Najzákladnejšie rozdiely medzi BSD a Linuxom
Linux a BSD tu chápeme globálne.
1) BSD má inú licenciu, to znamená, že kód si môže po jeho
úprave vývojár privlastniť; GPL licencia toto neumožňuje.
GPL dáva väčšiu slobodu užívateľom, BSD licencia zase programátorom.
Spoločnosť Apple takto prevzala (časť) FreeBSD pre svoj Mac
OS X.
2) Jadro je pravdaže úplne iné.
3) Súborový systém je iný (ffs).
4) Delenie diskov - BSD si vytvorí vlastné oddiely (partitions)
v rámci oddielu (slice), ktorý používa. Ak si fdiskom v Linuxe
(i DOS) rozdelíte disk, každý program pre správu diskov (i
vo Windows) bude delenie diskov vidieť ako - hda1, hda2, hda3
atď. Linux či DOS však bude pozerať na BSD disk iba ako na
jeden, avšak v rámci BSD (FFS) môžete mať aj 10 oddielov.
BSD systémy teda používajú dva termíny pre diskové oddiely
- "partition" (vo vnútri FFS) a "slice"
(oddiel disku, ktorý vidí bežný fdisk).
5) Označenie zariadení je iné, napr.: /dev/ad0s3b
("s3", teda "slice 3", je ekvivalentom
hda3 v Linuxe; "partícia" vo vnútri FFS, teda "b",
"e" atď., má pomenovanie podľa abecedy) je tretia
primárna partícia - "s3" (v štvrtej môžete
mať logický disk aj so súborovým systémom FAT32 atď.). Písmenká
abecedy sa však vo FreeBSD držia jednotného štandardu - "b"
(swap), "a" (/) a "e" (/tmp). Iné pomenovania
oproti Linuxu majú aj CDROM zariadenia, sieťové či USB zariadenia.
OpenBSD pre CDROM používa zariadenie /dev/cd0a (vo FreeBSD
je to /dev/acd0, samozrejme, iba v súvislosti s CDROM zariadením
typu IDE na druhom IDE kanáli s priradením MASTER; pre SLAVE
je už označenie iné).
6) BSD nepoužíva "runlevel" (inicializačné startup
skripty) na štýl Unix System V ako Linux.
7) IT profesionáli pod pojmom "Linux" chápu predovšetkým
iba jadro, hoci sa tento výraz ujal oveľa širšie (u bežných
ľudí). BSD systémy sa distribuujú v základnom systéme (manuálové
stránky, binárne súbory atď.); BSD, a pravdaže aj v profesionálnej
IT terminológii, teda nie je "iba jadro". Na základný
systém sa vzťahuje aj BSD licencia; "balíky" (packages)
sú na rozdiel od "základného systému" pod licenciou
autorov, ktorí ich vyvíjajú.
8) Jadro BSD systémov možno nastaviť do niekoľkých rovín,
napr. aj do bezpečnostnej, keď nie je možné v jadre (ani v
súboroch) za behu nič meniť. "Kernel levels" predstavujú
komplexnejšie úrovne jadra.
Medzi komunitami BSD, ktorých je viac, sú menšie rozdiely.
FreeBSD je asi najviac otvorený ako systém k nováčikom. Komunita
OpenBSD zase skôr očakáva, že užívatelia majú už nejaké základné
avantúry s Unixom za sebou; mali by to byť teda o niečo skúsenejší
užívatelia. Komunita nemá nič proti novým užívateľom, ale
nemajú prečo odpovedať na základné otázky, ako OpenBSD napríklad
inštalovať, alebo ako pripojiť linuxovský disk.
Pár
ďalších slov o OpenBSD
Inštalácia
Vo verziách novších ako 4.1 bude v FTP archívoch OpenBSD
súbor install42.iso (install43.iso, install44.iso atď., číslo
závisí od verzie), ktorý stačí stiahnuť a napáliť na CD.
MaheshaBSD
na stiahnutie - surfuj anonymne
SONaFR-1.0
Krátky popis SONaFR-1.0
SONaFR-1.0 je Router/Firewall/NAT na báze OpenBSD
4.1 s možnosťou použiť ho aj pre transparentný firewalling;
je postavený na binárnom súbore crunch (všetky príkazy
sú zakomponované do jedného binárneho súboru). Ak zadáte direktívy
pre ALTQ do súboru /etc/pf.conf, budete môcť využívať i traffic
shaping (kontrolu priepustnosti siete). Po nabehnutí (nabootovaní
z diskety alebo z CD) sa vytvorí súborový systém v pamäti,
pretože systém obsiahnutý v jadre je iba na čítanie a konfigurácie
nemožno editovať/meniť. Automatickým skopírovaním súborov
do pamäti je v pamäti potom editácia možná, čo uľahčuje prácu
a umožňuje aj kedykoľvek vrátiť vytvorené zmeny a konfigurácie
(k tomuto slúži príkaz /etc/floppy). Minimálne požiadavky
sú 9,5 MB RAM a disketová alebo CDROM mechanika (ak
chcete SONaFR použiť ako CD, stiahnite
si moje multiboot CD). Ostatné závisí od schopnosti jadra
rozpoznať sieťové karty, takže môže byť aj Pentium 75,
prípadne i nejaký PC z rady 486 alebo 386 či
oveľa novší.
SONaFR - pre prečítanie (stránkovanie) úvodného textu
použite kláves SPACE a pre slovenskú verziu rýchleho návodu
zadajte: "more /etc/READMEskcz" (samozrejme, bez
úvodzoviek).
SONaFR-1.0 stojí na systéme OpenBSD - OS, ktorý
sa považuje za najbezpečnejší na svete. SONaFR nemá
zdrojové kódy, lebo to nie je bežný program napísaný
v nejakom jazyku. Všetky zdrojové súbory sú dostupné na domovských
stránkach OpenBSD (www.openbsd.org) a aj v samotnom SONaFR,
ktorý bol iba skompilovaný - a to tak, aby sa zmestil na jednu
disketu, práca teda bola na tvorbe jadra, na tvorbe
a testovaní rc skriptu a na tvorbe binárneho súboru
crunch, v ktorom sú zakomponované kadejaké základné
programy. crunchgen je súčasťou nielen OpenBSD, ale
aj NetBSD a FreeBSD.
Ako funguje (alebo čo je) Router/Firewall/NAT?
Router/NAT/Firewall sa využíva aj ako periférne zariadenie
(hardvérová krabička) a niekedy aj ako softvér v počítači,
prípadne na diskete/CD, pomocou ktorého pripojíme k PC (rozumej
- k internetu, ktoré ostatné počítače "vytiahnú"
z tohto PC) viac počítačov a tie získajú prístup na internet
zo systému - z tohto PC, na ktorom beží daný softvér. Takéto
PC sa nazýva ako router, brána či gateway
a zvykne na ňom súčasne bežať aj firewall. NAT je vlastnosťou
routera. Bola by škoda neaktivovať firewall, preto sa aktivácia
firewallu vždy doporučuje. Jedným z takýchto programov známych
v prostredí Windows je napríklad Kerio Winroute Firewall,
ktorého cena sa pohybuje, v závislosti od počtu licencií,
od 400 až po 1,400 EUR.
Nevýhodou softvéru ako Winroute je potreba používať Windows
- čo predstavuje ďalšie náklady, ktoré v dnešnom svete operačných
systémov sú závislé od ďalších nákladov - Windows totiž vyžaduje
silný hardvér a výrobcovia ako keby sa s Microsoftom dohodli.
Znamená to, že na obyčajnom PC s CPU Pentium III už nezbehnete
Windows 7; budete teda musieť potrebovať niekoľko tisíc korún
či zopár sto EU na kvalitnejší
hardvér aj s väčšou pamäťou, ale aj disk atď.
SONaFR si naopak vystačí bez disku a len s niečo vyše 9 MB
RAM. Ak máte starý PC, nemusíte ho vyhodiť.
NAT (Network Address Translation)
pomáha šetriť IP adresy,
ktorých nikdy nie je dostatok, tak si všetky počítače na lokálnej
sieti nakonfigurujú bránu na router, napr. na IP adresu 192.168.0.1,
pritom tieto môžu mať (musia mať) na vnútornej sieti vlastné
IP adresy. Keby mal internetový poskytovateľ každému počítaču
na vnútornej sieti prideliť IP adresu, voľná by neostala už
žiadna, lebo systém s prideľovaním adries má tiež svoje limity.
Sieť teda funguje tak, že router - ak pracujeme s jeho PC
riešením, má dve sieťové karty, z ktorých jedna je pripojená
na vonkajšiu sieť, t. j. internet, a druhá na vnútornú sieť
(LAN). Pozri obrázok.
Ak má router tretiu sieťovú kartu, to vôbec nevadí;
ak však na routeri máme len dve sieťové karty a chceme k nemu
pripojiť viac počítačov, použijeme tzv. hub, čo je
rozbočovač. Zo sieťovej
karty, ktorá je určená pre vnútornú sieť, vyvedieme kábel,
ktorý pripojíme do hubu a ostatné počítače z vnútornej siete
pripojíme k tomuto hubu. Názorne to vidieť na obrázku vľavo.
Čo je to transparentná firewall stena?
SONaFR nakonfigurujete aj pre
transparentnú firewall stenu, ale povedzme si k tomu
aspoň pár slov. Firewall sa v komplexnejšej sieti zložito
inštaluje, prípadne komplikovanejšie sa menia pravidlá. Každý
počítač musí mať IP adresu, čo nie je problém zvládnuť v malej
sieti, ale v prípade desiatok či stoviek počítačov to už predstavuje
veľmi vážny problém - každý počítač na vnútornej sieti treba
nakonfigurovať, aby videl firewall ako bránu. Transparentná
alebo stealth firewall stena, či bridge
firewall (iný názov pre to isté) nepoužíva IP adresy,
ale firewall funguje na dátovej úrovni, keď sa pakety filtrujú
a presúvajú na ďalšiu sieťovú kartu bez potreby používať IP
adresy.
Pri použití normálneho firewallu musí systém spracovávať
a skúmať pakety, čo mierne zdržuje,
prípadne oslabuje výkon. Firewall
nie je neviditeľný, transparentný firewall nikto nemôže vidieť.
Počítač je v úplnom bezpečí. Transparentný
firewall ale nie je router!!! Na toto
pozor! Transparentný
firewall je akýsi most (bridge), cez ktorý dáta prechádzajú
(ako v presýpacích hodinách, keď sa väčšie zrnká piesku filtrujú
od tých menších) z jednej sieťovky do druhej, ale nie na sieťovej
úrovni, ale na tzv. "vrstve 2", čo je OSI
model layer 2 - data link. "Most"
premosťuje sieť, jej segmenty atď.
Ak teda máte počítač s dvoma sieťovkami, na ktorom zbehnete
systém, ktorý podporuje vytvoriť transparentný firewall
(napr. SONaFR, ale môžete použiť aj iný), v rámci sieti vo
väčšej firme či kdekoľvek nepotrebujete konfigurovať nič -
žiadne IP adresy, iba nakonfigurujete tzv. "most"
(bridge - systém
so softvérom pre transparentný firewalling ako SONaFR,
ktorý umiestnite niekde medzi sieťové segmenty), ktorý môžete
kamkoľvek na sieť postaviť. V prípade, že administrátor je
nútený meniť firewall pravidlá pre segment, alebo musí inštalovať
nový sieťový segment a potrebuje napr. traffic shaping, transparentný
firewall most môže postaviť kamkoľvek a umiestniť medzi akýkoľvek
sieťový segment bez potreby konfigurácie IP adries a tak môže
slobodne aplikovať, meniť i vytvárať pravidlá pre firewalling.
Pre obsiahlejšie informácie si treba
naštudovať iné stránky, keďže účelom týchto nie je poskytovať
obsiahlu štúdiu pre sieťovanie, ale iba rýchly návod pre jednoduché
používanie SONaFR.
Open
Systems Interconnection Basic Reference Model
alebo OSI Layer 1 je fyzická
vrstva, OSI layer 2 je tzv. data link layer,
až layer 3 je sieťová vrstva a teda oveľa komplexnejšia. Ako
vidieť, nie je možné toto celé popisovať, pozrite sa radšej
do slovenskej Wiki: http://sk.wikipedia.org/wiki/OSI
Keďže tento druh firewallu nepoužíva IP adresu, ale funguje
na nižšej úrovni (hoci sa môžete k nemu pripojiť pomocou tretej
sieťovky a pozerať logy, alebo aj pomocou sériovej konzoly)
- bez IP adresy je systém nedosiahnuteľný; nikto
ho nemôže "ohmatávať", ani naň útočiť - je neviditeľný,
teda transparentný. Riešenie
s OpenBSD je samozrejme to najlacnejšie a na úrovni porovnateľnej
aj so špičkovými riešeniami od firiem ako Cisco atď.
Ako použiť transparentnú stenu firewall so systémom SONaFR?
K tomu použite iný počítač (SONaFR + iné PC). SONaFR buď
využijete ako Router/Firewall/NAT
ALEBO ako stealth (transparent)
firewall. Router/NAT/Firewall vyžaduje IP adresy,
transparentný (stealth) firewall nie.
1) Po nabehnutí systému z diskety (SONaFR) zadáte príkaz
: "ifconfig bridge0 create"
2) A potom príkaz: "brconfig bridge0 add rl0 add
rl2 up" kde "rl0" a "rl2" zameníte
za skutočné sieťové zariadenia, aké jadro OpenBSD (SONaFR)
nájde vo vašom systéme. OpenBSD samozrejme umožňuje aj automatické
nastavenie takéhoto "mosta" pri bootovaní, ale k
tomu si treba naštudovať iné stránky.
3) Pre firewalling je ešte potrebné nastaviť si súbor /etc/pf.conf,
ktorý po menšej úprave môžete použiť aj v podobe, v akej sa
nachádza v tomto mini BSD, a potom aplikovať príkaz: pfctl
-f /etc/pf.conf
Ako nakonfigurujem SONaFR-1.0 pre
NAT/Firewall/Router?
Disketa:
dd if=subor.img of=/dev/fd0a
(fd0a v OpenBSD, alebo fd0 v Linuxe) a rovnako možno použiť
aj rawwritewin.exe
, ktorý umožní každému ľahko dýchať - nevyzerá
obrázok nižšie naozaj pútavo?
Hoci
sa v unixovskom svete pre archívy používa tar.gz
alebo bz2 formát, Zip
formát je zvolený zámerne najmä pre užívateľov Windows, aby
ich svet mimo $MS trochu prilákal. Existuje veľa utilít pre
zápis IMG formátov na diskety, napr. aj Winimage.
Systém OpenBSD nabehne ako bootovacia disketa do prostredia,
kde môžete zadávať príkazy, pomocou ktorých hneď využijete
Firewall/NAT/Router riešenie. SONaFR používa jednoduchý textový
editor "mg", ale aj iné ďalšie dôležité príkazy
(sysctl, ifconfig, mount_mfs...).
Musíte mať dve sieťové karty. Jadro OpenBSD bolo skompilované
tak, že rozpozná mnohé známe sieťové karty, PCMCIA karty,
aj niektoré WiFi zariadenia, ale nie všetky, keďže je to minimalistická
verzia. Ak sa napr. pripájate cez DHCP k internetu, stačí
vedieť, do ktorej sieťovej karty je zasunutý jack (kábel).
Ak je vaša sieťová karta "rl0" - toto zistíte
príkazom ifconfig (ten vypíše všetky sieťové karty,
ktoré rozpoznalo jadro) - stačí, ak napíšete "dhclient
rl0" a pripojenie k internetu by ste mali mať hneď.
Ak nie, DHCP sa môže identifikovať cez MAC adresu,
ktorá slúži ako heslo, bez ktorého sa nespojíte, resp. áno,
ale s reštrikciami na DNS atď. Toto robia niektorí poskytovatelia
internetu, ale obísť to možno aj pomocou príkazu lladdr,
ktorý treba napísať za ifconfig. "lladdr"
nastaví (emuluje) takú MAC adresu, akú len budete chcieť.
Na obrázku vidieť, že SONaFR rozpoznal
sieťovú kartu ne2 (po zadaní príkazu ifconfig).
Pokiaľ je druhá sieťová karta (pre LAN) na našom routeri
napr. nfe0, nakonfigurujete ju príkazom "ifconfig
nfe0 192.168.0.1", kde "nfe0" zameníte
za vašu aktuálnu sieťovú kartu pre LAN (vnútornú sieť) - toto
zistíte po zadaní ifconfig.
Ak spojíte váš ďalší PC s PC routerom (PC s adresou 192.168.0.1,
kde beží SONaFR) a tento PC (nie router) máte nakonfigurovaný
s IP adresou 192.168.0.2 (pravdaže, môže byť aj 192.168.0.3
atď.) a ak funguje ping ("ping 192.168.0.2" z routera
alebo "ping 192.168.0.1" z ďalšieho PC, kde skúmate,
či ping rozpozná router s adresou 192.168.0.1), potom stačí
spustiť už len OpenBSD Packet Filter, ktorý na jednu výnimku
je už nastavený tak, aby router/firewall/NAT okamžite fungoval.
Touto malou výnimkou je, že do súboru /etc/pf.conf
treba napísať (sieťové) zariadenia, pre ktoré bude
Packet Filter uplatňovať pravidlá firewall. Použijete jednoduchý
editor "mg" - zadáte príkaz: "mg /etc/pf.conf"
a "IntIf" (Internal Interface) a "ExtIf"
(External Interface) nastavíte tak, aby sa interné (IntIf,
teda LAN) a externé (ExtIf, teda internet) zariadenia odkazovali
na názvy reálnych zariadení, ktoré naozaj používate. Takisto
treba zmeniť aj riadok "set logininterface"
(na samom začiatku v /etc/pf.conf) tak, aby sa logininterface
odkazoval na sieťovú kartu pripojenú k internetu, t. j. napr.
"set logininterface rl0". Zmeníte teda iba
tri body vyznačené v červenej farbe
v tejto časti (na začiatku) súboru /etc/pf.conf.
----------------> ukážka súboru /etc/pf.conf <-----------------
# $OpenBSD: pf.conf,v 1.28 2004/04/29 21:03:09 frantzen Exp
$
#
# See pf.conf(5) and /usr/share/pf for syntax and examples.
# Remember to set net.inet.ip.forwarding=1 and/or net.inet6.ip6.forwarding=1
# in /etc/sysctl.conf if packets are to be forwarded between
interfaces.
set loginterface rl0
# Optimize the engine for normal network environment.
# Section: SCRUB
# Interface: all
# Resolve overlapping IP fragments. Fragments are cached and
reassembled by
# pf before a packet is received by its destinations. This
will protect
# machines with less secure stacks behind it from fragmentation
attacks.
# -------------------------------------------------------------------------
#scrub in all
scrub in all fragment reassemble
scrub out all
# -----------------------------------------------------------------------
# Declare interfaces
# -----------------------------------------------------------------------
LoIf="lo0"
IntIf="nfe0"
ExtIf="rl0"
----------------> ukážka súboru /etc/pf.conf <-----------------
V súbore pf.conf je nastavený aj NAT na 192.168.0.1, čo nemusíte
meniť, ale táto informácia slúži pre prípad, keby ste chceli
použiť iné adresy na privátnej lokálnej sieti - tie môžu byť
aj 10.0.0.1 atď., čo však môže byť pre vás o niečo komplikovanejšie.
Riadok LoIf="lo0"
(a ani tie ostatné) nás nemusí zaujímať, ale vyššie tri časti
v červenej farbe musíte zmeniť podľa aktuálnych sieťových
zariadení vo vašom systéme, čo zistíte príkazom ifconfig.
Určite - editáciou ostatných riadkov zmeníte pravidlá pre
firewalling, ale to už je mimo rozsahu tohto vstupu. Cieľom
SONaFR je poskytnúť tzv. jednoduchý (Simple
OpenBSD) NAT/(and)Firewall/Router,
ktorý bude okamžite fungovať a všetko ostatné mimo tohto by
už bolo nad rámec cieľa.
Pre nastavenie DNS je pravda potrebné zadať IP adresy
name serverov do súboru /etc/resolv.conf, kde
sú príklady (aby užívateľ vedel, ako sa toto presne zadáva).
DNS sú číselné IP adresy, napr. 195.x.x.x ("x" predstavuje
ďalšie číslo). DNS robí preklad číselných IP adries na písmenka
a opačne, lebo písmenka si ľahšie zapamätáme. Ak do prehliadača
napr. napíšete www.freebsd.nfo.sk, túto požiadavku najprv
spracuje DNS server, ktorý preloží túto adresu na číselnú.
Stačí napísať "mg /etc/resolv.conf" a tak
editovať. Editor "mg" ukončíte pomocou kláves Ctrl+X+C
(X a C treba podržať súčasne s CTRL)
a potom použiť kláves "y" pre uchovanie zmien.
dhclient v OpenBSD často automaticky rozpozná DNS,
ale nemusí to byť vždy pravdou.
Ak to teda zhrnieme, konfigurácia SONaFR pre NAT/Firewall/Router
(nie Transparent Firewall) pozostáva z týchto krokov:
1) Spustenie PC s disketou/CD SONaFR
a nastavenie sieťových kariet pomocou ifconfig
2) editácia súboru /etc/pf.conf (pre zadefinovanie
aktuálnych sieťových zariadení)
3) zadanie DNS serverov do súboru /etc/resolv.conf
(pokiaľ to nebolo urobené automaticky)
4) aktivácia pripojenia na internet, napr. "dhclient
rl0"
5) spustenie firewall - napr. zadáte príkaz "/etc/start2",
ktorý aktivuje firewall - skript obsahuje príkazy potrebné
pre aktiváciu firewallu, aby ste ich nemuseli vypisovať
ručne. Sú to tieto príkazy:
pfctl
-F all
pfctl -f /etc/pf.conf
pfctl -s state
6) Nakonfigurujte si ostatné počítače,
ktoré pripojíte k PC-router buď cez hub alebo priamo.
Pomocou "pf -e"
aktivácia ("-e" = "enable"),
deaktivácia ("-d" = "disable") aktivujete
alebo deaktivujete firewall, pre jeho fungovanie však stačí
použiť príkaz vo zvýraznenom písme (ak použijete "-f",
musíte zadať aj cestu k súboru pf.conf
s pravidlami, ktorý samozrejme môžete mať aj inde).
Samozrejmosťou je prepojenie PC s káblami a aj automatické
nastavenie forwardingu na 1, čo už obsahuje súbor /etc/rc,
ktorý toto aktivuje pri spúšťaní SONaFR. V každom ďalšom počítači
- môže to byť i systém Windows, Linux, Mac OS, QNX atď. -
si treba nastaviť bránu (192.168.0.1) a samozrejme vnútornú
sieť, pretože v prípade viacerých počítačov s rovnakou adresou
by nastal konflikt.
Ak máte napríklad 5 počítačov s Windows, tie budú mať adresy:
PC1 - 192.168.0.2 (POZOR, nesmie byť
192.168.0.1, lebo túto IP sme pridelili nášmu routeru),
PC2 - 192.168.0.3, PC3 - 192.168.0.4, PC4 - 192.168.0.5, PC5
- 192.168.0.6 atď. A na každom z nich treba nakonfigurovať
bránu (192.168.0.1) a DNS.
Tipy:
Pre zoznam sieťových zariadení, ktoré podporuje SONaFR, zadajte:
more /etc/cards
Ak dostanete nejaké chybové hlásenie pri konfigurácii pomocou
"ifconfig zariadenie adresa" (napr. "ifconfig
nfe0 192.168.0.2"), s najväčšou pravdepodobnosťou podpora
daného zariadenia (nfe0 je pravdaže podporované v systéme
SONaFR) nie je zakomponovaná do jadra.
Súbor /etc/pf.conf možno pravdaže dolaďovať, ale momentálne
je nastavený tak, že NAT/Firewall/Router funguje okamžite
s celkom slušnými filtrovacími pravidlami.
Súbor /etc/start si upravte podľa vlastných potrieb
a potom ho používajte, na začiatok začnite s /etc/start2.
Ak si chcete nakonfigurovať tento router ako bránu v systémoch
Windows, vyberte Miesta v sieti (Network Neighborhood
- pravým tlačidlom myši), potom sieťové zariadenie (tiež pravým
tlačidlom myši), kde zmeníte jeho vlastnosti pre TCP/IP
tak, že použijete privátne adresy ako 192.168.0.2 (lokálna
sieť) atď. a kde uvediete aj DNS server. Po kliknutí
na "Použiť nasledujúcu IP adresu"
sa vám zobrazí okienko pre zadanie Východzej
brány, kde uvediete adresu routera (192.168.0.1).
Tento spôsob funguje v podstate rovnako vo všetkých systémoch
Windows (98, NT, W2K, XP, Windows 2003,
Vista). Pozri obrázok vyššie.
Pre zadefinovanie brány v Linuxe treba zadať: "route
add default gw 192.168.0.1". Vo FreeBSD je
trochu iný príkaz, kde pre konfiguráciu brány uvediete: "route
add default 192.168.0.1"
Ak napíšete "more /etc/READMEskcz", zobrazí
sa táto stránka (hoci o niečo menej obsiahla).
Ak dáte príkaz "/etc/floppy", tak sa dostanete
do menu, pomocou ktorého naformátujete (ale musí už byť naformátovaná
- buď DOS alebo BSD formát) a pripravíte disketu s formátom
FFS (OpenBSD), na ktorú môžete uložiť vaše konfigurácie z
/etc adresára, čo tento skript urobí za vás. V prípade, že
takéto zmeny už máte na diskete, tak ich pomocou tohto skriptu
(/etc/floppy) zapíšete späť do pamäti do prostredia SONaFR.
Toto však musíte robiť každý raz, keď systém nabehne.
Príkazom "/etc/memory" zistíte, koľko máte
voľnej pamäti.
Napíšte do príkazového riadku: "more /etc/RAM-examples",
aby ste videli príklady, ako možno zväčšiť/vytvoriť súborový
systém v pamäti RAM.
Príkazom: "more /etc/license" sa dozviete
typ licencie.
Príkazom: "more /etc/cards" zistíte, aké
sieťové zariadenia podporuje jadro SONaFR.
Ak chcete mať transparentný firewall, príkazom: "ifconfig
bridge0 create" vytvoríte most (bridge) a potom príkazom:
"brconfig bridge0 add rl0 add rl2 up" most
aktivujete, pričom "rl0" a "rl2" zameníte
za skutočné zariadenia vo vašom systéme. Pre firewalling je
ešte potrebné nastaviť si súbor /etc/pf.conf, ktorý
po menšej úprave môžete použiť aj v podobe, v akej sa nachádza
v tomto mini BSD, a potom aplikovať príkaz: "pfctl
-f /etc/pf.conf"
Príkazom: "more /etc/allcommands" zistíte,
aké všetky príkazy má toto maličké BSD.
OpenBSD Packet Filter má vyspelú vlastnosť pre kontrolu objemu
prenosu dát, ktorú možno obmedziť podľa potreby, a takáto
vlastnosť sa nazýva Bandwidth Management alebo Traffic
Shaping. PF k tomuto používa ALTQ, ktorý sa ako príkaz
zapíše do súboru /etc/pf.conf. ALTQ spravuje objem prenosu
(bandwidth) pomocou tzv. queues, čo sú akési súbory paketov,
ktoré čakajú na spracovanie. Popísanie tohto je však nad rámec
môjho cieľa, ale po naštudovaní si manuálových stránok Bandwidth
Management nie je problém nastaviť.
Počítač môžete kedykoľvek natvrdo vypnúť - systém beží iba
v pamäti, disketa nie je pripojená, tú môžete vybrať kedykoľvek
po nabehnutí SONaFR; nijaký "skutočný" súborový
systém nie je pripojený; SONaFR nemôže spáchať nijakú škodu
na diskoch, lebo podporu pre ne nemá zakomponovanú do jadra.
Nemôžem však niesť zodpovednosť za čokoľvek, čo by mohlo vo
vašom systéme zlyhať.
Záver
Nemám osobne toľko času, aby som niekomu robil helpdesk -
anglicky sa môžete učiť rovnako ako ja. Hovorím to preto,
lebo na internete sa dá najmä o počítačoch všetko vyhľadať.
Odpovedať na otázky typu: "mi to nejde, lebo" sa
mi nechce. To, čo som odskúšal, funguje. Vždy sa nájde systém,
ktorý odmietne zbehnúť - môže sa to stať i s týmto maličkým
OpenBSD riešením, ale čo už môžem robiť? Ostáva mi tešiť sa,
že ak sa nájde ďalších sto systémov ako môj (a aj tie staré
notebooky, na ktorých som SONaFR odskúšal), predsa to len
smeruje viac k dobru ako k nedobru.