Firestarter - Pokročilé témy

Táto časť obsahuje témy určené pre skúsenejších používateľov. Obsahuje informácie o tom ako program Firestarter funguje vo vnútri.

Firestarter - Zotrvanie firewallu

Často kladenou otázkou je: "V akom stave je firewall, keď nie je spustený program Firestarter?" Odpoveďou je, že to závisí od toho, či ste Firestarter nainštalovali z binárneho balíka ako napríklad RPM alebo Deb. Firewall v takomto prípade je spustený stále (okrem prípadu vytáčaného spojenia) a nesúvisí s grafickým prostredím, dokonca ani po reštarte počítača. V takomto prípade je firewall zaregistrovaný ako systémová služba a môže byť obsluhovaný pomocou štandardných systémových služieb systému Linux a nástrojmi na správu tzv. runlevelov.

Ak ste program Firestarter nainštalovali skompilovaním zo zdrojového kódu a používate jednu z linuxových distribúcií Fedora, Red Hat, SuSE alebo Mandrake, máte možnosť nainštalovať systémový inicializačný skript. Návod nájdete v časti inštalácia. Ostatné distribúcie obsahujú svoje vlastné inicializačné skripty v binárnom balíku programu Firestarter, ak ho poskytujú. Po nainštalovaní a aktivovaní inicializačného skriptu, sa bude firewall spúšťať ako systémová služba.

Ak ste program Firestarter nainštalovali skompilovaním zo zdrojového kódu a nepoužili ste inicializačný skript, firewall je aktívny od momentu, kedy spustíte program Firestarter až do chvíle kedy reštartujete počítač. Pozrite si poznámky o ručnom spúšťaní firewallu zobrazené nižšie.

Okrem vyššie popísaného správania možnosti programu rozširuje aj tzv. DHCP démon. Keď sa sieťové zariadenie nastaví cez službu DHCP, a priradí sa mu IP adresa (buď pri prvom pripojení alebo pri obnovení zapožičania), firewall sa buď spustí alebo obnoví. Všimnite si, že to nastane aj vtedy, keď je firewall zastavený (buď cez program Firestarter alebo cez inicializačný skript). Táto služba je funguje ak používate buď program DHCPD alebo program dhclient (ktoré obsahuje väčšina moderných distribúcií). Keď používate DHCP nie je nevyhnutne nutné mať aj inicializačný skript.

Systémový inicializačný skript

Firestarter obsahuje na správu firewallu inicializačný skript v štýle SysV. Skript poskytuje nasledujúce funkcie:

  • start: spustí firewall.
  • stop: zastaví firewall.
  • restart: reštartuje firewall.
  • locks: uzamkne firewall.
  • status: vypíše stav firewallu.

Stav firewallu si môžeme overiť aj na stránke Stav.

Funkcie je možné spustiť ak ich názov pridáte ako parameter za názov skriptu. Napríklad v distribúcii Red Hat / Mandrake môžete firewall spustiť zadaním príkazu /etc/init.d/firestarter start. Väčšina distribúcií obsahuje aj nástroje ako chkconfig, ktorými sa spravujú skripty služieb. Tieto nástroje umožňujú zmeniť poradie spúšťania skriptov a mnoho ďalších parametrov služieb.

Ručná správa firewallu z príkazového riadka

Program Firestarter akceptuje niekoľko príkazov na riadenie stavu firewallu, ktoré sa zadávajú v príkazovom ako parameter. AK do príkazového riadka zadáme príkaz firestarter --help, zobrazí sa kompletný zoznam možností. Ak ste program inštalovali cez RPM uistite sa, že spúšťate /usr/sbin/firestarter a nie /usr/bin/firestarter, ktorý je len jeho obalom.

Problémy pri vytáčanom pripojení

Firewall sa musí spustiť po tom, ako nadviažete spojenie s poskytovateľom služieb. V sprievodcovi nastavením firewallu programu Firestarter je možnosť automatického štartu firewallu po nadviazaní vytáčaného spojenia. Táto možnosť nefunguje so všetkými vytáčacími programami. Napríklad ak používate aplikáciu kppp, je potrebné aby ste nastavili program tak, aby spustil firewall po nadviazaní spojenia. Kppp obsahuje možnosť spustenia skriptu po nadviazaní spojenia, cez ktorú sa to dá jednoducho urobiť.

Firestarter - Požiadavky na jadro

Firestarter vyžaduje určité podsystémy jadra systému Linux boli v systéme aby mohol správne fungovať. Toto nie je problém v prípade poskytovateľov jadra, pretože jednotlivé distribúcie založené na systéme Linux tieto funkcie poskytujú. Ak si však chcete vytvoriť prispôsobené jadro, potom by vás mala táto časť zaujímať.

Configuring the 2.6 kernel
Obrázok: Odporúčaná konfigurácia Linuxového jadra verzie 2.6

Konfigurácia jadra

Tieto inštrukcie sú určené pre linuxové jadro verzie 2.6. Firestarter 0.9.x dokáže pracovať aj s jadrami verzie 2.4 a staršími, v takom prípade je základná konfigurácia rovnaká, ale nastavovanie jadra v konfigurátore sa môže mierne líšiť. Predpokladáme, že viete ako sa kompiluje jadro, ak potrebujete pomoc, nájdete ju na stránke Kernel Build HOWTO.

