abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 17:11 | Nová verze

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

    Ladislav Hagara | Komentářů: 2
    včera 13:33 | Nová verze

    Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.

    Pavel Křivánek | Komentářů: 7
    včera 04:55 | Zajímavý software

    Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.

    Ladislav Hagara | Komentářů: 35
    25.4. 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 13
    25.4. 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 3
    25.4. 13:22 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    25.4. 12:44 | Nová verze

    Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).

    Ladislav Hagara | Komentářů: 0
    25.4. 04:55 | Nová verze

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

    Ladislav Hagara | Komentářů: 0
    25.4. 04:22 | Nová verze

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    25.4. 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (74%)
     (8%)
     (2%)
     (16%)
    Celkem 818 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Firewall na Slackware

    1. 11. 2007 | Vladimír Žalud | Bezpečnost | 6836×

    Většina linuxových distribucí má už při instalaci možnost spustit a nakonfigurovat firewall. U instalace Slackwaru nástroj na automatické nastavení firewallu chybí, což samozřejmě neznamená, že není možné ho na něm provozovat.

    Ovšem je pravda, že Slackware Linux nemá implicitně definovaná žádná pravidla iptables, ani žádnou jednoduchou instalační volbu, která by to zajistila. Dokonce není k dispozici ani přímý konfigurační soubor, o balíčku ani nemluvě.

    Co z toho plyne, je asi nasnadě - v případě přímého připojení k síti není náš počítač chráněn firewallem a je tedy lehce přístupný nežádoucímu přístupu ze sítě. A zabránit neautorizovanému přístupu, ať už z vnější sítě do vnitřní, nebo prostě jen z Internetu do počítače apod., je hlavní funkcí asi každého dobře sestaveného firewallu. Ukážeme si tedy, jak celkem efektivně zprovoznit firewall na Slackware Linuxu.

    Nezbytné předpoklady - jádro, nástroje

    V prvé řadě potřebujeme vhodně přeložené jádro; Slackware má snad u všech svých kernelů tuto volbu při kompilaci zapnutou, a tak se při použití distribučních jader (což je náš případ) nemusíme touto problematikou zabývat. Další předpoklad, který si musíme ohlídat, je instalace balíčku iptables, který je v instalační adresářové struktuře Slacku umístěn v adresáři n, spolu s většinou ostatních síťových záležitostí. Tento balíček obsahuje nástroje pro všemožnou manipulaci s firewallem, jeho funkčnost, logování apod.

    Konfigurační soubory - alfa omega

    Jako všechny bezprizorní příkazy se dají i pravidla iptables zapsat do souboru /etc/rc.d/rc.local. To ovšem není moc elegantní ani praktické a Slackware to také umožňuje řešit daleko lépe. Nejdříve si něco řekněme o spouštění systému samotného a jak se to týká nastavování firewallu v našem případě.

    V průběhu startu počítače se načítají a spouštějí (v závislosti na runlevelu) služby, nastavení a vůbec věci nutné pro běh počítače. Je-li u Slackwaru odpovídajícím runlevelem 3 (výchozí multiuser mód se sítí) nebo 4 (stejný jako předchozí plus X), provede se v určitém stupni bootování skript /etc/rc.d/rc.inet2, který odpovídá za spuštění síťových služeb a navazujících funkcí. Jedním z podmíněných příkazů je i spuštění souboru /etc/rc.d/rc.firewall s parametrem start (podmínkou je přítomnost a spustitelnost tohoto souboru - a samozřejmě správná konfigurace).

    Mimochodem, všechny soubory zde zmíněné se nazývají init skripty a obecně jsou, jak je patrné, zodpovědné za start počítače a služeb. V případě Slacku se jedná o tzv. systém BSD init skriptů, což je jeden ze tří nejrozšířenějších způsobů startu Linuxu. Další a popravdě dnes více rozšířený způsob je SystemV init (Slackware za jistých podmínek podporuje i tento způsob spouštění služeb). Třetí a nejnovější způsob, rozšiřující se hlavně díky Ubuntu, se jmenuje Upstart a jako největší rozdíl oproti běžně používanému způsobu startu Linuxu se uvádí možnost paralelního spouštění více služeb a tím i efektivnější využití času oproti běžnému bootování. Slackware, pokud vím, zatím poslední způsob nepodporuje.

    Zpět k firewallu. Zkrátka a dobře, tvůrci Slackwaru nám konkrétním příkazem ve spouštěcím skriptu dali vodítko pro jeho konfiguraci a my se v tomto článku pomocí jednoduchého použití standardních linuxových nástrojů zaměříme právě na tuto možnost. Netvrdím, že je to možnost jediná, definitivní nebo nejlepší; mně se však osvědčila a zdá se mi i pohodlná.

    Co tedy budeme vlastně dělat? V prvé řadě si vytvoříme potřebné soubory. Základem je soubor/skript /etc/rc.d/rc.firewall, který nám celý proces spouštění a údržby firewallu usnadní, a dále pomocné skripty (firewall_start, firewall_stop apod., viz dále) umístěné v adresáři /etc/abcfw/, které budou obsahovat vhodná pravidla iptables a příkazy v závislosti na tom, co budeme po firewallu chtít a potřebovat.

    Start firewallu

    Začneme tedy souborem rc.firewall umístěným v adresáři /etc/rc.d/. Samotný spustitelný soubor bude přebírat argumenty start, stop, restart, lock a status, a podle nich bude vykonávat nadefinované funkce. Volba start znamená spuštění firewallu - pravidla iptables budou aktivována. Parametrem stop můžeme firewall zastavit - potom se vymažou veškerá pravidla a počítač bude absolutně bez ochrany zvenčí. Naopak volbou lock nám skript rc.firewall umožní ukončit veškerý síťový provoz a uzamknout tak počítač před vnějším světem. Předpokládám, že důsledky pravidla restart vysvětlovat nemusím. A konečně přepínač status nám v ideálním případě ukáže stav pravidel a případně i jiné, například síťové, ukazatele.

    Pro větší přehled jsem i výše zmíněný soubor rc.inet2 opatřil jistým malým "vylepšením", takže se při spouštění ozve a okomentuje svou činnost. Nejprve část souboru /etc/rc.d/rc.inet2 (moje úpravy jsou zakomentovány):

    #initializing firewall
    if [ -x /etc  rc.d/rc.firewall ]; then
     /etc/rc.d/rc.firewall start
    #echo "Firewall is running!"
    #else echo "Firewall isn't available!"
    fi

    Říkat tomu v tomto případě vylepšení je hodně nadsazené, ovšem dále uvidíme, že to svoje estetické opodstatnění má.

    Teď se podívejme na soubor /etc/rc.d/rc.firewall:

    #!/bin/sh
    
    #rc.firewall
    #Start|stop|restart|lock|status firewall.
    
    #Start firewall:
    firewall_start() {
    if [ -x /etc/abcfw/firewall_start ]; then
     /etc/abcfw/firewall_start
    fi
    }
    
    #Stop firewall:
    firewall_stop() {
    if [ -x /etc/abcfw/firewall_stop ]; then
     /etc/abcfw/firewall_stop
    fi
    }
    
    #Locking PC
    firewall_lock() {
    if [ -x /etc/abcfw/firewall_lock ]; then
     /etc/abcfw/firewall_lock
    fi
    }
    
    #View status firewall
    firewall_status() {
    if [ -x /etc/abcfw/firewall_status ]; then
     /etc/abcfw/firewall_status
    fi
    }
    
    #Restart firewall:
    firewall_restart() {
    firewall_lock
     sleep 1
    firewall_start
    }
    
     case "$1" in
     'start')
       firewall_start
       ;;
      'stop')
       firewall_stop
       ;;
      'restart')
       firewall_restart
       ;;
      'lock')
       firewall_lock
       ;;
      'status'
       firewall_status
       ;;  
    *)
    echo "usage $0 start|stop|restart|lock|status"
    esac
    
    #end
    

    Je to opravdu obyčejný bashový skript, žádné velké kudrlinky, více méně se předpokládá, že všechno funguje tak, jak má. Perl a sofistikované konstrukce přenechává Slackware většinou jiným distribucím. Vysvětlení jednotlivých příkazů ve skriptech překračuje určení článku, nic komplikovaního to ale není. Viz seriál BASH.

    Adresář /etc/abcfw/

    Adresář s obsahem souborů, které nám budou plnit požadované funkce, a vlastně nepřímo i celé tohle řešení firewallu, jsem nazval /etc/abcfw - hlavně z nedostatku invence. Při vlastní úpravě skriptů je úplně jedno, kam to uložíte, nebo jak to pojmenujete; důležité je, aby cesty ve skriptech souhlasily s cestami v adresářové struktuře vaší distribuce.

    Takže, jak je ze skriptu výše vidět, soubory s pravidly jsou umístěny v adresáři /etc/abcfw/ a jsou spustitelné. Opět to není žádná věda, ale funguje to.

    Soubory v /etc/abcfw/:

    Nejdříve firewall_start:

    #!/bin/bash
    
    #firewall_start
    #setup script for running iptables rules
    
    #intro
    echo "Starting firewall!"
    
    #variables
    iptables=/usr/sbin/iptables
    
    #cleaning
    $iptables -F
    $iptables -X
    
    #policy
    $iptables -P INPUT DROP
    $iptables -P OUTPUT ACCEPT
    $iptables -P FORWARD DROP
    
    #accept loopback
    $iptables -A INPUT -i lo -j ACCEPT
    $iptables -A FORWARD -i lo -j ACCEPT
    
    #setup for INPUT rules
    $iptables -A INPUT -p icmp --icmp-type any -j ACCEPT
    $iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
    $iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
    $iptables -A INPUT -m state --state NEW -p udp --dport 67 -j ACCEPT
    $iptables -A INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT
    $iptables -A INPUT -m state --state NEW -p tcp --dport 139 -j ACCEPT
    $iptables -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
    $iptables -A INPUT -m state --state NEW -p udp --dport 53 -j ACCEPT
    $iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    
    #security
    $iptables -A INPUT -p tcp --syn -j LOG
    $iptables -A INPUT -p tcp --syn -j DROP
    
    #epilogue
    echo "Done."
    
    #end

    No a konečně se dostáváme k vytouženým pravidlům. Ještě si všimněte umístění a výstupu programu echo; v případě startu vypíše hlášku o tom, co začíná dělat, a potom dá ještě vědět, že je vše hotovo. V případě startu PC se k tomu přidá echo z /etc/rc.d/rc.inet2 a je tady ten estetický výsledek mé snahy ;-). Pravidla jsou určena pro můj pokusný intranetový domácí server, takže to podle toho vypadá, služeb relativně hodně a zabezpečení téměř žádné. Opět platí, že význam jednotlivých příkazů si, pakliže je neznáte, budete muset nastudovat jinde.

    Následuje soubor firewall_stop:

    #!/bin/bash
    
    #firewall_stop
    #setup script for stopping iptables rules
    
    #intro
    echo "Stopping firewall rules."
    
    #variables
    iptables=/usr/sbin/iptables
    
    #setup
    $iptables -F
    $iptables -X
    
    #clean policy
    $iptables -P INPUT ACCEPT
    $iptables -P OUTPUT ACCEPT
    $iptables -P FORWARD ACCEPT
    
    #epilogue
    echo "Done."
    
    #end

    Dále tu máme soubor firewall lock:

    #!/bin/bash
    
    #firewall_lock
    #setup script for locking all network conections
    
    #intro
    echo "Locking all network traffic!"
    
    #variables
    iptables=/usr/sbin/iptables
    
    #setup
    $iptables -F
    $iptables -X
    
    #set policy
    $iptables -P INPUT DROP
    $iptables -P OUTPUT DROP
    $iptables -P FORWARD DROP
    
    #accept loopback
    $iptables -A INPUT -i lo -j ACCEPT
    $iptables -A FORWARD -i lo -j ACCEPT
    
    #epilogue
    echo "Done."
    
    #end

    Co dodat k těmto dvěma skriptům? První vymaže všechna pravidla a firewall vlastně úplně vypne. Druhý sice také vymaže všechna pravidla, ovšem veškeré policy, neboli implicitní chování firewallu, nastaví na DROP (zahazování paketů) a tím uzavře veškerý provoz dovnitř i ven, včetně už ustanovených a probíhajících spojení. Na loopback zařízení se toto omezení samozřejmě nevztahuje. Všechny skripty jsou v případě použití mírně upovídané.

    A nakonec firewall_status:

    #!/bin/bash
    
    #firewall_status
    #setup script for status view of all firewalled network conections
    
    #intro
    echo "Firewall status:"
    
    #variables
    iptables=/usr/sbin/iptables
    
    $iptables -L -v
    
    #end
    

    Tuto volbu jsem vlastně vymyslel až pro tento článek. Já sám se držím celkem osvědčeného iptables -L -v na příkazovém řádku, ale přišlo mi vhodné to sem dát jako zajímavou možnost. Zejména při využití i jiných systémových příkazů, barevném rozlišení apod. Možností je spousta a jejich naplnění nechám už na vás.

    Pro atribut restart skript nepotřebujeme, protože se vlastně provedou postupně skript firewall_lock a firewall_start, jak je patrné výše.

    Moduly, jiná řešení a ostatní drobnosti

    Firewall nám sice běží, ale jeho dostatečná funkčnost ještě nemusí být plně zajištěna. Některé služby potřebují pro správné fungování aktivovat dodatečné moduly. V našem příkladu se to týká hlavně pravidla vztahujího se ke službě FTP a tedy modulu ip_conntrack_ftp. Dá se to udělat ručně, napsat to do uvedených skriptů nebo k tomu použít standardní slack soubory (/etc/rc.d/rc.modules, /etc/modules.conf apod.).

    Co se týká jiných řešení, tak snad zmíním jen program iptables-save a iptables-restore. Tím prvním si uložíte do souboru souhrn pravidel, který jste si definovali třeba na příkazovém řádku. Takže jako root prostě zadáte:

    # iptables-save > /etc/abcfw/firewall_start

    Tímto všechna požadovaná pravidla umístíte do souboru /etc/abcfw/firewall_start. A pokud budete chtít přesně tato pravidla použít i v budoucnu, použijete jednoduše příkaz iptables-restore a soubor s uloženými pravidly mu předáte jako parametr. Konkrétně tady zadáte:

    # iptables-restore /etc/abcfw/firewall_start

    Využití ve skriptech je v podstatě stejné jako výše popsané řešení. Soubor firewall_start umístíte do adresáře /etc/abcfw/ a místo spuštění ho předáte programu iptables-restore jako parametr. Soubor nemusí být spustitelný a testovací přepínač může být v tom přépadě jen -e (existence souboru). Celé by to v našem případě mohlo ve spouštěcím skriptu vypadat asi takto:

    if [ -e /etc/abcfw/firewall_start ] ; then
     iptables-restore /etc/abcfw/iptables_start
    fi

    Jako ulehčení práce s naším firewallem si můžete vytvořit nějaký vhodně pojmenovaný link na soubor /etc/rc.d/rc.firewall, třeba jen abcfw, a umístit ho někam do spouštěcí cesty. Práce s ním se potom trochu zjednoduší.

    Závěr

    Tak a to je vše. Snad se mi povedlo začátečníkům ukázat, že zprovoznit firewall na Slackware Linuxu, i když jeho konfigurace není standardně k dispozici, je vlastně hračka, a že to má i svou logiku.

           

    Hodnocení: 94 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    rADOn avatar 1.11.2007 00:30 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše iptables_save|restore
    Pri editovani konfigurace ulozene pomoci iptables_save je neprijemne ze obnovovaci skript je daleko haklivejsi nez by se z formatu souboru mohlo zdat a co je horsi, kdyz se mu neco nelibi vubec nerekne co. Nezbytna malickost pri sprave pres ssh - ovladaci skript musi umet obnovit smysluplny stav pokud se nepovede _restore, nejlepe asi ulozenim predchozi konfigurace.
    Na druhou stranu takto ulozena konfigurace je o neco prehlednejsi a zahrnuje i hodnoty pocitadel.
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    1.11.2007 11:04 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: iptables_save|restore
    Přecitlivělost iptables-restore se s každou verzí zlepšuje. Nahledě na to, že tento mechanismus umí něco, co iptables neumí – atomické přidání více pravidel (vizte klíčové slovo COMMIT).

    Nakonec nasazení pravidel bez jejich otestovávní považuji za nebezpečné. Tudíž já pravidla upravuji na živém stroji pomocí iptables a když jsem s nimi spokojen, tak je uložím pomocí iptables-save.
    1.11.2007 12:02 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: iptables_save|restore
    Nahledě na to, že tento mechanismus umí něco, co iptables neumí – atomické přidání více pravidel (vizte klíčové slovo COMMIT).

    Ale umí, vizte příkaz iptables-batch.

    Tudíž já pravidla upravuji na živém stroji pomocí iptables a když jsem s nimi spokojen, tak je uložím pomocí iptables-save.

    Zejména úpravy spočívající ve změně jedné IP adresy, která se vyskytuje ve dvaceti různých pravidlech, se takto realizují velmi pohodlně. :-)

    1.11.2007 13:13 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: iptables_save|restore

    Ale umí, vizte příkaz iptables-batch.

    Kde? iptables-1.4.0rc1 nic takového neobsahují.
    1.11.2007 13:25 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: iptables_save|restore

    OpenSuSE 10.3:

      mike@lion:~> rpm -q iptables
      iptables-1.3.8-28
      mike@lion:~> rpm -ql iptables | grep sbin
      /usr/sbin/ip6tables
      /usr/sbin/ip6tables-batch
      /usr/sbin/ip6tables-restore
      /usr/sbin/ip6tables-save
      /usr/sbin/iptables
      /usr/sbin/iptables-batch
      /usr/sbin/iptables-restore
      /usr/sbin/iptables-save
      /usr/sbin/iptables-xml
    

    Nemohu vyloučit, že si ten příkaz přidali sami, ale docela by mne to překvapilo. Zkusím se podívat do source RPM.

    1.11.2007 13:29 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: iptables_save|restore
    Tak je to skutečně přidáno v tom distribučním balíčku. Ale jestli chcete, na webu je source RPM, můžete si z něj ten patch vytáhnout.
    1.11.2007 11:46 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: iptables_save|restore
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    lol at signature :D
    rADOn avatar 1.11.2007 15:18 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: iptables_save|restore
    nasel se muj stary slackovy skript : rc.iptables drzi nekolik predchozich konfiguraci, pri chybe fallbackuje na predeslou nebo na nouzovy default.
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    2.11.2007 10:28 CEST
    Rozbalit Rozbalit vše Re: iptables_save|restore
    Pri editovani konfigurace ulozene pomoci iptables_save je neprijemne ze obnovovaci skript je daleko haklivejsi nez by se z formatu souboru mohlo zdat a co je horsi, kdyz se mu neco nelibi vubec nerekne co.
    No nevim, ale me osobne se zda, ze iptables-restore jenom bere radky a pred ne nacpe prikaz "iptables". Tot vse, spis je problem, ze "iptables" nerekne, co mu kde vadi a proto ani iptables-restore nic moc nerekne.
    rADOn avatar 5.11.2007 01:25 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: iptables_save|restore
    To se ti opravdu jen zda :-) Ono to tak na prvni pohled vypada ale jsou tam ulozeny nazvy chainu, stavy pocitadel, transakce a buhvi co jeste. A pridat chain copypastovanim jsem zkusil jen jednou - a hodne rychle toho nechal...
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    2.11.2007 10:32 CEST
    Rozbalit Rozbalit vše Re: iptables_save|restore
    Nezbytna malickost pri sprave pres ssh - ovladaci skript musi umet obnovit smysluplny stav pokud se nepovede _restore, nejlepe asi ulozenim predchozi konfigurace.
    No, osobne pouzivam screen a restart firewall resim pomoci

    /etc/init.d/iptables restart;for i in $( seq 1 30 );do echo "$i";sleep 1;done;/etc/init.d/iptables stop

    Restartne se nova konfigurace, pak se pocita 1 - 30. Pokud to pocitani vidim, spojeni drzi, OK, dam CTRL-C a firewall zustane. Pokud si odriznu SSH, script ve screenu dopocita do 30 a zastavi komplet firewall., Ja vim, zastavit firewall neni super vec, ale pak ve screenu rychle vratim zmenu a restart, takze zas takovej problem to neni, navic by to slo opravit, aby se (1) ulozila aktualni konfigurace "iptables-save > aktualni", (2) restart firewall s tim odpocitavanim, (3) obnoveni predchozi konfigurace "iptables-restore < aktualni".
    1.11.2007 07:41 camlost | skóre: 7
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    resim to trosinku jinak, ale to je koneckoncu vedlejsi.

    jako uzitecne se mi zda mit "nekde" snadno editovatelny seznam zakazanych stroju a stejne tak snadno editovatelny seznam povolenych stroju (blacklist a whitelist).
    A slow biker.
    2.11.2007 08:46 zvovka | skóre: 20
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Mozna byste to reseni mohl alespon nastinit, vzdycky je lepsi mit na vyber.

    Jinak toto je navod pro hracicky zacatecniky, v podstate mi slo o to ukazat jak to muze fungovat. A ta struktura co se tyka Slackware je celkem systemova. Pri psani clanku (coz je uz, priznavam, celkem dlouho) jsem mel dokonce ambice udelat z toho nejaky balicek, ale asi by to chtelo zakomponovat jeste vice funkci, jak je vicemene naznaceno v diskuzi nize, takze jsem od toho upustil.
    Vsichni mate spinave zadky!
    Heron avatar 1.11.2007 08:03 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Je zajímavé, že firewall a síťování obecně je na linuxu konfigurované takto podivně. Linux na síti vyrostl a očekával bych, že bude existovat jednotná konvence jak siť nastavit. Nic takového ale není a každá distribuce si to řeší po svém, tedy nejčastěji vůbec.

    Jak se správně nastaví více IP na jednom rozhranní? Do nedávna jsem si myslel, že v ifcfg-eth1:x, ale tohle vytváří ip aliasy (které ale moc neva, pokud člověk používá výhradně iproute2).

    Kde se nastaví seznam statických cest?

    Kde je editovatelný seznam pravidel pro firewall?

    Kde totéž pro shaping?

    Zkrátka proč si musí každý vytvářet skripty umísťované do /etc/rc.d/rc.local?
    MMMMMMMMM avatar 1.11.2007 08:26 MMMMMMMMM | skóre: 44 | blog: unstable | Valašsko :-)
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Osobne mi prijde prehlednejsi, kdyz si sam udelam vse na miru a pak vim, kde co je a jak s tim pracovat. ;-)
    1.11.2007 10:20 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Zkrátka proč si musí každý vytvářet skripty umísťované do /etc/rc.d/rc.local?
    Ve které distribuci? V Gentoo aliasy, routování i iptables má konfigurační soubory a příslušné init skripty.
    1.11.2007 11:10 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Protože pokud potřebujete nastavit věci ohledně sítí, tak musíte zatraceně dobře vědět, co děláte. A pokud víte, co děláte, tak zjistíte, že žádný sebedokonalejší nástroj se svými konfiguráky není schopen vyjádřit vše, co je možné vyjádřit kombinacá nízkoúrovňových nástrojů (třeba SLES do verze 9 vůbec nebyl připraven na advanced routing).
    Heron avatar 1.11.2007 15:53 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Tohle se dá říct pomalu o všem. Zrovna distribuci shaping pravidel máme vyřešené excelentně a je pravdou, že podobný nástroj v distibuci nenajdeme. Ale proč mám na CentOS cpát statické routy do rc.local nechápu.
    1.11.2007 11:59 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Jak se správně nastaví více IP na jednom rozhranní? Do nedávna jsem si myslel, že v ifcfg-eth1:x, ale tohle vytváří ip aliasy (které ale moc neva, pokud člověk používá výhradně iproute2).

    IP aliasy to nevytváří zcela určitě, to je věc, která fungovala pouze v jádrech řady 2.0 (dřív ne a později také ne). Pokud jde o nastavení v konfiguračních souborech, je záležitost konkrétní distribuce, jestli a jak vám umožní napsat přímo do konfiguračního souboru.

    Heron avatar 1.11.2007 15:58 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Přes ifcfg-eth1:x
    DEVICE=eth1
    BOOTPROTO=static
    ONBOOT=yes
    IPADDR=192.168.0.128
    NETMASK=255.255.255.0
    NETWORK=192.168.0.0
    HWADDR=00:30:4f:56:f8:2b
    MTU=7000
    
    to vytváří device pro každý takový konf. soubor:

        inet 172.16.1.1/24 brd 172.16.1.255 scope global eth1:1
        inet 192.168.218.1/24 brd 192.168.218.255 scope global eth1:2
        inet 172.16.32.1/24 brd 172.16.32.255 scope global eth1:4
    
    kdežto ip a add ..... přidá ip ke stávajícímu rozhranní:
        inet 192.168.0.128/24 brd 192.168.0.255 scope global eth1
        inet 10.0.0.1/16 brd 10.0.255.255 scope global eth1
    
    Jaký je v tom tedy rozdíl?
    1.11.2007 16:09 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    to vytváří device

    Nevytváří. Ani device, ani interface. To je pouze fikce, kterou vám předstírá příkaz ifconfig (a která vám může pěkně zamotat hlavu, kdybyste tomu fiktivnímu rozhraní zkusil nastavit nějaké parametry).

    Jaký je v tom tedy rozdíl?

    Rozdíl je jen v tom, že inicializační skript použil při volání příkazu ip parametr label (horší varianta by byla, že místo něj spustil ifconfig). Když ho použijete při ručním volání, budete tam mít label také.

    Heron avatar 1.11.2007 16:17 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    ifconfig nepoužívám. Díky za vysvětlení, o labelech jsem nevěděl.
    5.11.2007 19:55 kafi | skóre: 25 | blog: muj_prvni_blog
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Jste bych mozna doplnil ze s ip nejde mnenit ip adresa ktera je jako "hlavni" na ethX. Pokud tedy chceme napriklad zmenit ip adresu na eth0 tak musime pouzit ifconfig eth0 atd. Toto je zasadni nedostatek jinak bezchybne utility ip. Toto se zda byt jako nepodstatne pokud ste na tom kompu ale pokud potebujete precislovat kompl vzdaleny 20km od vas je to velky problem.
    5.11.2007 20:02 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Co je to „hlavní IP adresa rozhraní“? Pokud chci změnit ip adresu na eth0, použiju
    ip addr add 192.168.10.10 dev eth0
    ip addr del 192.168.1.1 dev eth0
    
    Nebo ne?
    Heron avatar 5.11.2007 20:11 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Asi to myslí tak, že když dá ip del, tak už se na ten server nedostane. Řešením je to prostě zapsat jako jeden řádek (ip a del; ip a add), nebo pokud je to ve skriptu tak změnit skrip s spustit.
    5.11.2007 20:33 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Pokud nejprve starou odstraní, a pak až přidá novou, tak jasně že se tam nedostane. Na pořadí záleží :-)

    PS: Raději to upřesním: Pokud nejprve starou IP adresu odstraní… ;-)
    Heron avatar 5.11.2007 20:35 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Jasně, může nejdřív novou přidat a starou odstranit.

    PS: :-D :-D :-D
    5.11.2007 20:12 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Jste bych mozna doplnil ze s ip nejde mnenit ip adresa ktera je jako "hlavni" na ethX. Pokud tedy chceme napriklad zmenit ip adresu na eth0 tak musime pouzit ifconfig eth0 atd.

    Jak jste na to přišel? A co je to vlastně "hlavní adresa"? Jednou z podstatných změn od jádra 2.2 je právě to, že žádná adresa není "hlavní", ale všechny (kromě těch s příznakem secondary) jsou rovnocenné.

    5.11.2007 21:00 kafi | skóre: 25 | blog: muj_prvni_blog
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    no neprisel jsem na to nijak, jak jste si mohl vsimnout dal jsem pojem hlavni adresa do uvozovek.A to zamerne. ja jsem svym prispevkem chtel jen rici tohle je snazsi (kratsi) prehodit adresu pomoci ifconfig nez pomoci ip. Kdyby utilitka ip obsahovala parametr replace a tim by dokazala na zaklade prefixu zmenit jednorazove ip bylo by to dobre.
    5.11.2007 21:15 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Jenže pak byste v první řadě musel specifikovat, kterou adresu to vlastně chcete změnit. Příkaz ifconfig má jednoduchý život: žije si v představě, že adresa se rozhraní nastavuje a že už to skoro devět let není pravda, to ho očividně netrápí. Takže si prostě nějakou adresu nahradí a která to vlastně bude, to je v rukou osudu.
    5.11.2007 21:30 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Takže „nejde“ znamená „nechce se mi psát dva příkazy“?
    1.11.2007 17:16 Ondrej 'SanTiago' Zajicek
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Jak se správně nastaví více IP na jednom rozhranní?

    Kde se nastaví seznam statických cest?
    Prikazem ip
    Zkrátka proč si musí každý vytvářet skripty umísťované do /etc/rc.d/rc.local?
    Protoze je to mnohem prehlednejsi a jednodussi nez pouzivat nejaky specificky konfigurak, jehoz moznosti budou generaci za soucasnym moznostmi jadra a nastroju. Navic uzivatel uz stejne ty nastroje zna a zna shell, tak proc se navic ucit syntaxi obsurnich konfiguraku.

    Nehlede na to, ze pravidla pro netfilter a shaping casto maji nejakou strukturu, kterou je mozne vyjadrit v skriptu pomoci funkci a podobnych abstraktnich konstrukci, zatimco v konfiguraku by to clovek musel rozepsat.
    1.11.2007 17:19 Ondrej 'SanTiago' Zajicek
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    > tak proc se navic ucit syntaxi obsurnich konfiguraku.

    Ktere navic budou v kazde distribuci jine, narozdil od shellu a prikazu.
    Heron avatar 1.11.2007 18:48 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    To je věc názoru. Dřív jsem si psal fw ve skriptu pomocí iptables, od doby co znám firehol na něj nedám dopustit. Přijde mi to jednodušší. Dříve jsem měl shaping v souborech ručně editovaných, nyní se generuje skript využívající tc přímo z database. Tohle je nejen jednodušší, ale přímo nutnost.

    Takže v podstatě jdeme cestou od příkazové řádky ke specializovaným programům využívající standardní nástroje systému. Po telefonu jsem schopen radit windowsákovi, jak mi má něco nastavit ve fireholu. V případě iptables si to nedokážu představit.

    Teď nenacházím ekvivalentní příklad, tak plácnu první blbost co mě napadne. Proč mám statický routy nastavovat pomocí ip route v rc.local, a na konfiguraci apache mám soubor? Nebylo by vhodne apache konfigurovat jen přes apachectl?
    1.11.2007 21:42 victor8 | skóre: 24 | blog: blog | Košice
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    IMHO to bude tym, ze zatial co Apache je beznym programom pomerne nezavislym od jadra, netfilter je s jadrom dost pevne zviazany.
    Heron avatar 1.11.2007 22:01 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Prosím, nechytejte se apache, to byl blbý příklad. K netfilteru je nástroj iptables (který se zas tak často a razantně nemění). Ještě mi nikdo neodpověděl, proč na to není std konfigurák (nebo "služba" jako firehol).
    1.11.2007 23:44 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Netfilter je s jádrem "svázaný" tak, že je jeho součástí.
    1.11.2007 22:09 astrablaster
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Já zas používám FERM. Neni to možná tak promakané jako Firehol, ale mně to stačí. Jiní zase používaji Shorewall atd.
    atan avatar 1.11.2007 23:04 atan | skóre: 21 | Liberec
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    nyní se generuje skript využívající tc přímo z database
    To ale firehol neumi?
    Heron avatar 1.11.2007 23:19 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    ?

    Firehol nastavuje iptables.
    1.11.2007 23:44 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Teď nenacházím ekvivalentní příklad, tak plácnu první blbost co mě napadne. Proč mám statický routy nastavovat pomocí ip route v rc.local, a na konfiguraci apache mám soubor?

    Apache je user space aplikace, zatímco router (nebo netfilter) je součást jádra. Nepřipadá mi jako dobrý nápad, aby jádro četlo nějaké konfigurační soubory. Ale můžete si samozřejmě napsat aplikaci (případně skript), která načte konfigurační soubor a podle něj nakonfiguruje příslušnou část jádra. Přesně tohle obvykle dělají inicializační skripty distribucí - jen ne všech a v každé jinak. Takže otázka by spíš měla znít, proč není (aspoň základní) specifikace konfiguračních souborů síťových rozhraní a směrování součástí LSB; pak by to aspoň některé distribuce měly stejně.

    Heron avatar 2.11.2007 06:26 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Takže otázka by spíš měla znít, proč není (aspoň základní) specifikace konfiguračních souborů síťových rozhraní a směrování součástí LSB; pak by to aspoň některé distribuce měly stejně.

    Přesně ta otázka odstartovala tento thread.

    Linux na síti vyrostl a očekával bych, že bude existovat jednotná konvence jak siť nastavit. ..........
    2.11.2007 08:17 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Takže otázka by spíš měla znít, proč není (aspoň základní) specifikace konfiguračních souborů síťových rozhraní a směrování součástí LSB; pak by to aspoň některé distribuce měly stejně.
    Tu otázku je možné klidně zobecnit, proč všechny konfigurační soubory, skripty atd. nemají všechny distribuce stejné – také by to usnadnilo přechod mezi distribucemi. (A dál můžeme pokračovat, proč všechny internetové prohlížeče nevykreslují stejně, proč se všechny aplikace jednoho typu – např. kancelářský balík – nechovají stejně, atd.)

    Odpověď je nasnadě – každému vyhovuje něco jiného, někdo chce zadat do konfiguráku IP adresu, default gateway a DNS (protože na pracovní stanici typicky nic jiného potřebovat nebude), někdo chce přiřazovat rozhraní x IP adres, routovat podle aktuální fáze měsíce a pravidla pro iptables generuje z LDAPu (a pak bude zákonitě používat své vlastní skripty). Řekl bych, že seznámit se s tím, jak daná distribuce nastavuje síťové parametry, je minimum toho, co může udělat správce, když z nějakého důvodu dostane na starosti nový systém s distribucí, kterou nezná.
    2.11.2007 22:15 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Proč by měly být stejné skripty? Je přeci podstatný rozdíl mezi rozhraním a implementací.
    3.11.2007 09:40 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Aby byla přenositelná konfigurace, musely by konfigurační soubory být „stejné“. Že ty konfigurační soubory pak budou interpretovat různě napsané skripty je podružné, protože funkcionalita těch skriptů by byla určena možnostmi konfiguračního souboru.
    3.11.2007 12:58 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Jenže já jsem nechtěl, aby byly naprosto stejné. Stačilo by, aby byl stejný společný základ. Co si k tomu přidají jednotlivé distribuce jako rozšíření, to už je jejich věc.
    3.11.2007 14:52 CEST
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Ale stejny zaklad existuje:

    * nastaveni netfilteru = iptables

    * nasteveni sitove karty = ifconfig , pripadne novejsi ip

    * nastaveni statickych cest = route , pripadne novejsi ip

    Akorat poste kazda distribuce si resi po svem konfiguraci soubor a inicializacni skript. Zatimco slackware pouziva rc.local a clovek si musi vsechno nastaveni napsat sam pomoci iptables, ifconfig a route, debian ma konfiguraky v /etc/network/interfaces (kde se zada IP a route, a pomoci post-up skriptu i dalsi staticke cesty a firewall pravidla), gentoo ma zase konfigurak v /etc/conf.d/net, kde se zadaj jak IP, tak dalsi staticky cesty, ale ma zvlast nastaveni pro firewall, ktere se spousti pomoci /etc/init.d/iptables. To je stejne, jako by ses ptal, proc ma kazda distribuce jinej prikaz pro instalaci balicku. Protoze se to tvurcum tak libi a jsou presvedceni, ze je to tak dobre. Ikdyz napr. pro iptables ej dobre vyzivat ty programy iptables-save a iptables-restore - nejsou to sice zadne high-level konfiguraky, proste jenom syntaxe pro iptables, ale nemusis psat zadny dalsi skripty, proste napises jenom parametry pro iptables.

    Samozrejme ti v kazde distribuci nic nebrani, abys kompletne vysmahnul vychozi init skripty a napsal si svoje vlastni, at to bude debian, fedora, redhat nebo gentoo. Zalezi jenom na tobe a vyvojari dister ti akorat nabizeji moznosti, jak si to zjednodusit, protoze pak nemusis psat zbytecne vsechny ty prikazy, ale soustredis se jenom na konfiguraci.
    3.11.2007 21:35 Jirka | skóre: 36
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Když jsem kdysi Slackware používal, tak konfiguraci sítových rozhraní měl v souboru /etc/rc.inet1. Takže nikoliv do rc.local. Ovšem je to už dlouho, ale předpokládám, že tohle se nezměnilo.
    4.11.2007 01:14 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Firewall na Slackware

    Jenže u všeho, co uvádíte, se nejedná o konfigurační soubory, ty si každá distribuce dává jinam a má je v jiném formátu. A právě o těch tu byla řeč.

    P.S.: ifconfig už dnes opravdu ne

    6.11.2007 18:58 Matlák
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    To je pravda že to je věc názoru. Já jsem jako svůj první firewall (pravda nepoužívám linux zase tak dlouho) používal Shorewall. Jeho (pro mně) idiotická konfigurace a syntaxe mě nakonec dovedly k řešení Shorewall zrušit si napsat bashový skript (jeden jediný!) který nastavuje všechno routování, firewall a tak podobně. Potom jsem přešel na svých systémech na Slackware a (světe div se! :-) ) skript bezproblému fungoval dále... Tento skript mám také poměrně slušně okomentován, takže jsem dokázal "donutit" svého bratra, využívajícího pouze Windows XP, aby mi konfiguraci firewallu poupravil na dálku přes telefon - jediné co nezvládal bylo korektní ukončení vimu.

    Jiné ovšem je, pokud je konfigurace velmi složitá a problém rozsáhlý - v tom případě si nakonfiguruji svůj bash-firewall přes ssh sám.
    1.11.2007 13:03 guns | skóre: 4 | blog: marian | Nitra
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    dakujem pekne za clanok, akurat sa mi to hodi :)
    nocturne e moll, ballade F major, ...
    12.11.2007 14:00 jixi
    Rozbalit Rozbalit vše Re: Firewall na Slackware
    Jen drobnost -- ve skriptu rc.firewall chybi v cyklu `case' zavorka za slovem 'status'.
    Jinak diky, clanek pomohl :-)

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.