abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

dnes 18:33 | Komunita

Morevna Project, který stojí za řadou svobodného softwaru pro animátory (např. Synfig Studio, RenderChan nebo Papagayo-NG) a svobodnými (CC-BY-SA) animovanými filmy/komiksy Morevna (3. díl) a Pepper&Carrot: The Potion Contest (6. díl), sbírá do 1. března příspěvky na 4. díl svého animovaného filmu Morevna. Mezi odměnami přispěvatelům lze najít např. i videokurzy animace v Synfigu či Blenderu.

xHire | Komentářů: 0
dnes 12:22 | Bezpečnostní upozornění

Ve středu vydaná "npm@next" verze 5.7.0 správce balíčků pro JavaScript npm (Wikipedie, Node Package Manager) přinesla řadě uživatelů Linuxu nečekanou nepříjemnost. V závislosti na způsobu instalace a ve spojení s příkazem sudo mohlo dojít ke změně vlastníka u systémových souborů, také například /. Chyba je opravena v před několika hodinami vydané verzi npm 5.7.1 [reddit].

Ladislav Hagara | Komentářů: 6
dnes 10:00 | Nová verze

Byla vydána verze 10.5 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab (Wikipedie). Představení nových vlastností v příspěvku na blogu. Zdůraznit lze integrovanou podporu Let's Encrypt.

Ladislav Hagara | Komentářů: 0
včera 12:33 | Komunita

Příspěvek na blogu Signalu (Wikipedie) informuje o založení neziskové nadace Signal Foundation, jež bude zastřešovat další vývoj tohoto svobodného bezpečného komunikátoru běžícího také na Linuxu (Signal Desktop). Brian Acton, spoluzakladatel WhatsAppu, věnoval nadaci 50 milionů dolarů [Hacker News].

Ladislav Hagara | Komentářů: 1
včera 05:55 | Zajímavý článek

Článek na Fedora Magazine krátce představuje programovací jazyk Rust a několik zajímavých v Rustu naprogramovaných terminálových aplikací. Jedná se o alternativu k příkazu grep ripgrep, moderní barevnou alternativu k příkazu ls exa, příkazem cloc inspirovaný tokei a zvířátko v terminálu ternimal.

Ladislav Hagara | Komentářů: 0
21.2. 23:55 | Zajímavý projekt

Byl spuštěn Humble Classics Return Bundle. Za vlastní cenu lze koupit hry Broken Sword 5 - The Serpent's Curse, Shadowrun Returns a Shadowrun: Dragonfall - Director's Cut. Při nadprůměrné platbě (aktuálně 8,48 $) také Shadowrun: Hong Kong - Extended Edition, Wasteland 2: Director's Cut - Standard Edition, Age of Wonders III a Xenonauts. Při platbě 15 $ a více lze získat navíc Torment: Tides of Numenera a Dreamfall Chapters: The Final Cut Edition.

Ladislav Hagara | Komentářů: 0
21.2. 00:11 | Bezpečnostní upozornění

Vývojáři linuxové distribuce Mageia na svém blogu upozorňují na narušení bezpečnosti Mageia Identity. Narušitel získal přístup k LDAP databázi a zveřejnil jména uživatelů, jejich emailové adresy a haše hesel. Hesla uživatelů byla resetována.

Ladislav Hagara | Komentářů: 3
20.2. 21:55 | Nová verze

Byla vydána verze 2.0.0 nástroje pro záznam a sdílení terminálových sezení asciinema (GitHub). Z novinek je nutno upozornit na nový zpětně nekompatibilní formát záznamu asciicast v2. S novým formátem si poradí nové verze asciinema-playeru a asciinema-serveru [Hacker News].

Ladislav Hagara | Komentářů: 0
20.2. 05:55 | Zajímavý projekt

