<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
<book>
  <title>WiBSD Handbook</title>

  <preface>
    <title>Předmluva</title>

    <para>Dostali jste se na WiBSD Handbook, tedy příručku pro instalaci,
    konfiguraci a používání WiBSD.</para>

    <para>Tento Handbook je psán pro aktualní vývojovou verzi WiBSD-2, proto
    je možné že některé zde uvedené postupy nebudou moci být aplikovány na
    WiBSD-1 nebo na velmi starou verzi WiBSD-2. Pokud by však půjde o důležitá
    nastavení systému, která jsou vzájemně nekompatabilni mezi oběma verzema,
    uvedeme zde způsob nastavení pro obě.</para>

    <para>Pokud najdete v dokumentu chybu, nějaký pojem nejasně vysvětlený,
    rádi byste něco upřesnili nebo doplnili, nebo se chcete pouze na něco
    zeptat, neváhejte nás kontaktovat na našem veřejném mailing listu <ulink
    url="http://www.wibsd.cz/support/index.html">http://www.wibsd.cz/support/index.html</ulink>
    nebo si projděte domovskou stránku projektu WiBSD <ulink
    url="http://www.wibsd.cz">http://www.wibsd.cz</ulink></para>
  </preface>

  <chapter>
    <title>Začínáme s WiBSD</title>

    <para>V této sekci zjistíte</para>

    <para></para>

    <itemizedlist>
      <listitem>
        <para>co je to WiBSD</para>
      </listitem>

      <listitem>
        <para>jak získat WiBSD</para>
      </listitem>

      <listitem>
        <para>jakým způsobem ho nainstalovat</para>
      </listitem>

      <listitem>
        <para>jak se přihlásit</para>
      </listitem>

      <listitem>
        <para>jak ho konfigurovat</para>
      </listitem>

      <listitem>
        <para>jak upgradovat</para>
      </listitem>
    </itemizedlist>

    <section>
      <title>Co je to WiBSD</title>

      <para>WiBSD je otevřený systém odvozený z FreeBSD (<ulink
      url="http://www.freebsd.cz">www.freebsd.cz</ulink>)</para>

      <para></para>

      <para>Nejdůležitější vlastnosti WiBSD</para>

      <itemizedlist>
        <listitem>
          <para>WiBSD je dost podstatným způsobem upraveno tak, aby ho bylo
          možné provozovat na zařízeních s malým výkonem a s malým množstvím
          paměti (například routery, bezdrátové access pointy, vpn
          koncentrátory, a podobně).</para>

          <para>V současné době se celá distribuce bez problému vejde na jednu
          32MB flash kartu.</para>
        </listitem>

        <listitem>
          <para>Používá pouze jeden konfigurační soubor, ze kterého se
          automaticky generují konfigurační soubory pro všechny používané
          programy. Tak je možné jednoduše prenést celou konfiguraci do jiného
          boxu pouhým zkopírováním jednoho suboru.</para>

          <para>Stále je však možné pro jednotlivé programy tuto možnost
          vypnout a používat vlastní předpřipravené konfigurační soubory.
          Vetšinou pro to ale není důvod.</para>
        </listitem>

        <listitem>
          <para>Možnost jednoduchého vzdáleného upgradu celého systému.</para>

          <para>Zadáte pouze adresu upgrade image na http nebo ftp serveru a
          WiBSD se o všechno další postará.</para>
        </listitem>

        <listitem>
          <para>WiBSD obsahuje kontrolní skripty, které před restartem
          zkontrolují nastavení konfiguačního souboru a pokud zjistí chyby,
          které by znemožnily přístup na zařízení nebo jeho nastartování,
          oznámí je administrátorovi a restart pozastaví.</para>
        </listitem>
      </itemizedlist>

      <para></para>
    </section>

    <section>
      <title>Instalace WiBSD</title>

      <para>Protože je WiBSD otevřený systém, je možné jej získat z
      oficiálních stránek www.wibsd.cz.</para>

      <para>V současné době jsou podporovány dvě verze:</para>

      <itemizedlist>
        <listitem>
          <para>stable - verze založená na FreeBSD 5 a aktivně vyvíjená</para>
        </listitem>

        <listitem>
          <para>legacy - verze založená na FreeBSD 4</para>
        </listitem>
      </itemizedlist>

      <para></para>

      <section>
        <title>Získání image</title>

        <para>Nejprve je potřeba získat image, to jsou soubory z <ulink
        url="http://download.wibsd.cz/stable">http://download.wibsd.cz/stable</ulink>
        a <ulink
        url="http://download.wibsd.cz/legacy">http://download.wibsd.cz/legacy</ulink>,
        jejichž název má strukturu "wibsd-verze-datum.bin.gz". Verze je ve
        formátu [hlavní číslo verze].[vedlejší číslo verze].[číslo zmeny],
        například 2.0.0. Datum je datum, kdy byl tento image vygenerován,
        například 20050827 znamená, že tato verze byla vytvořena
        27.8.2005.</para>

        <para></para>
      </section>

      <section>
        <title>Vložení image na médium</title>

        <para>Image může být vložen na jakékoliv médium, ze kterého je váš
        počítač schopen bootovat: například Compat Flash Card, USB, Pevný
        disk. Jedinou podmínkou je, že dostupná velikost média musí být
        minimálně stejná jako je velikost image. Postup je předveden pro
        Compat Flash Card a pro ostatní média je velice podobný.</para>

        <para></para>

        <para>Předpokládáme ze máme image soubor wibsd-2.0.0-20050616.bin.gz
        uložený z <ulink
        url="http://download.wibsd.cz/stable/wibsd-2.0.0-20050616.bin.gz">http://download.wibsd.cz/stable/wibsd-2.0.0-20050616.bin.gz</ulink>
        a systém vidí naši CF kartu jako /dev/ad4</para>

        <para></para>

        <para><command># gzip -d wibsd-2.0.0-20050616.bin.gz</command></para>

        <para><command># dd if=./wibsd-2.0.0-20050616.bin
        of=/dev/ad4</command></para>

        <para><command># </command></para>
      </section>

      <section>
        <title>První přihlášení</title>

        <para>Po nové instalaci se do systému mohou přihlásit pouze
        následující uživatelé</para>

        <itemizedlist>
          <listitem>
            <para>root - s heslem "root"</para>

            <para>shell /usr/local/bin/bash</para>

            <para>uživatel má plná práva k systému</para>
          </listitem>

          <listitem>
            <para>toor - s heslem "toor"</para>

            <para>shell /bin/sh</para>

            <para>uživatel má stejná práva jako root</para>
          </listitem>

          <listitem>
            <para>wibsd - s heslem "wibsd"</para>

            <para>neprivilegovaný uživatel</para>
          </listitem>

          <listitem>
            <para>admin - s heslem "admin"</para>

            <para>tento uživatel nemá přístup ke standardnímu shellu, po jeho
            přihlášení je mu interaktivní formou umožněno základní nastavení
            sítě WAN</para>
          </listitem>
        </itemizedlist>
      </section>
    </section>

    <section>
      <title>Způsob konfigurace</title>

      <para>Všechny vlastnosti WiBSD jsou konfigurovány z jednoho souboru a
      tím je</para>

      <para><filename>/etc/rc.conf</filename></para>

      <para>Tento soubor pouze přepisuje standardní nastavení ze souborů v
      adresáři <filename>/etc/defaults</filename>. Hodnoty jsou čteny v
      následujícím pořadí</para>

      <para><filename>/etc/defaults/rc.conf</filename></para>

      <para><filename>/etc/defaults/wibsd.cz</filename></para>

      <para><filename>/etc/rc.conf<filename></filename></filename></para>

      <para>Díky tomu jsou hodnoty z <filename>/etc/rc.conf</filename> vždy
      použity přednostně. Pokud však nejsou v
      <filename>/etc/rc.conf</filename> předefinovány, použijí se standardní
      hodnoty z předchozích souborů.</para>

      <para></para>

      <section>
        <title>Změna konfiguračního souboru</title>

        <para>Aby se prodloužila životnost CF karet a zrychlila odezva
        systému, je celý filesystém je nahrán v operační paměti. V jakékoliv
        jeho části je možné provádět jakékoliv změny, které se mohou ihned
        aplikovat.</para>

        <important>
          <para>Kvůli tomu že systém pracuje pouze v operační paměti, budou
          změny po restartu nebo výpadku napájení nenávratně ztraceny!</para>
        </important>

        <para>Soubory a nastavení, které je potřeba uložit na fyzické médium
        je potřeba uložit do <filename>/mnt/flashcard</filename>, kde je celé
        fyzické médium připojené. Standardně je do tohoto adresáře a jeho
        podadresářů přístup pouze pro čtení.</para>

        <para>WiBSD obsahuje příkaz <command>rwremount</command>, který voláme
        předtím než chceme změnit <filename>/etc/rc.conf</filename> nebo
        jakékoliv jiné souboru uložené na fyzickém médiu, a příkaz
        <command>roremount</command>, který voláme potom, co jsme skončili s
        modifikací souborů.</para>

        <para></para>

        <para><command>root@:~# mount | grep /mnt/flashcard </command></para>

        <para><varname>/dev/ufs/flashcard on /mnt/flashcard (ufs, local
        read-only)</varname></para>

        <para>vidíme, že flash card je jen pro čtení</para>

        <para><command>root@:~# rwremount </command></para>

        <para><varname>using default mntpoint /mnt/flashcard...
        </varname></para>

        <para><varname>remouting /mnt/flashcard READ-WRITE... OK
        </varname></para>

        <para><varname>/dev/ufs/flashcard on /mnt/flashcard (ufs, local,
        noatime) </varname></para>

        <para>nyní jsme povolili čtení i zápis na flash card</para>

        <para>.. nyní můžeme provádět editaci konfiguračních souborů ..</para>

        <para>až skončíme s editaci, změníme mód zase pouze pro čtení</para>

        <para><command>root@:~# roremount </command></para>

        <para><varname>using default mntpoint
        /mnt/flashcard...</varname></para>

        <para><varname>remouting /mnt/flashcard READ-ONLY... OK
        </varname></para>

        <para><varname>/dev/ufs/flashcard on /mnt/flashcard (ufs, local
        read-only) </varname></para>

        <para></para>
      </section>
    </section>

    <section>
      <title>Vzdálený upgrade</title>

      <para>WiBSD neustále rozšiřujeme, podle požadavků přidáváme různé
      vlastnosti a případně opravujeme chyby. Pokaždé zveřejníme upgradovací
      balíčky na stejném místě jako instalační image, pouze s tím rozdílem že
      mají příponu .upgrade.tar</para>

      <para><important>
          <para>Nesmíte si splést upgradovací balíčky (.upgrade.tar) s
          binárními instalačními soubory (.bin.gz). Oba mají uplně jinou
          strukturu a jejich záměna není možná a nebude fungovat.</para>
        </important></para>

      <para><important>
          <para>Pokud používáte verzi WiBSD-1, měli byste používat upgradovací
          balíčky určené pouze pro tuto verzi. Stejne tak pokud používáte
          verzi WiBSD-2.</para>

          <para>Vzdálený upgrade z verze WiBSD-1 upgradovacím balíčkem
          WiBSD-2, a obráceně, je sice možný, ale je zde velká
          pravděpodobnost, že systém nenastartuje nebo nebude fungovat
          správně.</para>
        </important></para>

      <section>
        <title>Upgradování systému</title>

        <para>Nejprve zjistěte přesnou ftp nebo http adresu balíčku, kterým
        chcete systém upgradovat. Například si mužeme vybrat <ulink
        url="http://download.wibsd.cz/stable/wibsd-2.0.0-20060307.upgrade.tar">http://download.wibsd.cz/stable/wibsd-2.0.0-20060307.upgrade.tar</ulink>,
        který je aktuální v době psaní této dokumentace.</para>

        <para>Pro provedení upgradu slouží příkaz <command>upgrade</command>,
        který musí být spuštěn uživatelem s právy uživatele root. Jako
        parametr musí mít zadánu http nebo ftp adresu upgradovacího balíčku.
        Mezi příkazem upgrade a adresou je možno zadat několik parametrů,
        které se vypíší po zadání příkazu <command>upgrade</command> bez
        parametrů.</para>

        <para>Nejzajímavější z nich jsou parametry:</para>

        <itemizedlist>
          <listitem>
            <para>-f potlačí otázky typu "Jste si jist, že chcete přepsat
            soubory?" a podobné.</para>
          </listitem>

          <listitem>
            <para>-y po úspěšném provedení upgradu automaticky restartuje
            počítač, bez tohoto přepínače pouze informuje administrátora, ze
            by mel provést restart manuálně.</para>
          </listitem>
        </itemizedlist>

        <para></para>

        <para></para>

        <example>
          <title>Použítí upgrade</title>

          <blockquote>
            <para>root@:~# <command>upgrade
            http://download.wibsd.cz/stable/wibsd-2.0.0-20060307.upgrade.tar</command></para>

            <para>--&gt; run me with '-h' option for help</para>

            <para>--&gt; flashcard set read-only for filesystem check</para>

            <para>--&gt; filesystem '/dev/ufs/flashcard' is clean</para>

            <para>--&gt; enough space for upgrade process, proceeding</para>

            <para>--&gt; flashcard set read-write for upgrading process</para>

            <para>wibsd-2.0.0-20060307.upgrade.tar 100% of 10 MB 378 kBps
            00m00s</para>

            <para>--&gt; new system image fetched</para>

            <para>--&gt; checking MD5 signatures</para>

            <para>x boot/md5.txt</para>

            <para>x boot/kernel/kernel.gz</para>

            <para>x boot/defaults/loader.conf</para>

            <para>x boot/loader.help</para>

            <para>x boot/loader.rc</para>

            <para>x boot/support.4th</para>

            <para>x boot/beastie.4th</para>

            <para>x boot/device.hints</para>

            <para>x boot/frames.4th</para>

            <para>x boot/screen.4th</para>

            <para>x boot/mbr</para>

            <para>x boot/loader.conf</para>

            <para>x boot/loader</para>

            <para>x boot/loader.4th</para>

            <para>x boot/mfsroot.gz</para>

            <para>--&gt; removing immutable flag for 'boot/kernel/kernel.gz
            boot/mfsroot.gz'</para>

            <para>--&gt; now we are going to remove old system image</para>

            <para>--&gt; WARNING: NO WAY BACK AFTER YOU GO OVER THIS
            STEP</para>

            <para>--&gt; if anything goes bad from now on, you better know
            what to do...</para>

            <para>--&gt; do you want to continue? (yes/no)
            <command>yes</command></para>

            <para>--&gt; removing old system image</para>

            <para>--&gt; extracting new image</para>

            <para>x boot</para>

            <para>x boot/kernel</para>

            <para>x boot/modules</para>

            <para>x boot/defaults</para>

            <para>x boot/loader.help</para>

            <para>x boot/loader.rc</para>

            <para>x boot/support.4th</para>

            <para>x boot/beastie.4th</para>

            <para>x boot/device.hints</para>

            <para>x boot/frames.4th</para>

            <para>x boot/screen.4th</para>

            <para>x boot/mbr</para>

            <para>x boot/loader.conf</para>

            <para>x boot/loader</para>

            <para>x boot/loader.4th</para>

            <para>x boot/md5.txt</para>

            <para>x boot/mfsroot.gz</para>

            <para>x boot/defaults/loader.conf</para>

            <para>x boot/kernel/kernel.gz</para>

            <para>--&gt; setting immutable flag for 'boot/kernel/kernel.gz
            boot/mfsroot.gz'</para>

            <para>--&gt; removing temporary image</para>

            <para>--&gt; flashcard set read-only</para>

            <para>--&gt; SYSTEM UPGRADE COMPLETED</para>

            <para>--&gt; you should reboot now</para>

            <para></para>

            <para></para>
          </blockquote>
        </example>
      </section>
    </section>
  </chapter>

  <chapter>
    <title>Základní konfigurace</title>

    <para></para>

    <para>Několik obecných poznámek:</para>

    <itemizedlist>
      <listitem>
        <para>Veškerá konfigurace se ve WiBSD nastavuje pouze v souboru
        <filename>/etc/rc.conf</filename>. Pokud nevíte jaké je možné použít
        konfigurační proměnné, můžete se podívat do jednoho ze dvou souborů,
        kde by měly být stručné vypsány všechny proměnné, které lze
        použít.</para>

        <para>Prvním souborem <filename>/etc/defaults/rc.conf</filename>,
        který obsahuje proměnné a jejich standardní hodnoty pro obecné
        nastavení systému, převzaté z FreeBSD.</para>

        <para>Veškeré možné rozšířené nastavení, jako třeba nastavení
        uživatelských účtu byste měli najít v souboru
        <filename>/etc/defaults/wibsd.cz</filename>.</para>
      </listitem>

      <listitem>
        <para>Pokud není v textu uvedeno jinak, tak se více hodnot v jedné
        proměnné odděluje mezerou nebo tabulátorem.</para>
      </listitem>

      <listitem>
        <para>Většině skriptů, které generují konfigurační soubory, je možné
        proměnnou s postfixem
        <varname>_generate_config_file</varname><code>="NO"</code> říci, že
        mají používat už předpřipravený konfigurační soubor, který najdou na
        cestě zapsané v proměnné s postfixem
        <varname>_config_file</varname>.</para>
      </listitem>
    </itemizedlist>

    <para></para>

    <para></para>

    <section>
      <title>Nastavení uživatelských účtů</title>

      <para>WiBSD při startu samo vytváří uživatelské účty podle záznamů z
      <filename>/etc/rc.conf</filename>. Automatické vytváření uživatelů se
      zapne proměnnou <varname>make_accounts_enable</varname>.</para>

      <section>
        <title>Uživatelé</title>

        <para>V proměnné <varname>make_accounts_users</varname> musí být
        definovány všichni aktivní uživatelé a pro každého z nich musí být v
        proměnné
        <varname>make_accounts_user_jmenouživatele_password_hash</varname>
        uložen hash jeho hesla.</para>

        <important>
          <para>Pokud bude existovat hash hesla, ale uživatel nebude v
          <varname>make_accounts_users</varname>, tak se nastavení tohoto účtu
          neprovede a uživatel se nebude moci přihlásit do systému.</para>
        </important>

        <para><important>
            <para>Hashe musí být umístěny v jednoduchých uvozovkách, ne ve
            dvojitých, protože obsahují znaky, které by shell chtěl
            interpretovat jinak.</para>
          </important></para>

        <para>Hash se dá zjistit pomocí funkce crypt(3) nebo přímo ze souboru
        <filename>master.passwd</filename>, kde je takto uloženo heslo pro
        každého uživatele v systému. Hash můžete zkopírovat i z jiného
        počítače.</para>

        <para>Pro každého uživatele se také musí nastavit tyto proměnné (pokud
        se některá z těchto proměnných nenastaví, použije se defaultní
        hodnota):</para>

        <para><varname>make_accounts_user_uzivatel_uid</varname> pro nastavení
        hodnoty user id, default 65534 (nobody)</para>

        <para><varname>make_accounts_user_uzivatel_gid</varname> pro nastaveni
        group id, default 65534 (nobody)</para>

        <para><varname>make_accounts_user_uzivatel_comment</varname> pro
        nastavení hodnoty gecos (general information about user)</para>

        <para><varname>make_accounts_user_uzivatel_shell</varname> pro
        nastavení shellu, default "/bin/sh"</para>

        <para><varname>make_accounts_user_uzivatel_home</varname> pro
        nastavení domovského adresáře, default "/tmp"</para>

        <para><varname>make_accounts_user_uzivatel_wheel="YES"</varname>,
        pokud se má uživatel přiřadit do skupiny wheel (a může použít
        <command>su root</command>), jinak "NO", default "NO"</para>

        <para><varname>make_accounts_user_uzivatel_hushlogin="YES"</varname>,
        vytvori soubor .hushlogin v uzivatelovo <varname>$HOME</varname>, 
	takze se pri jeho prihlaseni nezobrazi motd</para>

        <para></para>

        <example>
          <title>Vytvoření uživatelů</title>

          <blockquote>
            <para>make_accounts_users="wibsd root toor holecek"</para>

            <para>make_accounts_user_wibsd_password_hash='$1$onw74atP$xqaOmtLIjAxN4SYG4Ntkh1'</para>

            <para>make_accounts_user_root_password_hash='$1$j/kvXYrq$J7huLPiw6/tM/BZPLDvH90'</para>

            <para>make_accounts_user_toor_password_hash='$1$j/kvXYrq$J7huLPiw6/tM/BZPLDvH90'</para>

            <para>make_accounts_user_toor_shell="/usr/local/bin/bash"</para>

            <para></para>

            <para>make_accounts_user_holecek_password_hash='$1$haSHfw$GGFDGER\56hfHF5Ghf50'</para>

            <para>make_accounts_user_holecek_uid="1067"</para>

            <para>make_accounts_user_holecek_gid="20"</para>

            <para>make_accounts_user_holecek_wheel="YES"</para>

            <para>make_accounts_user_holecek_home="/home/holecek"</para>

            <para>make_accounts_user_holecek_shell="/usr/local/bin/bash"</para>

            <para></para>
          </blockquote>

          <para></para>
        </example>
      </section>

      <section>
        <title>Skupiny</title>

        <para></para>

        <para>Pokud chcete použít skupinu, která není standardně v systému, je
        vhodné ji vložit do /etc/group, a to pomocí následujících
        proměnných</para>

        <para><example>
            <title>Vytvoření skupin</title>

            <blockquote>
              <para>make_accounts_groups="jedna dva"</para>

              <para>make_accounts_group_jedna_uid="1001"</para>

              <para>make_accounts_group_dva_uid="1002"</para>
            </blockquote>
          </example></para>
      </section>
    </section>

    <section>
      <title>Základní nastavení sítě</title>

      <para>Nastavení sítě je stejné jako ve FreeBSD.</para>

      <para>Je potřeba nastavit proměnnou <varname>hostname</varname>,
      <varname>ifconfig_rozhanni</varname>, <varname>default_router</varname>.
      Pokud budeme předpokládat, že vaše rozhranní které chcete konfigurovat
      se jmenuje sis0, tak tato část <filename>/etc/rc.conf</filename> by
      mohla vypadat asi takhle:</para>

      <para><example>
          <title>Základní nastavení sítě</title>

          <blockquote>
            <para>hostname="superrouter.wibsd.cz"</para>

            <para>ifconfig_sis0="inet 192.168.1.6/24"</para>

            <para>defaultrouter="192.168.1.1"</para>
          </blockquote>
        </example>Pokud používate jiný název rozhranní, upravte
      <varname>ifconfig_sis0</varname> na správný název. Ten zjistíte
      například po výpisu <command>ifconfig</command>.</para>

      <para><varname>hostname</varname> určuje FQDN (plně kvalifikované
      doménové jméno)</para>

      <para>obsah <varname>ifconfig_sis0</varname> se přidá za volání
      <command>ifconfig sis0</command>, předchozí příklad se proto ve
      skutečnosti volá takto: <command>ifconfig sis0 inet
      192.168.1.6/24</command></para>

      <para></para>

      <section>
        <title>Nameservery</title>

        <para>Nameservery se nastaví proměnnými
        <varname>resolv_conf_nameservers</varname> - nastaví adresy dns
        serverů, a <varname>resolv_conf_search</varname> - nastaví standardní
        postfix, nechcete například ve vlastní sítí používat celá (FQDN) jména
        jako host1.mojesit.cz ale jen host1, tak nastavíte
        <varname>resolv_conf_search</varname> na "mojesit.cz".</para>

        <para></para>

        <example>
          <title>Generování /etc/resolv.conf</title>

          <blockquote>
            <para>resolv_conf_nameservers="192.168.1.1 172.16.2.2"</para>

            <para>resolv_conf_search="wibsd.cz"</para>
          </blockquote>
        </example>
      </section>

      <section>
        <title>/etc/hosts</title>

        <para>Pokud máte malou síť, nebo jenom nechcete nastavovat centrální
        DNS server, je možné používat pro předklad adres počítačů vnitří sítě
        soubor <filename>/etc/hosts</filename>. Zde se zadavá jméno počítače a
        jeho adresa.</para>

        <para>WiBSD tento soubor umí také generovat z
        <filename>/etc/rc.conf</filename>, k tomu se použijí proměnné
        <varname>etc_hosts_lines</varname>, kam se zadají libovolné
        identifikátory řádku. A proměnné
        <varname>etc_hosts_line_identifikator</varname>, kde je právě jeden
        řádek, který chcete vložit do <filename>/etc/hosts</filename>.</para>

        <example>
          <title>Generování /etc/hosts</title>

          <blockquote>
            <para>etc_hosts_lines="localhost watchdog"</para>

            <para>etc_hosts_line_localhost="127.0.0.1 localhost
            localhost.mynet.cz"</para>

            <para>etc_hosts_line_watchdog="217.11.249.72
            watchdog.mynet.cz"</para>
          </blockquote>
        </example>
      </section>
    </section>

    <section>
      <title>Nastavení routeru s NATem</title>

      <para>Ve WiBSD (podle FreeBSD) je NAT řešen spuštěním obyčejného
      programu natd, který naslouchá na určitém místě, a firewallem, který
      určité packety posílá právě programu natd, ten je upraví a pošle zpátky
      firewallu, který je opět vloží do systému.</para>

      <para>Proto je pro nastavení NATu ve WiBSD potřeba mít zároveň alespoň
      minimální nastavení firewallu.</para>

      <para></para>

      <example>
        <title>Spuštění NATu</title>

        <blockquote>
          <para>natd_enable="YES"</para>

          <para>natd_interface="sis0"</para>

          <para>natd_flags="-m -s -redirect_port tcp 192.168.1.3:8080
          80"</para>
        </blockquote>

        <para></para>
      </example>

      <para><varname>natd_interface</varname> je rozhraní, které vede do
      Internetu. <varname>natd_flags</varname> může obsahovat různé přepínače,
      které funkci natd upravují. Předchozí příklad zařídí, že pokud se nekdo
      z venku bude chtít připojit na naš NAT router na port 80, tak bude
      transparentně přesměrován na počítač ve vnitřní síti, port 8080.</para>

      <para></para>

      <para>Dále musí být někde ve firewallu použito pravidlo podobné
      následujícímu: <code>divert 8668 ip from any to any via sis0</code>. To
      se zařídí proměnnou fw_wan_interface, které se přiřadí stejné rozhranní
      jako natd (tj. to, které vede do Internetu), a povolením firewallu
      ipfw.</para>

      <para></para>

      <para><example>
          <title>NAT a Firewall</title>

          <blockquote>
            <para>firewall_enable="YES"</para>

            <para>fw_wan_interface="sis0"</para>
          </blockquote>
        </example></para>

      <para></para>
    </section>

    <section>
      <title>Nastavení PPP pro CDMA modem</title>

      <para>Je potřeba nastavit připojení CDMA modemu do Internetu. To zařídí
      následující řádky. Toto nastavení platí pouze pro první, dříve uvedený,
      CDMA modem GTRAN. Pro nový, modrý, modem ANYDATA ADU-E100H je potřeba
      provést úpravý zmíněné na konci sekce.</para>

      <para>Po připojení modemu do routeru se zobrazí jako zařízení /dev/ucom0
      (za předpokladu, že tam nebude ještě jiné zařízení, kvůli kterému by se
      číslování posunulo). Pro komunikaci s modemy se používá PPP
      (point-to-point protokol) a pro eurotel CDMA vypadá jeho konfigurace
      takto.</para>

      <example>
        <title>Konfigurace PPP</title>

        <blockquote>
          <para>ppp_conf_enable="YES"</para>

          <para>ppp_conf_include_default_section="YES"</para>

          <para>ppp_conf_sections="cdma"</para>

          <para>ppp_conf_section_cdma_sets="log speed device phone authname
          authkey timeout"</para>

          <para>ppp_conf_section_cdma_set_log=""</para>

          <para>ppp_conf_section_cdma_set_speed="921600"</para>

          <para>ppp_conf_section_cdma_set_device="/dev/ucom0"</para>

          <para>ppp_conf_section_cdma_set_phone="\"#777\""</para>

          <para>ppp_conf_section_cdma_set_authname="YOUR_PASSWORD"</para>

          <para>ppp_conf_section_cdma_set_authkey="YOUR_USERNAME"</para>

          <para>ppp_conf_section_cdma_set_timeout="0"</para>

          <para>ppp_conf_section_cdma_disables="ipv6 dns"</para>

          <para>ppp_conf_section_cdma_routes="default"</para>

          <para>ppp_conf_section_cdma_route_default="default HISADDR"</para>

          <para>ppp_wdog_enable="YES"</para>
        </blockquote>

        <para>Nejprve se pomocí <varname>ppp_conf_enable</varname> zapne
        generování <filename>/etc/ppp.conf</filename>.</para>

        <para>Na začátku se definují sekce, které bude soubor
        <filename>/etc/ppp.conf</filename> obsahovat a potom se pro každou
        sekci určí jména direktiv (<varname>ppp_conf_section_cdma_sets,
        ppp_conf_section_cdma_enables, ppp_conf_section_cdma_disables,
        ppp_conf_section_cdma_accepts,
        ppp_conf_section_cdma_routes</varname>), které které chceme
        nastavovat, a následně se každému identifikátoru
        (<varname>ppp_conf_section_cdma_set_*</varname>,
        <varname>ppp_conf_section_cdma_enable_*</varname>,
        <varname>ppp_conf_section_cdma_disable_*</varname>,
        <varname>ppp_conf_section_cdma_route_*</varname>) přiřadí jeho
        hodnota.</para>

        <para>Podobně jako pro <code>set</code> generování funguje pro
        <code>enable</code>, <code>disable</code>, <code>accept</code> a
        <code>route</code>. Pro accept, enable a disable neni potřeba
        doplňovat jednotlivé hodnoty
        (<varname>ppp_conf_section_cdma_disable_ipv6</varname><code>="YES"</code>),
        ale stačí je pouze uvést v
        <varname>ppp_conf_section_cdma_disables</varname>.</para>

        <para>pokud je
        <varname>ppp_conf_include_default_section</varname><code>="YES"</code>,
        přidá se do <filename>/etc/ppp.conf</filename> sekce
        <code>default</code>, která vypadá takto:</para>

        <para><example>
            <title>default sekce v /etc/ppp.conf</title>

            <blockquote>
              <para>default:</para>

              <blockquote>
                <para>set log Phase Chat LCP IPCP CCP tun command</para>

                <para>ident user-ppp VERSION (built COMPILATIONDATE)</para>

                <para>set device /dev/cuaa1</para>

                <para>set speed 115200</para>

                <para>set dial \"ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5
                \\</para>

                <para>\\\"\\\" AT OK-AT-OK ATE1Q0 OK \\\\dATDT\\\\T TIMEOUT 40
                CONNECT\"</para>

                <para>set timeout 180</para>

                <para>enable dns</para>
              </blockquote>
            </blockquote>

            <para></para>
          </example></para>
      </example>

      <para>Pro modem ANYDATA ADU-E100H je potřeba změnit následující
      řádky</para>

      <para><example>
          <title>Změněné řádky pro modem AnyDATA</title>

          <blockquote>
            <para>ppp_conf_section_cdma_sets="log speed device phone authname
            authkey timeout dial"</para>

            <para>ppp_conf_section_cdma_set_dial="\"ABORT BUSY ABORT
            NO\\\\sCARRIER TIMEOUT 10 \\\"\\\" ATDT#777\""</para>
          </blockquote>
        </example></para>
    </section>

    <section>
      <title>Nastavení DHCP serveru</title>

      <para>Nastavení DHCP serveru se liší mezi WiBSD-1 a WiBSD-2. WiBSD-1 a
      staré verze WiBSD-2 nemají podporu pro sdílené sítě, proto v nich nelze
      nabízet adresy více sítí na jednom rozhranní.</para>

      <para>Pokud však používáte nižší verzi a provedete upgrade na novou, tak
      DHCP server nepřestane fungovat, protože všechny později provedené změny
      jsou zpětně kompatabilní.</para>

      <para>V obou verzích se DHCP server aktivuje proměnnou
      <varname>dhcpd_enable</varname><code>="YES"</code>.</para>

      <para>Také je potřeba nastavit tyto proměnné:</para>

      <para><varname>dhcpd_domain_name</varname> - DNS koncovka místní sítě
      (stane ze domain v <filename>/etc/resolv.conf</filename> nebo
      ekvivalentním u jiných systému, a pokud nebude uživatel používat plně
      kvalifikovaná jména počítačů, tak se k nim bude automaticky připojovat
      tato koncovka).</para>

      <para><varname>dhcpd_domain_name_servers</varname> - IP adresy DNS
      serverů pro klienty místní sítě.</para>

      <para><varname>dhcpd_default_lease_time</varname> - Doba na kterou se
      bude IP adresa klientům stanadardně půjčovat.</para>

      <para></para>

      <section>
        <title>Nastavení stejné pro všechny verze</title>

        <para>V obou verzích se DHCP server aktivuje proměnnou
        <varname>dhcpd_enable</varname><code>="YES"</code>.</para>

        <section>
          <title>Společné nastavení</title>

          <para>Také je potřeba nastavit tyto proměnné:</para>

          <para><varname>dhcpd_domain_name</varname> - DNS koncovka místní
          sítě (stane ze domain v <filename>/etc/resolv.conf</filename> nebo
          ekvivalentním u jiných systému, a pokud nebude užvatel používat plně
          kvalifikovaná jména počítačů, tak se k nim bude automaticky
          připojovat tato koncovka).</para>

          <para><varname>dhcpd_domain_name_servers</varname> - IP adresy DNS
          serverů pro klienty místní sítě.</para>

          <para><varname>dhcpd_default_lease_time</varname> - Doba na kterou
          se bude IP adresa klientům stanadardně půjčovat.</para>
        </section>

        <section>
          <title>Statické mapování klientů</title>

          <para>Stejně se v obou verzích nastavuje také statické přidělení IP
          adresy podle MAC adresy. Pro každé přiřazení si vybereme nějaký
          identifikátor, který nemusíme nikde vkládat, jenom použít. Například
          můžeme použít identifikátory pc1 a pc2, potom statické přiřazení
          provedeme následovně:</para>

          <para><example>
              <title>Statické přířazení IP adres v DHCP</title>

              <blockquote>
                <para>dhcpd_host_pc1_hostname="hostname1"</para>

                <para>dhcpd_host_pc1_hw="00:01:02:03:04:05"</para>

                <para>dhcpd_host_pc1_ip="192.168.1.122"</para>

                <para></para>

                <para>dhcpd_host_pc2_hostname="hostname2"</para>

                <para>dhcpd_host_pc2_hw="11:22:33:44:55:66"</para>

                <para>dhcpd_host_pc2_ip="192.168.1.145"</para>
              </blockquote>
            </example></para>
        </section>

        <section>
          <title>Přiřazení statické MAC adresy do ARP tabulky</title>

          <para>Ve WiBSD-2 a WiBSD-3 je je možné nastavit statický
          (permanentní) záznam do ARP tabulky, podle statického přiřazeni IP
          adresy na MAC adresu v dhcp.</para>

          <para>Tato vlastnost není používána automaticky a pro její aktivaci
          musíte vložit <varname>dhcpd_static_arp="YES"</varname> do
          <filename>/etc/rc.conf</filename>.</para>
        </section>
      </section>

      <section>
        <title>WiBSD-1</title>

        <para>WiBSD-1 nepodporuje sdílené sítě, proto se každé nastavení
        specifikuje podle jména rozhranní, na které bylo navázáno.</para>

        <para>Nejprve se v proměnné <varname>dhcpd_ifaces</varname> určí, na
        která rozhranní chceme navázat DHCP server a obsluhovat tak klienty na
        této části sítě. Bude předpokládat že máme v
        <varname>dhcpd_ifaces</varname><code>="sis0 sis1"</code>.</para>

        <para>Následně se používá prefix <varname>dhcpd_subnet_sis0_</varname>
        pro klienty za rozhranním <code>sis0</code> a
        <varname>dhcpd_subnet_sis1_</varname> pro klienty za rozhranním
        <code>sis1</code>. Každému z nich je potřeba nastavit adresu sítě
        (<varname>address</varname>) a její masku
        (<varname>netmask</varname>), defaultní bránu
        (<varname>gateway</varname>), začátek (<varname>range_start</varname>)
        a konec (<varname>range_end</varname>) rozsahu, ze kterého jsou
        přidělovány adresy klientům.</para>

        <para>Náleduje příklad konfigurace:</para>

        <para></para>

        <example>
          <title>Příklad konfigurace DHCP serveru</title>

          <blockquote>
            <para>dhcpd_enable="YES"</para>

            <para>dhcpd_ifaces="vlan100"</para>

            <para>dhcpd_domain_name="idc.cz"</para>

            <para>dhcpd_domain_name_servers="192.168.1.1"</para>

            <para></para>

            <para>dhcpd_subnet_vlan100_address="192.168.1.0"</para>

            <para>dhcpd_subnet_vlan100_netmask="255.255.255.0"</para>

            <para>dhcpd_subnet_vlan100_gateway="192.168.1.1"</para>

            <para>dhcpd_subnet_vlan100_range_start="192.168.1.100"</para>

            <para>dhcpd_subnet_vlan100_range_end="192.168.1.200"</para>

            <para></para>

            <para>dhcpd_host_1_hostname="notebook"</para>

            <para>dhcpd_host_1_hw="00:02:3f:48:5d:15"</para>

            <para>dhcpd_host_1_ip="192.168.1.35"</para>
          </blockquote>

          <para></para>
        </example>

        <para></para>
      </section>

      <section>
        <title>WiBSD-2 s podporou sdílených sítí</title>

        <para>Ve WiBSD-2 s podporou sdílených sítí funguje nastavení velice
        podobně jako ve WiBSD-1. Pouze s tím rozdílem ze se
        <varname>dhcpd_ifaces</varname> nechává prázdné a používá se místo
        toho <varname>dhcpd_subnets</varname>. (Toto má pouze estetický
        význam, ve skutečnosti se může používat jedno nebo druhé
        ekvivalentně).</para>

        <para>Do <varname>dhcpd_subnets</varname> se nevkládají názvy
        rozhranní ale jakékoliv identifikátory, kterými se potom odkazujeme
        stejně jako v předchozích verzích WiBSD-1.</para>

        <para>Navíc se u každého jednoho nastavení sítě musí proměnnou
        <varname>dhcpd_subnet_sit1_iface</varname> určit na jaké rozhranní se
        má navázat. Část konfigurace může vypadat třeba takto:</para>

        <para><example>
            <title>Konfigurace sdílené sitě v DHCP serveru</title>

            <blockquote>
              <para>dhcpd_subnets="sit1"</para>

              <para></para>

              <para>dhcpd_subnet_sit1_address="192.168.1.0"</para>

              <para>dhcpd_subnet_sit1_netmask="255.255.255.0"</para>

              <para>dhcpd_subnet_sit1_gateway="192.168.1.1"</para>

              <para>dhcpd_subnet_sit1_range_start="192.168.1.100"</para>

              <para>dhcpd_subnet_sit1_range_end="192.168.1.200"</para>

              <para></para>

              <para>dhcpd_subnet_sit1_iface="wi0"</para>
            </blockquote>
          </example></para>

        <para>Výhodou je, že nyní může být více sítím přiřazeno jedno
        rozhranní.</para>
      </section>
    </section>

    <section>
      <title>Nastavení SNMP serveru</title>

      <para>SNMP je zkratka pro Simple Network Management Protokol, protokol
      pro jednoduchou správu sítě a síťových zařízení. Umožnuje vzdáleně,
      pomocí vhodného klienta, získávat informace o stavu serveru a jeho
      prostředků, jako je aktuální vytížení, zaplnění disku, paměti a
      podobně.</para>

      <para>Některé hodnoty lze také nastavovat a tím chování vzdáleného
      systému ovlivňovat.</para>

      <para>Pro detailnější popis programů a protokolů navštivte stránky
      <ulink
      url="http://net-snmp.sourceforge.net">http://net-snmp.sourceforge.net</ulink>.</para>

      <para>Pro spuštění SMNP serveru po startu systému je potřeba nastavit
      proměnnou <varname>net_smtpd_enable</varname><code>="YES"</code>.</para>

      <para></para>

      <section>
        <title>Předpřipravená konfigurace</title>

        <para>Konfigurace smnp je jedna z mnoha, která dovoluje si místo
        generování konfiguračního souboru po startu, vytvořit vlastní, ten
        uložit na flash kartu.</para>

        <para>K tomu je potřeba správně nastavit
        <varname>net_smtpd_config_file</varname> na úplnou cestu k souboru.
        Pokud se jmenuje <filename>smtpd.conf</filename> a je uložen přímo na
        flash kartě v adresáři wibsd, tak cesta bude
        <filename>/mnt/flashcard/wibsd/smptd.conf</filename>.</para>

        <para>Proměnná
        <varname>net_smtpd_generate_config_file</varname><code>="NO"</code>
        zajistí, že se tento soubor po startu nepřepíše, ale bude se používat
        tak, jako kdyby byl právě vygenerován.</para>

        <para>Díky tomu je možné používat nastavení, která nejsou generujícím
        algoritmem WiBSD zatím podporována. Pokud nějaké takové speciální
        nastavení používáte, dejte nám vědět skrze náš mailling list.</para>

        <para></para>
      </section>

      <section>
        <title>Standardní konfigurace SNMP</title>

        <section>
          <title>Informace o systému</title>

          <para>Pokud chcete, můžete nastavit proměnné informující smnp
          klienta o serveru. Jsou to <varname>net_snmpd_syscontact</varname>,
          <varname>net_snmpd_syslocation</varname> a
          <varname>net_snmpd_sysservices</varname>. Jejich názvy jsou
          samovysvětlující. Pokud je nevyplníte, nebudou použity.</para>
        </section>

        <section>
          <title>Zabezpečení</title>

          <para>Protokol SNMPv2 nepodoruje šifrování, ale oproti verzi 1
          podporuje alespoň základní autentizaci a povolení přístupu pouze po
          některé adresy.</para>

          <para>Jsou zde dva způsoby přístupu k SNMP serveru, jeden je pouze
          pro čtení a může mít vlastní heslo a adresy ze kterých je povolen
          přístup, a druhy je pro čtení i zápis, kde můžeme přiřadit jiné
          heslo i adresy.</para>

          <para>Heslo pro přístup pouze pro čtení se nastavuje proměnnou
          <varname>net_snmpd_rocommunity</varname> a adresy, odkud lze
          přistupovat se oddělují mezerou v proměnné
          <varname>net_snmpd_rocommunity_permit_from</varname>. Podobně pro
          přístup pro čtení i zápis se nastavuje heslo v
          <varname>net_snmpd_rwcommunity</varname> a adresy v
          <varname>net_snmpd_rwcommunity_permit_from</varname>.</para>
        </section>

        <section>
          <title>Vytížení systému</title>

          <para>Pokud chcete sledovat vytížení systému, nadefinujte proměnnou
          <varname>net_snmpd_load</varname>, její hodnota je jedno, dvě nebo
          tři čísla, specifikující maximální možné vytížení za každou poslední
          jednu minutu, pět minut a patnáct minut. Pokud vytížení překročí
          tyto hodnoty, bude nastavená proměnná SNMP
          <varname>laErrorFlag</varname> na <code>1</code>.</para>

          <para>Pokud nechcete, tak nemusíte vkládat limity pro pět a patnáct
          minut. Jednominutový limit je však nezbytný. Pokud se nenastaví
          límit pro patnáctiminutový průměr, použite se limit pro pěti
          minutový průměr. Pokud ani ten není nastavený, použije se limit pro
          jednominutový průměr.</para>

          <para>Pokud nechcete tuto možnost využívat, nastavte proměnnou
          <varname>net_snmpd_load</varname> na prázdný řetězec nebo ji
          nenastavujte vůbec.</para>
        </section>

        <section>
          <title>Vyžití diskové kapacity</title>

          <para>Pro sledování zaplnění disků, musíte do proměnné
          <varname>net_snmpd_disks</varname> vložit libovolné vlastní
          identifikátory disků, které chcete sledovat. Pro každý takovýto
          identifikátor potom vložte jeho konfiguraci do proměnné
          <varname>net_snmpd_disk_identifikator</varname>.</para>

          <para>Konfigurace se skládá z jednoho povinného a jednoho
          volitelného parametru. První, povinný, je cesta k adresáři, kde je
          připojen kořenový oddíl disku, to je adresář který používáte jako
          parametr pro příkaz <command>mount</command> a který se po zadání
          příkazu <command>mount</command> bez parametrů také vypíše.</para>

          <para>Druhý parametr je minimální velikost volného místa na disku
          buď v Kb nebo v procentech velikosti disku. Pokud volné místo klesne
          pod tuto hodnotu, bude nastavena proměnná SNMP
          <varname>dskErrorFlag</varname> na <code>1</code>.</para>
        </section>
      </section>
    </section>

    <section>
      <title>Nastavení PPTP serveru</title>

      <para>WiBSD může být serverem PPTP (point-to-point tunneling protokol od
      Microsoftu).</para>

      <para>Jeho používání se aktivuje nastavením proměnné
      pptpd_enable="YES"</para>

      <para>Konfigurace může být buď generována při startu nebo může být
      použit předpřipravený konfigurační soubor.</para>

      <section>
        <title>Generování konfigurace</title>

        <para>Protože má PPTP server mnoho různých možností konfigurace a
        většinou je použita syntaxe "příkaz hodnota", tak se od toho odvíjí i
        způsob konfigurace.</para>

        <para>Všechny příkazy, které chcete používat vložte oddělené mezerami
        do proměnné <varname>pptpd_conf_commands</varname>. Dále pro každý
        příkaz použijte proměnnou
        <varname>pptpd_conf_command_příkaz</varname>, která bude obsahovat
        jeho hodnotu.</para>

        <para>Pokud příkaz neočekává žádnou hodnotu, nemusíte proměnnou s
        hodnotou vůbec použít. Do <filename>pptpd.conf</filename> bude vložen
        příkaz bez hodnoty automaticky.</para>

        <para>Například následující konfigurace v
        <filename>/etc/rc.conf</filename>:</para>

        <para></para>

        <example>
          <title>Konfigurace PPTPd</title>

          <blockquote>
            <para>pptpd_enable="YES"</para>

            <para>pptpd_conf_commands="option localip remoteip pidfile
            noipparam"</para>

            <para>pptpd_conf_command_remoteip="10.44.44.65-126"</para>

            <para>pptpd_conf_command_option="/etc/ppp/ppp.conf"</para>

            <para>pptpd_conf_command_localip="9.9.9.1"</para>

            <para>pptpd_conf_command_pidfile="/var/run/pptpd.pid"</para>
          </blockquote>

          <para>vygeneruje následující
          <filename>/usr/local/etc/pptpd.conf</filename></para>
        </example>

        <example>
          <title>Vygenerovaný pptpd.conf</title>

          <blockquote>
            <para>option /etc/ppp/ppp.conf</para>

            <para>localip 9.9.9.1</para>

            <para>remoteip 10.44.44.65-126</para>

            <para>pidfile /var/run/pptpd.pid</para>

            <para>noipparam</para>
          </blockquote>

          <para></para>
        </example>

        <para></para>
      </section>

      <section>
        <title>Předpřipravený konfigurační soubor</title>

        <para>Použití předpřipraveného konfiguračního souboru se aktivuje
        nadefinováním proměnné
        <varname>pptpd_generate_config_file</varname><code>="NO"</code> a
        nastavením cesty ke konfiguračnímu souboru do proměnné
        <varname>pptp_config_file</varname>.</para>
      </section>
    </section>

    <section>
      <title>Nastavení DNS serveru</title>

      <para>WiBSD používá BIND (Berkeley Internet Name Domain, <ulink
      url="http://www.isc.org/index.pl?/sw/bind/">http://www.isc.org/index.pl?/sw/bind/</ulink>),
      který implementuje DNS protokoly.</para>

      <para>Ve WiBSD je BIND možné používat buďto v caching-only nebo primary
      módu.</para>

      <para>Jeho používaní se aktivuje proměnnou
      <varname>bind9_enable</varname><code>="YES"</code></para>

      <section>
        <title>Předpřipravená konfigurace</title>

        <para>Opět je možno, místo generování konfigurace skripty WiBSD po
        startu, použít předpřipravený konfigurační soubor. Tuto možnost
        aktivujete definováním proměnné
        <varname>bind9_generate_config_file</varname><code>="NO"</code> a
        vložením úplné cesty ke konfiguračnímu souboru do
        <varname>bind9_config</varname>.</para>
      </section>

      <section>
        <title>Cachovací mód</title>

        <para>Cachovací mód nebo-li caching only nameserver je určen pro sítě,
        které nechtějí mít jmenný server přímo přístupný zvenčí a nepotřebují
        na něm provozovat primární nebo sekundární DNS server.</para>

        <para>Je určen pro sítě, které potřebují mít DNS server pro své
        klienty, který je umístěn před WAN spojením k poskytovateli Internetu
        a funguje podobně jako proxy server pro HTTP.</para>

        <para>Klient se tohoto serveru zeptá na IP adresu pro doménu
        www.example.com a server, pokud ji nezná, tak se zeptá
        předdefinovaného nadřazeného DNS serveru, vrátí klientovi odpověd,
        kterou si ale také u sebe uloží. Pokud se následně zeptá jiný klient
        na stejnou adresu, tak už server neposílá dotaz dále nadřazenému
        serveru, ale protože ji už má v paměti, tak dotaz zodpoví sám a tím
        šetří WAN linku.</para>

        <para>Nastavení cachovacího serveru se provádí proměnnou
        <varname>bind9_forward_only</varname><code>="YES"</code> a nastavením
        nadřazených DNS serverů do proměnné
        <varname>bind9_forwarders</varname>.</para>

        <important>
          <para>V proměnné <varname>bind9_forwarders</varname> může být více
          nadřazených serverů, které ale musí být odděleny středníkem, nikoliv
          mezerou, jak je obvyklé.</para>
        </important>
      </section>

      <section>
        <title>Primární nameserver</title>

        <para>DNS servery, které udržují hlavní záznamy o svých doménách se
        nazývají primární nebo autoritativní pro dannou doménu. Pokud se někdo
        jiný v ostatních sítích (a celém Internetu, pokud je tam server
        připojen) zeptá na předklad nějakého doménového jména domény, pro
        kterou je autoritativní, tak posledním krokem bude dotaz na váš
        autoritativní server (pokud se někde na cestě nepoužívá cachovací
        nameserver nebo něco podobného, viz. výše).</para>

        <para>Pro použití primární nameserveru je potřeba nastavit
        <varname>bind9_forward_only</varname><code>="NO"</code> a pro každou
        doménu, kterou chcete obsluhovat je potřeba vygenerovat takzvanou
        zónu.</para>

        <para>Pokud nechcete aby nameserver naslouchal na všech rozhranních,
        vložte adresy, kde má naslouchat do proměnné
        <varname>bind9_listen_on</varname>. Pokud jich je více, nezapomeňte je
        oddělit středníkem.</para>

        <section>
          <title>Vytváření zón</title>

          <para>Nejprve se v <varname>bind9_zones</varname> nadefinují
          identifikátory všech zón, které chcete používat, oddělené mezerou.
          Pro každou zónu se používá prefix
          <varname>bind9_zone_identifikátor_*</varname>.</para>

          <para>Jméno domény se nastavuje do proměnné
          <varname>domain</varname>, tj. pro identifikator wibsd se proměnná
          jmenuje
          <varname>bind9_zone_wibsd_domain</varname><code>="wibsd.cz"</code>.</para>

          <section>
            <title>SOA záznamy</title>

            <para>Ze SOA (Start Of Authority) záznamu je nezbytné vyplnit
            pouze <varname>bind9_zone_identifikátor_serial</varname>, pokud
            neplníte ostatní, dosadí se standardní hodnoty. Jména proměnných
            pro SOA záznamy jsou následující (na pomlčkou je defaultní
            hodnota):</para>

            <para><varname>bind9_zone_identifikátor_refresh</varname> -
            3600</para>

            <para><varname>bind9_zone_identifikátor_retry</varname> -
            900</para>

            <para><varname>bind9_zone_identifikátor_expire</varname> -
            3600000</para>

            <para><varname>bind9_zone_identifikátor_minimum</varname> -
            3600</para>

            <para><varname>bind9_zone_identifikátor_nameserver</varname> -
            ns.{domain}</para>

            <para><varname>bind9_zone_identifikátor_email</varname> -
            root@{domain}</para>
          </section>

          <section>
            <title>Ostatní záznamy</title>

            <para>Pro všechny ostatní záznamy se nejprve musí vložit jejich
            identifikátory do proměnné
            <varname>bind9_zone_identifikátorZóny_records</varname>. Pro každý
            takový identifikátor záznamu se musí vložit hodnota do tří dalších
            proměnných, a to <varname>name</varname>, <varname>type</varname>,
            <varname>address</varname>. Jsou to ekvivaleny jednoho řádku ze
            zónového souboru.</para>

            <para><varname>bind9_zone_identifikátorZóny_record_identifikátorZáznamu_name</varname>
            je jméno počítače v doméně</para>

            <para><varname>bind9_zone_identifikátorZóny_record_identifikátorZáznamu_type</varname>
            je typ záznamu (standardní záznamy jako A, NS, ..., u MX záznamu
            je součástí této proměnné mezera a číslo udávající priority
            mailserveru)</para>

            <para><varname>bind9_zone_identifikátorZóny_record_identifikátorZáznamu_address</varname>
            je ip adresa počítače</para>

            <para>Pokud chcete používat reverzní záznamy (PTR), je nutné si
            význam proměnných otočit.</para>
          </section>
        </section>

        <para>
          <example>
            <title>Konfigurace primárního nameserveru</title>

            <blockquote>
              <para>bind9_enable="YES"</para>

              <para>bind9_listen_on=""</para>

              <para>bind9_forward_only="NO"</para>

              <para>bind9_zones="wibsd"</para>

              <para>bind9_zone_wibsd_domain="wibsd.cz"</para>

              <para>bind9_zone_wibsd_serial="2006012001"</para>

              <para>bind9_zone_wibsd_refresh="3600"</para>

              <para>bind9_zone_wibsd_retry="900"</para>

              <para>bind9_zone_wibsd_expire="3600000"</para>

              <para>bind9_zone_wibsd_minimum="3600"</para>

              <para>bind9_zone_wibsd_nameserver="server.wibsd.cz"</para>

              <para>bind9_zone_wibsd_email="root@wibsd.cz"</para>

              <para>bind9_zone_wibsd_records="nameserver server mail"</para>

              <para>bind9_zone_wibsd_record_nameserver_name=""</para>

              <para>bind9_zone_wibsd_record_nameserver_type="NS"</para>

              <para>bind9_zone_wibsd_record_nameserver_address="server.wibsd.cz."</para>

              <para>bind9_zone_wibsd_record_server_name="server"</para>

              <para>bind9_zone_wibsd_record_server_type="A"</para>

              <para>bind9_zone_wibsd_record_server_address="192.168.1.1"</para>

              <para>bind9_zone_wibsd_record_mail_name="@"</para>

              <para>bind9_zone_wibsd_record_mail_type="MX 10"</para>

              <para>bind9_zone_wibsd_record_mail_address="server"</para>
            </blockquote>
          </example>
        </para>
      </section>
    </section>

    <section>
      <title>Nastavení zálohování konfiguračních souborů</title>

      <para>Ve WiBSD je možné v <filename>/etc/rc.conf</filename> určit
      soubory, které budou pravidelně (např. každou půlnoc) zálohovány na
      vzdálený TFTP (trivial file transfer protocol) server.</para>

      <para>Spolu s tím, že WiBSD používá větsinou pouze jeden konfigurační
      soubor, představuje vzdálené zálohování jednoduchý způsob
      znovuzprovoznění boxu, v případě havárie.</para>

      <para>V <filename>/etc/rc.conf</filename> musíte nadefinovat ip adresu
      serveru - <varname>backup_tftp_server_ip</varname>, adreář na TFTP
      serveru, kam má soubory ukládat -
      <varname>backup_tftp_server_directory</varname>, a soubory, které chcete
      zálohovat - <varname>backup_tftp_files</varname> - oddělené
      mezerou.</para>

      <note>
        <para>Je vhodné mít vzdálený TFTP server nakonfigurovaný tak, aby v
        něm nikdo nemohl soubory číst ani mazat, povolte pouze přepisování
        existujích souborů, což je defaultní konfigurace vetšiny TFTP
        serverů.</para>
      </note>

      <para>Pokud změníte nějaký soubor, který máte nastavený k zálohování,
      spusťte skript <command>/usr/sbin/save_config</command>, který provede
      zálohování okamžitě. Pokud se o to nechcete starat, vložte si do
      <filename>/etc/rc.conf</filename> následující řádky, které spustí
      <command>/usr/sbin/save_config</command> každou půlnoc
      automaticky.</para>

      <para></para>

      <example>
        <title>Automatické zálohování konfigurace každou půlnoc</title>

        <blockquote>
          <para>crontab_lines="$crontab_lines saveconfig"</para>

          <para>crontab_line_saveconfig_comment="save our config files every
          night"</para>

          <para>crontab_line_saveconfig="0 0 * * * root
          /usr/sbin/save_config"</para>
        </blockquote>

        <para></para>
      </example>
    </section>
  </chapter>

  <chapter>
    <title>Pokročilá konfigurace</title>

    <para></para>

    <section>
      <title>Nastavení firewallu</title>

      <para>WiBSD zatím používá jako firewall ipfw, ale do budoucna se plánuje
      možnost používat i pf (portovaný z OpenBSD) s tim, že současný způsob
      konfigurace zůstane zachován.</para>

      <para>Pro aktivování firewallu je potřeba nastavit proměnnou
      <varname>fw_enable</varname><code>="YES"</code> a
      f<varname>w_type</varname><code>="ipfw"</code>.</para>

      <para>Do proměnné <varname>fw_wan_interface</varname> se vloží název
      rozhranní, kterým je router připojen k Internetu.</para>

      <para>Pokud chcete provádět překlad neveřejných adres, musíte nastavit
      <varname>natd_enable</varname><code>="YES"</code> a do
      <varname>natd_interface</varname> vložit rozhranní nad kterých chcete
      provádět překlad (tj. to rozhranní, vedoucí do Internetu, větsinou to
      stejné jako <varname>fw_wan_interface</varname>).</para>

      <para></para>

      <section>
        <title>Firewall bez pravidel</title>

        <para>Pokud neuvedete žádná další pravidla, ale ponecháte pouze
        základní nastavení (<varname>fw_enable</varname> a
        <varname>fw_type</varname>), vygenerují se následují pravidla. Pro
        názornost vynecháváme pravidla "count" která pouze počítají, kolik dat
        danou větví proteklo.</para>

        <para></para>

        <para></para>

        <example>
          <title>Firewall bez pravidel</title>

          <blockquote>
            <para>00100 allow ip from any to any via lo0</para>

            <para>00120 deny ip from any to 127.0.0.0/8</para>

            <para>00140 deny ip from 127.0.0.0/8 to any</para>

            <para>#</para>

            <para>02000 skipto 55000 tcp from any to me setup</para>

            <para>02020 skipto 55000 udp from any to me dst-port 0-1023</para>

            <para>#</para>

            <para>50000 allow icmp from me to any</para>

            <para>50020 allow icmp from any to me</para>

            <para>#</para>

            <para>65500 deny ip from any to any</para>

            <para>65535 allow ip from any to any</para>
          </blockquote>

          <para></para>
        </example>

        <para>První část provádí takzvaný antispoofing, tj. povolí všechen
        provoz na vnitřním rozhranní <interface>lo0</interface> (zpětná
        smyčka), ale zakáže adresy které patří na toto vnitřní rozhranní ale
        přišly z jiného rozhranní.</para>

        <para>Druhá čast provádí pouze odskoky do jiné části firewallu, pokud
        přicházi data pro samotný router. Protože je těchto dat minumum,
        nebudeme těmito pravidly zatěžovat každý paket.</para>

        <para>Do "mezery" mezi druhou a třetí částí se budou vkládat pravidla
        pro klienty na vnitřní síti, viz. další sekce.</para>

        <para>Třetí část povoluje veškerý icmp provoz z a na router. Protože
        je ho minumum, jsou tyto pravidla až na samém konci firewallu.</para>

        <para>Poslední částí zakazujeme všechen ostatní provoz, který jsme
        dříve nepovolili. Firewall neobsahuje jako poslední pravidlo
        "<code>65535 deny ip from any to any</code>", protože pokud firewall
        nezapneme, nebo v jeho konfiguraci uděláme nejakou zásadní chybu, tak
        bysme se na box potom nedostali. Tímto si zajistíme, že "<code>65500
        deny ip from any to any</code>" bude přidán až na konci
        inicializačního skriptu a pouze tehdy, pokud vše proběhlo v
        pořádku.</para>

        <para></para>

        <para>Většinou je vhodné definovat ještě proměnnou
        <varname>fw_wan_interface</varname>. Pokud ji nastavíme na
        "<interface>sis0</interface>", způsobí to, že se přidá pravidlo
        "<code>09000 allow ip from any to any via sis0</code>", čímž povolíme
        routeru komunikovat s vnějším světem, ale nepovolujeme tím žádné nové
        spojení na router zvenčí.</para>
      </section>

      <section>
        <title>Překlad adres</title>

        <para>Pokud máte pouze jednu veřejnou adresu na routeru a zbytek
        vnitřní sítě má adresy z privátního rozsahu, budete potřebovat zapnout
        překlad adres, NAT.</para>

        <para>Nastavte proměnnou
        <varname>natd_enable</varname><code>="YES"</code> a do
        <varname>natd_interface</varname> vložte rozhranní, které vás
        připojuje k síti WAN (větsinou k Internetu).</para>

        <para>Tímto se do firewallu automaticky vygeneruje pravidlo
        "<code>08000 divert natd ip from any to any via sis0</code>", pokud je
        <varname>natd_interface</varname><code>="sis0"</code> a spustí se
        program <command>natd</command>, který překlad provádí.</para>

        <para></para>

        <para>Po úpravě proměnných podle této a předchozí sekce, vypadají
        pravidla firewallu následovně:</para>

        <para></para>

        <para></para>

        <para></para>

        <example>
          <title>Firewall s předkladem adres a WAN interface</title>

          <blockquote>
            <para>00100 allow ip from any to any via lo0</para>

            <para>00120 deny ip from any to 127.0.0.0/8</para>

            <para>00140 deny ip from 127.0.0.0/8 to any</para>

            <para>#</para>

            <para>02000 skipto 55000 tcp from any to me setup</para>

            <para>02020 skipto 55000 udp from any to me dst-port 0-1023</para>

            <para>#</para>

            <para>08000 divert 8668 ip from any to any via sis0</para>

            <para>09000 allow ip from any to any via sis0</para>

            <para>#</para>

            <para>50000 allow icmp from me to any</para>

            <para>50020 allow icmp from any to me</para>

            <para>#</para>

            <para>65500 deny ip from any to any</para>

            <para>65535 allow ip from any to any</para>
          </blockquote>

          <para></para>
        </example>

        <para>Tím máme velice základní ale plně funkční konfiguraci firewallu,
        která dovoluje routeru inicializovat komunikaci s okolím, překládá
        adresy vnitřní sítě na veřejnou adresu, routuje je dále a posílá zpět
        odpovědi.</para>

        <para></para>
      </section>

      <section>
        <title>Povolení spojení na router</title>

        <para>Dosavadní konfigurace je sice funkční v tom smyslu, že všechny
        počítače z vnitřní sítě mají neomezený přístup do Internetu, ale pokud
        bychom se chtěli vzdáleně na router přihlásit a upravovat konfiguraci,
        nebo bychom chtěli některé porty routeru zpřístupnit z ostatních
        počítačů, tak to firewall nepovolí.</para>

        <para>Proto pro povolení spojení na router, vložte do proměnné
        <varname>fw_allowed_access</varname> identifikátory služeb které
        chcete povolit, a pro každou takovou služby vložte do proměnné
        <varname>fw_allowed_sluzna_access</varname> blok ve formátu
        "<code>zdrojova_adresa_1
        zdrojova_adresa_2:protokol:cislo_portu:dalsi_vlastnosti:povolit_jen_pres_wan:</code>"</para>

        <para>Zdrojových adres může být libovolný počet a jsou odděleny
        mezerou. Pokud chcete zadat celou síť, zadejte ji ve formátu
        síť/maska.</para>

        <para>Protokol může být pouze <code>tcp, udp, gre</code>.</para>

        <para>Další vlastnosti jsou například <code>keep-state, setup</code> a
        všechny ty, které se mohou na tomto místě ve firewallu
        používat.</para>

        <para>Libovolná hodnota v dalším poli způsobí, že toto pravidlo bude
        aplikováno pouze na rozhranní WAN (tj. nepůjde se připojit z vnitřních
        sítí).</para>

        <para>Následuje příklad povolení ssh pouze z důvěryhodných adres
        1.2.3.4 a 11.12.13.14, a webu odevšad.</para>

        <para></para>

        <para><example>
            <title>Povolení spojení na ssh a web</title>

            <blockquote>
              <para>fw_allowed_access="ssh http"</para>

              <para>fw_allowed_ssh_access="1.2.3.4
              11.12.13.14:tcp:22:keep-state::"</para>

              <para>fw_allowed_http_access="any:tcp:80:keep-state::"</para>
            </blockquote>
          </example></para>

        <para></para>
      </section>

      <section>
        <title>Omezovaní klientů</title>

        <para>Někdy je potřeba omezit na jaké adresy a/nebo porty mají mít
        klienti ze svých počítačů přístup, a pokud mají veřejnou IP adresu,
        tak i ze kterých počítačů je přístup na klienty. Tato sekce se však
        nezabývá omezovaním rychlosti, to je popsáno v další sekci.</para>

        <para>Klienti se dělí na ty, kteří mají veřejnou IP adresu a jsou
        přístupní z Internetu a na ty, kteří mají adresu z privátního rozsahu
        a přístup na Internet je pro ně řešen překladem adres na routeru, a z
        Internetu se na ně není možné připojit.</para>

        <para>Pro jejich omezování se používají proměnné
        <varname>fw_private_client_blocks</varname> a
        <varname>fw_public_client_blocks</varname>, jediný rozdíl mezi nimi je
        v tom, že adresy z <varname>fw_public_client_blocks</varname>
        "přeskočí" pravidlo "<code>divert natd</code>", tj. jejich adresy se
        nepřeloží na vnější adresu routeru.</para>

        <para>Pokud s veřejnými adresami opravdu chcete zacházet jako s
        veřejnými, je potřeba je minimálně vložit přímo do
        <varname>fw_public_client_blocks</varname> oddělené mezerou (můžete i
        vložit celou síť ve formátu síť/maska). Tím povolíte veškerou
        komunikaci na veřejných adresách.</para>

        <para>Pokud chcete explicitně povolit komunikaci z privátních adres do
        Internetu, vložte je stejně jako veřejné adresy, ale tentokrát do
        proměnné <varname>fw_private_client_blocks</varname>.</para>

        <para>Někdy je však potřeba zakázat (popř. povolit) spojení jen na
        určité služby. Syntaxe je stejná pro
        <varname>fw_public_client_blocks</varname> i pro
        <varname>fw_private_client_blocks</varname>. Pouze u
        <varname>fw_private_client_blocks</varname> nemá valný smysl vytvářet
        "in" omezení pro spojení přicházející z Internetu, protože takováto
        spojení díky překladu adres skončí na routeru a dál se nedostanou.
        Taková pravidla potom budou platit jen pro počítače z přímo
        připojených vnitřních sítí.</para>

        <para>Pro takovéto případy jsou vytvořeny takzvané "feature bloky", to
        jsou pojmenované bloky, jejichž jména se do
        <varname>fw_public_client_blocks</varname> a
        <varname>fw_private_client_blocks</varname> vkládají místo IP adres
        (nebo sítí) a samotné bloky jsou definovány dalšími proměnnými.</para>

        <para>Pokud chcete vytvořit feature blok, vytvořte proměnnou
        <varname>fw_block_jmenoBloku</varname>. Jméno bloku nesmí začínat
        číslem ani obsahovat podtržítka. Jako obsah vložte adresu počítače
        nebo sítě (Případně více adres oddělených čárkou). Dále je potřeba
        vytvořit proměnnou jejíž jméno začíná
        <varname>fw_block_jmenoBloku</varname> a pokračuje podle toho, k čemu
        chcete omezit přístup a její obsah je adresa nebo síť, které chcete
        přístup omezit.</para>

        <para>Například pro zakázání přístupu protokolem tcp z adresy 10.0.0.1
        na adresu 1.2.3.4, požijte následujíci feature blok.</para>

        <para></para>

        <para><example>
            <title>Zakázání přístupu klienta na určitou adresu</title>

            <blockquote>
              <para>fw_private_client_blocks="klient1"</para>

              <para>fw_block_klient1="1.2.3.4"</para>

              <para>fw_block_klient1_deny_tcp_in_access_limited_to="10.0.0.1"</para>
            </blockquote>
          </example>Pokud si přejete zakázat pouze některé porty, nadefinujte
        je v proměnné <varname>fw_block_klient1_ports</varname><code>="80,
        8080"</code>. Toto vygeneruje následující pravidlo pro firewall
        "<code>10020 deny tcp from 10.0.0.1 to 1.2.3.4 dst-port 80,
        8080</code>".</para>

        <para>Jestli chcete zaměnit <code>allow</code> za <code>deny</code>,
        proveďte to i v názvu proměnné, stejně tak i pro záměnu
        <code>tcp</code> za jiný protokol. Pokud zaměníte <code>_in_</code> za
        <code>_out_</code>, obrátí se i směr pravidla ve firewallu, pro
        předchozí proměnnou dostanete záměnou <code>in</code> za
        <code>out</code> toto pravidlo "<code>10020 deny tcp from 1.2.3.4 80,
        8080 to 10.0.0.1</code>".</para>

        <para>Analogicky můžete postupovat pro
        <code>fw_public_client_blocks</code>.</para>

        <para></para>
      </section>

      <section>
        <title>Omezení rychlosti</title>

        <para>Pro každou vnitřní adresu můžeme omezit maximalní rychlost,
        které je schopna dosáhnout.</para>

        <para>Toto se řeší pomocí "pipes" (roury na data), které se musí
        nejprve nadefinovat, jak je jasně vidět na následujícím
        příkladu.</para>

        <example>
          <title>Vytváření pojmenovaných rour</title>

          <blockquote>
            <para>fw_pipes="data telefony"</para>

            <para>fw_pipe_data="512/128"</para>

            <para>fw_pipe_telefony="256/128"</para>

            <para>#</para>

            <para>fw_block_lan1="192.168.0.0/24"</para>

            <para>fw_block_lan1_pipe="data"</para>

            <para>fw_block_lan1_pipe_access_limited_to="any"</para>
          </blockquote>
        </example>

        <para>Tím jsme vytvořili čtyři roury, dvě pro data a dvě pro telefony,
        pro každý směr spojení jednu. Data mají povolenou rychlost downloadu
        512 Kbit/s a uploadu 128 Kbit/s, telefony 256 Kbit/s a 128
        Kbit/s.</para>

        <para></para>

        <para>Nyní je potřeba vybrat packety, které chceme protahovat námi
        vytvořenými rourami. Proto se použijí uplně stejné "feature" bloky
        jako v předchozí sekci, pouze nepoužíváme
        <varname>fw_block_klient1_deny_tcp_in_access_limited_to</varname> ani
        f<varname>w_block_klient1_deny_tcp_in_access_limited_to</varname>, ale
        používáme
        <varname>fw_block_klient1_pipe_tcp_in_access_limited_to</varname>. A k
        dannému feature bloku navíc připojíme jméno roury, do které má
        směrovat, přes proměnnou
        <varname>fw_block_klient1_pipe</varname>.</para>

        <para><important>
            <para>Mějte na paměti, že se takto směrují data pouze do jedné
            roury, podle toho, zda používáme v proměnné
            <varname>_in_</varname> nebo <varname>_out_</varname>. Pokud
            chceme (a to většinou ano) omezit i druhý směr spojení, musíme
            vytvořit stejnou proměnnou s nahrazeným <varname>in</varname> za
            <varname>rout</varname> a obráceně.</para>
          </important></para>

        <para>Následuje příklad pro omezení rychlosti všech packetů z adres
        10.0.0.1, 10.0.0.2, 10.0.0.3, 10.0.0.4 skrz rouru data do Internetu na
        maximální souhrnou rychlost 128 Kbit/s. Předpokládáme natavení rour
        podle předchozího příkladu.</para>

        <para></para>

        <para><example>
            <title>Směrovnání packetů do rour</title>

            <blockquote>
              <para>fw_private_client_blocks="klient1"</para>

              <para>fw_block_klient1="10.0.0.1,10.0.0.2,10.0.0.3,10.0.0.4"</para>

              <para>fw_block_klient1_pipe_ip_out_access_limited_to="any"</para>

              <para>fw_block_klient1_pipe="data"</para>
            </blockquote>
          </example></para>

        <para></para>

        <para></para>
      </section>

      <section>
        <title>Vlastní pravidla</title>

        <para>Pro ipfw lze do <filename>rc.conf</filename> zapsat vlastní
        statická pravidla, která nebudou skripty nijak ovlivňována. Tato
        pravidla však nebudou kompatabilní s tím, pokud budete chtít použít
        jiný firewall (až bude implementován). V takovém případě je budete
        muset přepsat v syntaxi nového firewallu.</para>

        <para>Dále je potřeba dávat pozor, kam dané pravidlo mezi ostatní
        zařadíte, aby mělo žádaný účinek. Nejlepší je napsat celý firewall
        pomocí proměnných WiBSD a pouze problematické části nakonec napsat
        přímo.</para>

        <para>K tomu použijte proměnnou
        <varname>ipfw_fw_static_rules</varname>. Následující příklad zakáže
        veškerý provoz na rozhranní <interface>vr0</interface>.</para>

        <para></para>

        <para><example>
            <title>Vlastní statická pravidla ipfw</title>

            <blockquote>
              <para>ipfw_fw_static_rules="nosis1"</para>

              <para>ipfw_fw_static_rule_nosis1="add 1 deny all from from any
              to any via vr0"</para>
            </blockquote>
          </example></para>
      </section>

      <section>
        <title>Další volby</title>

        <para>Nastavení firewallu lze jemně ladit dalšími proměnnými, viz.
        <filename>/etc/defaults/wibsd.conf</filename>, proměnné začínající
        <varname>fw_</varname>.</para>
      </section>
    </section>

    <section>
      <title>Správa WiFi sítí</title>

      <para></para>

      <para><important>
          <para>Vetšina programů pro pokročilou správu WiFi sítí je až ve
          WiBSD-3</para>
        </important></para>

      <section>
        <title>Prohlížení okolí</title>

        <para>Pro prohlížení okolních access pointů je možné použít příkaz
        <command>stumbler</command> s parameterem jména WiFi rozhraní. Pokud
        nezadáte žádný parametr, použije se <varname>wi0</varname>, pokud
        takové zařízení v systému existuje. Pokud zadané rozhraní není v
        systému, program Vás o tom bude informovat.</para>

        <para><important>
            <para>Během scannování není možné pokračovat v standardní
            komunikaci na použitém rozhranní. Pokud zařízení pracuje v režimu
            AP, nebudou klienti moci komunikovat s okolím.</para>

            <para>Pokud jste na zařízení připojen přes rozhraní, které chcete
            použít ke scannování, bude Vaše spojení přerušeno a budete se
            muset na zařízení připojit jinou cestou nebo přes terminál,
            případně provést jeho resetování.</para>
          </important></para>

        <para></para>
      </section>

      <section>
        <title>Automatické překánálování</title>

        <para>Program <command>rechannel</command> provádí automatickou změnu
        kanálu na nejvhodnější kanál, po prozkoumání okolních access
        pointů.</para>

        <para><note>
            <para>Tato funkcionalita se hodí pouze pro režim hostap.</para>
          </note></para>

        <para>Dokud nezadáte programu rechannel parametr
        <varname>-c</varname>, nebude provádět změnu na nový kanál
        automaticky, ale pouze vypíše jaký kanál je nejlepší pro
        použití</para>

        <para>Pokud chcete vidět i seznam okolních AP s jejich ssid a čísly
        kanálů, použijte parametr <varname>-v</varname>, který ovšem vypisuje
        i další, ne tak důležité, informace. Bez tohoto přepínače vypíše
        <command>rechannel</command> pouze číslo aktuálního používaného
        kanálu, čísla obsazených kanálu a navrhne nejlepší kanál, na který při
        použití <varname>-c</varname> automaticky přepne (pokud již není
        aktuální).</para>

        <para>Parametr, který je vždy potřeba zadat je <varname>-t
        pocet_sekund</varname>, kterým zadáte, jak dlouho má program sbírat
        informace o okolních access pointech. Defaultní hodnota je <varname>-t
        5</varname>, tj. 5 sekund, což je naprosto nedostatečné a slouží pouze
        pro testovací účely. Rozumná hodnota se pohybuje od 30 sekund
        výše.</para>

        <para><important>
            <para>Po tuto dobu nebude pro Váš access point možné obsluhovat
            klienty. Pokud jste připojen přes překanálovávané rozhraní, bude
            po tuto dobu vaše spojení přerušeno. S velkou pravděpodobností
            bude možné po uplnynutí intervalu scannování pokračovat v
            rozdělané práci.</para>
          </important></para>

        <para>Parametr <varname>-h</varname> vypíše podobný návod.</para>

        <para>Pokud chcete provádět překanálování automaticky, můžete spouštet
        <command>rechannel</command> z crontabu. Není ale dobré to provádět
        moc často, protože v této době neplní access point svoji
        funkci.</para>
      </section>
    </section>
  </chapter>

  <chapter>
    <title>The cutting edge</title>

    <section>
      <title>Příprava WiBSD image</title>

      <para>Pro přípravu WiBSD image je potřeba balík skriptů a ostatních
      souborů, které nejsou veřejné.</para>

      <section>
        <title>Plugin systém</title>

        <para>Balík obsahuje adresář plugins ve kterém jsou další adresáře,
        které postupně projdeme:</para>

        <para><filename>_DISTROS</filename>: zde jsou pluginy pro celou
        distribuci, které kopirují pouze nezbytné soubory ze základní
        distribuce FreeBSD to distribuce WiBSD.</para>

        <para><filename>_IMAGES</filename>: pluginy, které mohou například
        vytvářet filesystém pro flash kartu nebo pro cd</para>

        <para><filename>_LIBS</filename>: kopirují knihovny z FreeBSD do
        WiBSD</para>

        <para><filename>_PORTS</filename>: kompilují porty a kopírují nezbytné
        soubory do WiBSD</para>

        <para><filename>ostatní adresáře</filename>: obecné pluginy, které
        upravují různé soubory distribuce WiBSD a přidávají tím další
        funkcionalitu.</para>

        <para></para>

        <para>V každém pluginu může být několik adresářů, které určují další
        práci s pluginem. Protože se může funkcionalita lišit pro různé verze
        WiBSD, je možnost vytvořit podadresáře, jejichž jména určují, pro
        kterou verzi se jejich obsah použije.</para>

        <itemizedlist>
          <listitem>
            <para><filename>all</filename>: pro všechny verze</para>
          </listitem>
        </itemizedlist>

        <itemizedlist>
          <listitem>
            <para><filename>RELENG_4</filename>: pro verze FreeBSD 4.x</para>
          </listitem>
        </itemizedlist>

        <itemizedlist>
          <listitem>
            <para><filename>RELENG_4_8</filename>: pro verzi 4.8</para>
          </listitem>
        </itemizedlist>

        <para>pokud používáte verzi 4.8, aplikují se adresáře
        <filename>all</filename>, <filename>RELENG_4</filename>,
        <filename>RELENG_4_8</filename> v tomto pořadí.</para>

        <para></para>

        <para>Každý plugin může provádět různé akce, podle toho jestli má
        nějaký obsah v následujících podadresářích.</para>

        <para>Adresáře kontrolované před kompilací systému</para>

        <itemizedlist>
          <listitem>
            <para><filename>prespecial</filename>: skripty, které se spustí
            před tím, než začné kompilace</para>
          </listitem>
        </itemizedlist>

        <itemizedlist>
          <listitem>
            <para><filename>patch</filename>: předkompilací "opatchuje"
            zdrojové soubory FreeBSD</para>
          </listitem>
        </itemizedlist>

        <para>Adresáře kontrolované po zkompilování systému</para>

        <itemizedlist>
          <listitem>
            <para><filename>distro</filename>: zkopíruje soubory z FreeBSD do
            WiBSD</para>
          </listitem>
        </itemizedlist>

        <itemizedlist>
          <listitem>
            <para><filename>add</filename>: přidá soubrory z podaresářů do
            stejných adresářů ve WiBSD, přepíše existující</para>
          </listitem>
        </itemizedlist>

        <itemizedlist>
          <listitem>
            <para><filename>conadd</filename>: jako add ale zachová
            exitující</para>
          </listitem>
        </itemizedlist>

        <itemizedlist>
          <listitem>
            <para><filename>append</filename>: přidá obsah souborů v
            podadresářích na konec stejných souboru ve WiBSD</para>
          </listitem>
        </itemizedlist>

        <itemizedlist>
          <listitem>
            <para><filename>postpatch</filename>: umožňuje provádět patchování
            výsledných souborů</para>
          </listitem>
        </itemizedlist>

        <itemizedlist>
          <listitem>
            <para><filename>postspecial</filename>: skripty, které se provedou
            po kompilaci</para>
          </listitem>
        </itemizedlist>
      </section>

      <section>
        <title>Příprava na kompilaci</title>

        <para>V kořenu systému balíků jsou dva důležité soubory</para>

        <para></para>

        <itemizedlist>
          <listitem>
            <para>Makefile: obsahuje cíle, jako jsou</para>

            <itemizedlist>
              <listitem>
                <para><command>buildjail</command>: provádí
                <command>buildworld</command>,
                <command>buildkernel</command></para>
              </listitem>
            </itemizedlist>

            <itemizedlist>
              <listitem>
                <para><command>installjail</command>:
                <command>installworld</command>,
                <command>installkernel</command>,
                <command>distribution</command> (vytvoří soubory v
                <filename>/etc</filename>), <command>copyports</command>
                (zkopíruje porty to chrootu)</para>
              </listitem>
            </itemizedlist>

            <itemizedlist>
              <listitem>
                <para><command>jail</command>: <command>buildjail</command>,
                <command>installjail</command></para>
              </listitem>
            </itemizedlist>

            <itemizedlist>
              <listitem>
                <para><command>fresh-jail</command>: <command>cvsup</command>
                (z cvs vybere zdrojové soubory systému),
                <command>cvsup-ports</command> (z cvs vybere soubory portů),
                <command>preprocess</command> (provede předkompilační akce z
                pluginů), <command>jail</command></para>
              </listitem>
            </itemizedlist>

            <itemizedlist>
              <listitem>
                <para><command>wibsd</command>: sestavuje distribuci wibsd
                podle pluginu</para>
              </listitem>
            </itemizedlist>

            <itemizedlist>
              <listitem>
                <para><command>image</command>: vytvoří image na flash kartu
                nebo CD</para>
              </listitem>
            </itemizedlist>

            <itemizedlist>
              <listitem>
                <para><command>upgrade</command>: vytvoří soubor pro vzdálený
                upgrade</para>
              </listitem>
            </itemizedlist>

            <itemizedlist>
              <listitem>
                <para><command>fresh-image</command>: vytvoří všecho</para>
              </listitem>
            </itemizedlist>
          </listitem>
        </itemizedlist>

        <itemizedlist>
          <listitem>
            <para><filename>Makefile.conf</filename>: konfigurační soubor pro
            výše uvedený <filename>Makefile</filename>, definují se v něm
            sekce, kde každá může používat jiné pluginy a nastavení
            kompilačních adresářů.</para>

            <para>Názvy pluginů, které chcete použít, se vloží do
            proměnných</para>

            <itemizedlist>
              <listitem>
                <para><filename>DISTROPLUGINS</filename>: jména pluginů z
                <filename>_DISTRO</filename> adresáře</para>
              </listitem>
            </itemizedlist>

            <itemizedlist>
              <listitem>
                <para><filename>PORTPLUGINS</filename>: jména pluginů z
                <filename>_PORTS</filename></para>
              </listitem>
            </itemizedlist>

            <itemizedlist>
              <listitem>
                <para><filename>LIBPLUGINS</filename>: z
                <filename>_LIB</filename></para>
              </listitem>
            </itemizedlist>

            <itemizedlist>
              <listitem>
                <para><filename>IMAGEPLUGINS</filename>: z
                <filename>_IMAGE</filename></para>
              </listitem>
            </itemizedlist>

            <itemizedlist>
              <listitem>
                <para><filename>PLUGINS</filename>: obecné pluginy</para>
              </listitem>
            </itemizedlist>

            <itemizedlist>
              <listitem>
                <para><filename>CLEANUPPLUGINS</filename>: obecné pluginy,
                které provádějí závěrečné čistění souborů v distribuci (jako
                strip na binárky apod.)b</para>
              </listitem>
            </itemizedlist>
          </listitem>
        </itemizedlist>
      </section>

      <section>
        <title>Kompilace</title>

        <para>Samotná kompilace se provádí v základním adresáři, kde jsou
        soubory <filename>Makefile</filename> a
        <filename>Makefile.conf</filename> a to zadáním příkazu make
        -DJMÉNO_SEKCE cíl, například následovně</para>

        <para><command>root@vergilius# make -DSMART-ROUTER wibsd
        upgrade</command></para>

        <para>Nad dříve zkompilovaným systémem provede sestavení WiBSD a
        vytvoření souboru pro upgrade.</para>
      </section>

      <section>
        <title>Detailnější dokumentace</title>

        <para>Pro detailnější popis systému portů a celého průběhu kompilace
        je vhodné nahlédnout do souboru <filename>doc/wibsd-doc.txt</filename>
        a hlavně si prohlédnout jednotlivé adresáře balíku, hlavně
        pluginů.</para>
      </section>
    </section>
  </chapter>
</book>