Všetky možnosti jadra, ktoré ovplyvňujú program Firestarter sa nachádzajú v ponuke Device Drivers->Networking support. Ako prvé musíme povoliť nastavenie Networking support. Potom v podriadenej ponuke musíme povoliť nastavenia Networking options->Network packet filtering, Network packet filtering. Nakoniec v podriadenej ponuke IP: Netfilter configuration, v ktorej sa nachádza dlhý zoznam modulov Netfilter, máte na výber, či funkcie do jadra začleníte vo forme modulov alebo ich staticky zabudujete do jadra. Odporúčame aby ste funkcie kopilovali ako moduly ak nechcete vytvoriť jadro bez podpory modulov. Použitie modulov šetrí pamäť - ak modul nezapnete zostane viac pamäte voľnej.

Skoršie verzie programu Firestarter (menšie ako 1.0) vypisujú chybové hlásenia do konzoly ak ste skompilovali funkcie do jadra staticky a nie ako moduly. Avšak ak sú všetky funkcie prítomné v jadre, Firestarter bude pracovať správne aj napriek chybovým hláseniam.

Všetky fukcie Netfilter však nie sú portrebné, aj keď mi ich odporúčame povoliť ako moduly, aby ste ich mohli zapnúť, ak ich bude neskoršia verzia programu Firestarter potrebovať, a ak ich povolíte nič sa nestane. Prinajmenšom musia byť povolené funkcie Connection tracking, IP tables, Connection state match support, Connection tracking match support, Packet filtering, Full NAT a LOG target support. Ak program nájde v jadre ďalšie funkcie, môže to rozšíriť funkcionalitu programu Firestarter. Jediné funkcie, ktoré neodporúčame povoliť sú ipchains support a ipfwadm support.

Prehľad potrebných funkcií jadra

  • Device drivers
    • Networking support
      • [y] Networking support
      • Networking options
        • Network packet filtering
          • [y] Network packet filtering
          • IP: Netfilter Configuration (*)
            • [y/m] Connection tracking
            • [y/m] IP tables support
            • [y/m] Connection state match support
            • [y/m] Connection tracking match support
            • [y/m] Packet filtering
            • [y/m] Full NAT
            • [y/m] LOG target support

(*) Odporúčame, aby ste povolili všetko okrem ipchains support a ipfwadm support

Firestarter - VPN siete

Firestarter 1.0 nepodporuje konfiguráciu VPN bez ručného nastavenia. Podpora VPN v programe Firestarter je plánovaná od verzie 1.1.

Ako nastaviť podporu VPN v programe Firestarter 1.0

Skopírujte riadky určené pre vami použité VPN riešenie, ktoré sú vypísané nižšie, a vložte ich do súboru /etc/firestarter/user-pre na počítači kde je spustený firewall. Reštartujte firewall, napríklad spustením príkazu "/etc/firestarter/firewall.sh start", aby sa načítalo nové nastavenie.

Klienti Microsoft VPN

Microsoft VPN je často používané VPN riešenie pre počítače s operačným systémom Microsoft Windows, ktoré je založené na protokole PPTP. Nasledujúce riadky umožnia PPTP klientom z lokálnej siete spravovanej programom Firestarter pripojenie k vzdialenému serveru:

# Presmerovanie PPTP VPN komunikácie klientom
$IPT -A FORWARD -i $IF -o $INIF -p tcp --dport 1723 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $IF -o $INIF -p 47 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $INIF -o $IF -p 47 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

Server pre Microsoft VPN

Ak chcete prevádzkovať  PPTP VPN server na stanici vo vnútornej sieti a umožniť vzdialeným klientom, aby sa k nemu pripojili, firewall musí presmerovať požiadavky na tento server:

# Presmerovanie PPTP VPN pripojení na vnútorný server
SERVER=192.168.0.100 # Adresa VPN servera vo vnútornej sieti

$IPT -A FORWARD -i $IF -o $INIF -p tcp --dport 1723 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -t nat -A PREROUTING -i $IF -p tcp --dport 1723 -j DNAT --to $SERVER
$IPT -A FORWARD -i $IF -o $INIF -p 47 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -t nat -A PREROUTING -i $IF -p 47 -j DNAT --to $SERVER

Všimnite si, že musíte zmeniť nastavenie premennej SERVER z hodnoty 192.168.0.100 na aktuálnu IP adresu vášho VPN servera.

OpenVPN

OpenVPN je jednoduché viacplatformové VPN riešenie, ktoré má otvorený zdrojový kód. Ak chcete OpenVPN použiť na počítači, na ktorom je spustený Firestarter, komunikácia musí byť povolená na aj z virtuálneho rozhrania OpenVPN pomocou nasledujúcich riadkov:

# Povolí komunikáciu na OpenVPN rozhraní
$IPT -A INPUT -i tun+ -j ACCEPT
$IPT -A OUTPUT -o tun+ -j ACCEPT

OpenVPN nevyžaduje žiadnu ďalšiu konfiguráciu ak ho používate v lokálnej sieti.

Cisco VPN a klienti Nortel Contivity

Cisco, Nortel a ostatné IPSec VPN riešenia vyžadujú nasledujúce nastavenie:

# Presmerovanie komunikácie Cisco VPN klientom
$IPT -A FORWARD -i $IF -o $INIF -p udp --dport 500 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $IF -o $INIF -p tcp --dport 500 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $IF -o $INIF -p 50 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $INIF -o $IF -p 50 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

Firestarter 1.0 spolupracuje s klientmi Cisco VPN bez akejkoľvek konfigurácie ak je na klientskej strane povolený tzv. Transparent Tunnelling (priesvitný tunel). V tomto režime klienti budú vkladať IPSec komunikáciu buď do TCP alebo do UDP paketov, čo je program Firestarter schopný akceptovať bez akejkoľvek ďalšej formy komunikácie.

Tunelling však nie je vždy možný, závisí to od verzie klienta aj od možností vzdialeného servera. V takom prípade je potrebné použiť predchádzajúce nastavenie.