Dle příspěvku na blogu zaměstnanců CZ.NIC byl spuštěn ostrý provoz služby Honeypot as a Service (HaaS). Zapojit se může kdokoli. Stačí se zaregistrovat a nainstalovat HaaS proxy, která začne příchozí komunikaci z portu 22 (běžně používaného pro SSH) přeposílat na server HaaS, kde honeypot Cowrie (GitHub) simuluje zařízení a zaznamenává provedené příkazy. Získat lze tak zajímavé informace o provedených útocích. K dispozici jsou globální statistiky.

Ladislav Hagara | Komentářů: 12
20.2. 04:44 | Komunita

Před týdnem společnost Feral Interactive zabývající se vydáváním počítačových her pro operační systémy macOS a Linux oznámila, že pro macOS a Linux vydají hru Rise of the Tomb Raider. Včera společnost oznámila (YouTube), že pro macOS a Linux vydají také hru Total War Saga: Thrones of Britannia. Verze pro Windows by měla vyjít 19. dubna. Verze pro macOS a Linux krátce na to.

Ladislav Hagara | Komentářů: 0
Který webový vyhledávač používáte nejčastěji?
 (2%)
 (28%)
 (62%)
 (3%)
 (3%)
 (0%)
 (1%)
 (1%)
Celkem 437 hlasů
 Komentářů: 35, poslední 21.2. 19:51
    Rozcestník

    Logo Neftilter/IPtables

    Historie

    Projekt Netfilter/IPtables založil roku 1998 sympatický Rusty Russel, který je také autorem předchůdce IPtables - projektu IPchains. Rusty je také zakladatelem týmu vývojářů (tzv. Netfilter Core Team), kteří se o celý rozsáhlý projekt starají. Projekt se postupem času z prostého paketového filtru obdařeného jen základními vlastnostmi rozrostl do podoby, v jaké jej spatřujeme dnes - totiž do funkčně košatého nástroje, s jehož pomocí lze implementovat i velice složité stavové firewally včetně možnosti práce s překladem adres (Network Address Translation, dále jen NAT) a "trackingu" spojení (connection tracking). Práce s NAT umožňuje zejména "maškarády" (masquarades), "forwardování" portů (port forwarding) a "přesměrovávání" (redirecting). Rusty Russel se i nadále aktivně účastní vývoje projektu, ovšem aktuální osobou číslo jedna je dnes vynikající Harald Welte.

    Několik poznámek úvodem

    Napsat kvalitní script, který nastaví slušný firewall není zcela jednoduché, ale zase není zapotřebí z toho dělat až přílišnou vědu. Celková koncepce Netfilteru je poměrně složitá, ale věřte mi, že je zároveň až geniálně jednoduchá. Každý nadto k problematice nakonec přistupuje docela jinak, než jak mu radí druzí. Proto prosím přistupujte k tomuto dokumentu spíše nezávazně.

    Lidé také uvažují rozdílně, když píší script pro nastavení tabulek Netfilteru. Existují v zásadě dva způsoby, jak můžete při psaní firewallu přemýšlet:

    V čem se oba přístupy liší? Řekněme, že když si jen tak "scriptujeme," pak v podstatě neděláme nic jiného, než že tabulky paketového filtru plníme nějakými daty pomocí příslušného prográmku (obvykle /sbin/iptables), přičemž nás příliš nezajímá, co to vlastně vnitřně dělá.

    Avšak "programujeme-li," pak si klidně v pojmosloví Netfilteru můžeme nahradit slovo "řetězec" (chain) slovem "funkce." Pohybujeme se pak ve sféře kdy nám Netfilter/IPtables umožňuje procedurální vyjádření našich síťově-bezpečnostních potřeb. Netfilter je totiž vnitřně prakticky plnohodnotný programovací jazyk, v němž lze krom zmíněných "funkcí" implementovat i podmínky a dokonce cykly.

    Oba zmíněné způsoby uvažování mají význam především psychologický. Praktický efekt je nulový a výsledná tabulka v obou případech stejná. Někomu se prostě firewally píší lépe tak a někomu onak. Rusty Russel například volí druhý ("programovací") způsob. Ostatně aby ne! On je přeci vynikající programátor. Avšak i my, kteří třeba programovat ani vůbec neumíme, se nyní směle pokusíme naučit nastavit svůj první firewall.

    V této kapitolce jste zaslechli několik důležitých pojmů jako například "chain" a "tabulka." Vysvětlíme si je v následující sekci, která pojednává obecně o koncepci Netfilteru.

    Koncepce Netfilteru

    Paketový filtr je software, který prohlíží hlavičky procházejících paketů a rozhoduje, co se má se kterým paketem stát. Typicky může být packet zahozen (DROP), akceptován (ACCEPT) nebo popř. může být informace o něm zalogována (LOG). Obecně těmto akcím říkáme v terminologii Netfilteru "cíl" (target), neboli co se s paketem má stát, kam ho chceme směřovat apod. Lze s ním samosebou dělat mnohé další, i třeba velice složité, kejkle, pro něž si obvykle vytváříme targety vlastní. Pro začátek však vystačíme s těmito třemi akcemi.

    Dnešní svět je nebezpečný na všech úrovních reality, tedy i na úrovni reality počítačových sítí. Chceme proto mít kontrolu nad tím, co se k nám dostane, a co od nás odchází. O něčem bychom rádi věděli, něčeho se raději zbavíme bez povšimnutí. V obecné rovině nám přesně toto projekt Netfilter umožňuje. Program iptables je součástí projektu Netfilteru a slouží k nastavování paketového filteru. Jeho manuálová stránka je velice rozsáhlá a dobře napsaná. Po pochopení základních způsobů konfigurace Netfilteru se v ní již pohybujeme poměrně lehce.

    Pro začátek máme k dispozici tři vestavěné řetězce, do nichž můžeme ukládat nová pravidla:

    Program iptables nám umožňuje několik základních akcí. Pohodlně můžeme:

    Dále máme k dispozici několik způsobů jak nakládat s pravidly uvnitř specifikovaného řetězce:

    Základní možnosti filtrování

    Teď, když víme, co všechno můžeme dělat na úrovni celých řetězců pravidel, přejdeme k pravidlům samotným a podíváme se, co všechno nám Netfilter umožní specifikovat. Pro přehlednost si uvedeme jen ty nejdůležitější věci:

    Zdrojovou a cílovou adresu lze specifikovat pomocí přepínačů --source (zdroj) a --destination (cíl). Oba přepínače mají i své zkrácené verze -s či --src a -d či --dst. Lze specifikovat jak symbolické jméno (např. localhost nebo www.abclinuxu.cz - tuto variantu nedoporučuji) tak IP adresu či celou síť (např. 127.0.0.1, 12.34.56.78/32, 98.76.54.32/27, pro všechny adresy vůbec pak 0/0).

    Negace většiny specifikací lze docílit znakem vykřičníku. Např. -s ! 127.0.0.1 vyhoví kterémukoli paketu, který nepřichází z localhost. Negaci, nebo chcete-li "inverzi", lze použít pro většinu určujících pravidel, je však vždy raději lepší konzultovat manuálovou stránku man iptables.

    Protokol lze určit pomocí přepínače --protocol (zkráceně -p). Příkladem může být -p ! tcp, čemuž by vyhověly všechny datagramy, které nejsou TCP.

    Důležitá je též možnost určit síťové zařízené, na němž chceme filtrovat. Toho lze docílit přepínači --in-interface (zkráceně -i) pro vstupní interface a --out-interface (zkráceně -o) pro výstupní interface.

    Je nutné pamatovat na skutečnost, že řetězec INPUT nemá výstupní interface a že řetězec OUTPUT nemá vstupní interface. Obě, vstupní i výstupní, zařízení má pouze řetězech FORWARD.

    Dále chceme-li specifikovat například zařízení eth1, eth2 a eth3, lze tak udělat v jediném pravidle pomocí znaku "plus" např. takto: -i eth+.

    Je-li zapotřebí filtrovat či jinak nakládat s fragmentovanými pakety. které vznikají vetšinou díky tomu, že příliš velké pakety některá zařízení neumí přenést, lze tak učinit pomocí přepínače --fragment (zkráceně -f).

    Poté, co jsme probrali nutné minimum k iptables, obrátíme pozornost k jejich rozšířením.

    Rozšíření iptables

    ... a další kapitoly ... (prosím o rezervaci, -- Matouš)

    Ukázkový firewall

    Ukázkový script na nastavení firewallu může vypadat např. takto:

    ---CUT---
    #!/bin/bash
    
    # eth0 - náš interface do světa
    # lo+ - viz `man iptables'
    
    # bráníme se proti smurf-proofingu, "mrtvým" chybovým hláškám a IP spoofingu
    if [ -e /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts ]; then
    	/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
    fi
    		       
    if [ -e /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses ]; then
    	/bin/echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
    fi
    					       
    # for i in /proc/sys/net/ipv4/conf/* ; do
    # 	/bin/echo "1" > $i/rp_filter
    # done
    
    # úplně vymažeme starý firewall
    /bin/cat /proc/net/ip_tables_names | while read TABLE; do
            /sbin/iptables -t $TABLE -L -n | while read C CHAIN REST; do
                    if [ "X$C" = "XChain" ]; then
                            /sbin/iptables -t $TABLE -F $CHAIN
                    fi
            done
            /sbin/iptables -t $TABLE -X
    done 
    
    # a všechno vynulujeme
    /sbin/iptables -Z
    /sbin/iptables -t nat -Z
    /sbin/iptables -t mangle -Z
    
    # úplně vypnout firewall lze přepínačem "stop"
    if [ "$1" == "stop" ]; then 
            # defaultní politika bude akceptovat
            /sbin/iptables -P OUTPUT  ACCEPT
            /sbin/iptables -P INPUT   ACCEPT
            /sbin/iptables -P FORWARD ACCEPT
            # a smitec
            exit 0;
    fi
    
    # defaultní politika bude zahazovat
    /sbin/iptables -P OUTPUT  DROP
    /sbin/iptables -P INPUT   DROP
    /sbin/iptables -P FORWARD DROP
    
    # povolíme provoz na loopbacku
    /sbin/iptables -A OUTPUT -o lo+ -j ACCEPT
    /sbin/iptables -A INPUT  -i lo+ -j ACCEPT
    
    # úplně se odříznete od světa přepínačem "panic"
    if [ "$1" == "panic" ]; then exit 0; fi
    
    # povolíme všechna odchozí spojení
    /sbin/iptables -A OUTPUT -p tcp  -o eth0 -j ACCEPT
    /sbin/iptables -A OUTPUT -p udp  -o eth0 -j ACCEPT
    /sbin/iptables -A OUTPUT -p icmp -o eth0 -j ACCEPT
    
    # špatně navazovaná spojení, fragmenty a nesmysly zahazujeme
    /sbin/iptables -A INPUT -i eth0 -m state --state INVALID -j DROP
    # /sbin/iptables -A INPUT -i eth0 -f -j DROP
    /sbin/iptables -A INPUT -i eth0 -p tcp ! --syn -m state --state NEW -j DROP
    
    # bráníme se proti SYN floodu
    /sbin/iptables -N STOP_FLOODS
    /sbin/iptables -A STOP_FLOODS -m limit --limit 1/s --limit-burst 5 -j RETURN
    /sbin/iptables -A STOP_FLOODS -j DROP
    /sbin/iptables -A INPUT -i eth0 -p tcp --syn -j STOP_FLOODS
    
    # povolíme již navázaná nebo námi iniciovaná TCP a UDP spojení
    /sbin/iptables -A INPUT -i eth0 -p tcp  -m state --state ESTABLISHED,RELATED -j ACCEPT
    /sbin/iptables -A INPUT -i eth0 -p udp  -m state --state ESTABLISHED,RELATED -j ACCEPT
    
    # některé ICMP pakety přeci jenom povolíme, ale floodovat nás nebudou
    /sbin/iptables -N CHOOSE_ICMP
    /sbin/iptables -A CHOOSE_ICMP -p icmp -m state --state ESTABLISHED,RELATED    -j ACCEPT
    /sbin/iptables -A CHOOSE_ICMP -p icmp --icmp-type 0 -m length --length 28:84  -j ACCEPT
    /sbin/iptables -A CHOOSE_ICMP -p icmp --icmp-type 3 -m length --length 28:84  -j ACCEPT
    /sbin/iptables -A CHOOSE_ICMP -p icmp --icmp-type 8 -m length --length 28:84 \
                                             -m limit --limit 1/s --limit-burst 5 -j ACCEPT
    /sbin/iptables -A CHOOSE_ICMP -p icmp --icmp-type 11 -m length --length 28:84 -j ACCEPT
    /sbin/iptables -A INPUT -i eth0 -j CHOOSE_ICMP
    
    # povolíme vzdálené připojení pomocí SSH
    /sbin/iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
    
    # povolíme vzdálené připojení pomocí SSH z IP.AD.RE.SA pouze
    # /sbin/iptables -A INPUT -i eth0 -s IP.AD.RE.SA -p tcp --dport 22 -j ACCEPT
    
    # odmítneme spojeni na AUTH a resetujeme ho
    /sbin/iptables -A INPUT -i eth0 -p tcp --dport 113 -j REJECT --reject-with tcp-reset
    
    # konec
    ---CUT---
    
    Případný port-scan programem NMap pak dopadne asi takto:
    ---CUT---
    #> nmap -P0 -TInsane NA.SE.IP.ADRESA
    
    Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2005-12-24 16:48 CET
    All 1663 scanned ports on SYMBOLICKE.JMENO.TLD (NA.SE.IP.ADRESA) are: filtered
    
    Nmap finished: 1 IP address (1 host up) scanned in 87.792 seconds
    ---CUT---
    
    Zkusme si stroj "pingnout" paketem velkým 1400 bytů.
    ---CUT---
    #> ping -c1 -s 1400 NA.SE.IP.ADRESA
    PING NA.SE.IP.ADRESA (NA.SE.IP.ADRESA) 1400(1428) bytes of data.
    
    --- NA.SE.IP.ADRESA ping statistics ---
    1 packets transmitted, 0 received, 100% packet loss, time 0ms
    ---CUT---
    

    Normální ping ale projde.

    ---CUT---
    $> ping -c1 NA.SE.IP.ADRESA
    PING NA.SE.IP.ADRESA (NA.SE.IP.ADRESA) 56(84) bytes of data.
    64 bytes from NA.SE.IP.ADRESA: icmp_seq=1 ttl=58 time=12.6 ms
    
    --- NA.SE.IP.ADRESA ping statistics ---
    1 packets transmitted, 1 received, 0% packet loss, time 0ms
    rtt min/avg/max/mdev = 12.632/12.632/12.632/0.000 ms
    ---CUT---
    

    Stejně tak projde mtr bez změny parametrů (používá ICMP pakety, které se ve výchozím nastavení vejdou do specifikovaného rozsahu, mají velikost 64 bytů). Zkusíme-li ale mtr -i 0.1 NA.SE.IP.ADRESA, tak už náš stroj bude vykazovat ztrátovost paketů.

    Dokument vytvořil: vladka, 29.8.2005 12:13 | Poslední úprava: Nicky726, 26.3.2009 16:32 | Další přispěvatelé: ©, hmm | Historie změn | Zobrazeno: 10117×

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

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