<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">
    <title>Sklepmajstr&#x27;s home</title>
    <link href="https://sklepmajstr.cz/feed.xml" rel="self" />
    <link href="https://sklepmajstr.cz" />
    <updated>2026-05-16T17:19:44+02:00</updated>
    <author>
        <name>Sklepmistr</name>
    </author>
    <id>https://sklepmajstr.cz</id>

    <entry>
        <title>Win Server course</title>
        <author>
            <name>Sklepmistr</name>
        </author>
        <link href="https://sklepmajstr.cz/win-server-course.html"/>
        <id>https://sklepmajstr.cz/win-server-course.html</id>
            <category term="Notes - IT"/>

        <updated>2026-05-16T17:19:44+02:00</updated>
            <summary type="html">
                <![CDATA[
                    KURZ WINDOWS SERVER - správa účtů a prostředků - pracujeme v OS - Microsoft Windows Server 2022 21H2 (OS Build 20348.469) HyperV - type 1 hypervisor (běží přímo na HW - x VirtualBox, který je type 2 - běží na OS) - SW switche -&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                <div>KURZ WINDOWS SERVER - správa účtů a prostředků</div>
<div>- pracujeme v OS - Microsoft Windows Server 2022 21H2 (OS Build 20348.469)</div>
<div> </div>
<div> </div>
<div>HyperV - type 1 hypervisor (běží přímo na HW - x VirtualBox, který je type 2 - běží na OS)</div>
<div>- SW switche - privátní / externí - privátní vedou mezi sebou, externí se dá nastavit pro prostup do WAN</div>
<div>- checkpoint - binární image guesta, můžu vytvořit a vrátit se k němu</div>
<div>- 2 typy checkpointů:</div>
<div>- produkční - ideální pro ostré nasazení - uloží stav VM jako po řádném shutdownu</div>
<div>- standardní - ideální pro testovací provoz - uloží bitovou kopii aktuálního stavu, pokud na VM třeba běží databáze, může během procesu dojít ke ztrátě dat</div>
<div>- v HyperV settings můžu nastavit "enhanced session" - pak můžu sharovat clipboard, připojovat HW zařízení přímo k virtuálu atd - aplikace rdp (remote desktop protocol), uživatel můsí mít práva rdp usera</div>
<div>- je to jiný typ připojení než přes normální session</div>
<div> </div>
<div>EDITIONS</div>
<div>- Windows Server 2016 Datacenter / Standard / Essentials - liší se hlavně licencováním, Standard má 1 host a 2 guest licence, Datacenter má 1 host a neomezeně guestů</div>
<div>- omezení v počtu jader procesoru, max 16 (legálně)</div>
<div>- licenční podmínky MS systémů jsou velmi složité, při sestavování čistě legálního serveru konzultovat, pro uživatelský přístup pak potřebujeme ještě CAL na jednotlivé users</div>
<div> </div>
<div>- server s GUI - cca 25 GB</div>
<div>- server bez GUI - ServerCore - cca 4 GB</div>
<div>- Nano Server - cca 0,4 GB - ukončeno ve verzi 2019, dostupné jako kontejner</div>
<div> </div>
<div># sconfig //v cmd bez grafiky průvodce nastavením</div>
<div> </div>
<div>PŘI INSTALACI</div>
<div>- lze zvolit mezi Server Core (výchozí je bez grafiky, pozor GUI nejde doinstalovat) a Server with Desktop Experience </div>
<div>- Windows PE startují do RAMdisku, disky serveru jsou "offline"</div>
<div> </div>
<div>ROLE SERVERU</div>
<div>- to jak se server nabízí uživatelům a co jim poskytuje za služby</div>
<div> </div>
<div>SLUŽBY ROLÍ</div>
<div>- subkomponenty pod rolemi</div>
<div>- objeví se až když mám příslušnou roli nainstalovanou,</div>
<div> </div>
<div>FUNKCE SERVERU</div>
<div>- funkce co nejsou pro klienty (např klient nepozná jestli mám disk zašifrovaný bitlockerem)</div>
<div> </div>
<div>OVLÁDÁNÍ</div>
<div>- přes aplikaci Server Manager</div>
<div> </div>
<div>Windows Deployment Services (WDS) - role serveru, můžu ho nastavit jako deployment, pokud instaluji nový host ze sítě, může ho využít uživatel</div>
<div>Deployment Image Servicing and Management tool (DISM) - nástroj na správu image, packages atd, můžu do image například doinstalovávat funkce; DISM pracuje se soubory .wim (windows imaging format), což jsou v podstatě</div>
<div>lépe uložené image OS, jeden file může obsahovat více verzí (home, pro, enterprise)</div>
<div>Microsoft Deployment Tool (MDT) - nástroj určený pro automatizaci instalace</div>
<div>Microsoft Management Console (MMC) - program kam si můžu přidávat volitelně administrátorské nástroje, se kterými pak pracuji;</div>
<div>- pozn. kdykoliv spouštím něco .msc (např services.msc), tak se spustí MMC.exe a okno se upraví aby zobrazovalo jen ten daný modul co jsem zavolal (přes task mgr se můžu podívat že běží mmc.exe)</div>
<div> </div>
<div> </div>
<div>pozn. než přišel PowerShell, šlo administrovat cmd přes JavaScript/VisualBasic atd, pořád vše funguje - potenciální security díra</div>
<div> </div>
<div> </div>
<div>#############################################################################################################################################################################################################################</div>
<div>########################################################################################### PowerShell #############################################################################################################</div>
<div>#############################################################################################################################################################################################################################</div>
<div> </div>
<div>- sloveso - pomlčka - název objektu, se kterým pracuji</div>
<div>- v hranatých závorkách - nepovinné parametry</div>
<div>- pipe "|" - jako v linuxu, výstup z prvního příkazu je vstupem do druhého (např.: Get-Command | Measure-Object)</div>
<div> </div>
<div> </div>
<div># Get-WindowsFeatures //vypíše feautres</div>
<div># Get-Help //vypíše help, &gt; Get-Help WindowsFeatures - vypíše info o WindowsFeatures</div>
<div># Get-Command * | measure //vypíše kolik má powershell aktuálně k dispozici příkazů</div>
<div># Get-ComputerInfo //vypíše info o počítači</div>
<div># help &lt;cmdlet&gt; //vypíše help</div>
<div># help &lt;cmdlet&gt; -</div>
<div> </div>
<div># sfc /scannow</div>
<div># DISM /Cleanup-Image </div>
<div> </div>
<div># Get-Command * -parameterName *feature* //vypíše všechny commands (*) které v sobě mají parametr feature</div>
<div># Get-Command *service* -ParameterName *computername* //vypíše všechny commands které mají ve jméně service a můžu u nich použít parametr "computername"</div>
<div># Get-Service a* //vypíše všechny služby který začínají písmenem a</div>
<div># Get-Service a* | ft name, status //vypíše všechny služby který začínají písmenem a, ft - format table - udělá z ní tabulku, kde budou specifikované sloupce name a status</div>
<div># Get-Service a* | Get-Member //zjistím co vše by šlo psát za pipe u třeba předchozího příkazu</div>
<div># Get-Service | ft name, status, RequiredServices, DependentServices //takto může vypadat příkaz na jehož konci je tabulka se specifikovanými parametry</div>
<div> </div>
<div># Get-ADUser</div>
<div># Get-ADUser -Filter * -Properties * |sort logoncount - Descending | ft name, sid, office, logoncount</div>
<div> </div>
<div># Get-Service | Out-Gridview | ft name, status, RequiredServices, DependentServices //grafický výstup v novém okně</div>
<div># Get-Service | Out-Gridview -OutputMode Single | ft name, status, RequiredServices, DependentServices //output mode single - v novém okně můžu vybrat co chci a to se předá do pipe</div>
<div># Get-Service | Out-Gridview -OutputMode Single | Stop-Service //např zde můžu v novém okně vybrat službu, po odkliknutí "okay" se předá do pipe a projde dalším příkazem (zde stop-service)</div>
<div> </div>
<div># Get-Command * -ParameterName *computer* | measure //vypíše počet příkazů, kde je parametr "computer name" - můžeme něco dělat vzdáleně</div>
<div># Enable-PSRemoting //zapíná se na OS, který bude ovladatelný - poskytuje příležitost pro někoho jiného, aby ho remote ovládal (bude slave) - vždy potřebuji ale admin práva (není to bezpečnostní díra)</div>
<div># Invoke-Command -ComputerName &lt;name&gt; -ScriptBlock {script} //co napíšu do složených závorek se provede na specifikovaném počítači (vzdáleně)</div>
<div># Invoke-Command -ComputerName &lt;name&gt; -ScriptBlock {Get-ComputerInfo | ft Ostype, .....}</div>
<div> </div>
<div># Out-File &lt;cesta k souboru&gt; //výstup do textového souboru</div>
<div> </div>
<div>1) zvolím příkaz (např Get-ADUser)</div>
<div>2) zkusím jaké parametry může mít (Get-ADUser | Get-Member)</div>
<div>3) může to po mně chtít filtr, můžu použít např *, občas musím napsat i že chci všechny parametry (??) # Get-ADUser -Filter * -Properties* | Get-Member</div>
<div>4) vyčtu co za parametry můžu použít</div>
<div>5) naformátuji do tabulky pomocí ft za pipe</div>
<div> </div>
<div>&gt; takže nejprve zjistím pomocí Get-Member, co všechno můžu zjistit vypsat, a pak to pomocí ft (format table) vypíšu</div>
<div> </div>
<div>// když pustím session a virtuál běží, kdo vytváří GUI?</div>
<div>// kam se uklídají checkpointy a jak jsou velký?</div>
<div> </div>
<div># winrm qc //stejná funkce jako Enable-PSRemoting, čili: spustí funkci winrm, nastaví ji na automatický start se systémem, povolí její prostup na firewallu</div>
<div># winrs -? //windows remote management, můžu spouštět a operovat se vzdáleným strojem</div>
<div># winrs -r:&lt;name&gt; set //vypíše sadu proměnných na vzdáleném stroji</div>
<div># winrs -r:&lt;hostname&gt; cmd.exe //spustí command prompt na vzdáleném stroji, všechny příkazy se budou aplikovat jako kdybych je psal tam</div>
<div> </div>
<div>#############################################################################################################################################################################################################################</div>
<div>########################################################################################### ACTIVE DIRECTORY #########################################################################################################</div>
<div>#############################################################################################################################################################################################################################</div>
<div>- Azure Active Directory (nyní Entra ID) je v podstatě cloudová AD - standardní Active Directory je on-premise řešení</div>
<div> </div>
<div>- Microsoft odděluje:</div>
<div>- autentizace - kontrola identity, má určitý výsledek - buď se v systému identita najde nebo ne, výsledkem je SID (Security ID) </div>
<div>- autorizace - přidělení určitých oprávnění na základě identity, kontrola práv</div>
<div>- tato oblast se v Microsoftu jmenuje PIM/PAM (Priviledged Identity Management a Priviledged Access Management) - přidělování oprávnění atd.</div>
<div>- pozn.: primární otázkou u bezpečnosti je: jaké používám bezpečnostní protokoly?, často se bezpečnostní auditoři zaměřují na detaily, které nejsou tak zásadní jako například že mám povolené NTLM1 či NTLM2 (zastaralé protokoly)</div>
<div>- www.sevecek.com - dobré stránky na učení o těchto problematikách</div>
<div> </div>
<div># whoami /all //zobrazí vše ohledně mého loginu, SID i členství ve skupinách</div>
<div> </div>
<div>autentizace:</div>
<div>- primární - musí vždy proběhnout, může být jen lokální a doménová </div>
<div>- sekundární- může být lokální, doménová, cloudová (MS - Entra ID (Azure Active Directory), MSACCOUNT / další)</div>
<div> </div>
<div>- access token - bezpečnostní známka, kde jsou všechny moje identity ze kterých si nesu práva</div>
<div>- workgroup - pokud nemám doménu, počítače ve stejné workgroup si mohou sdílet prostředky navzájem, designované pro menší sítě</div>
<div>- AD DS - role serveru, active directory domain services - po instalaci se ze serveru stane doménový řadič (domain controller)</div>
<div> </div>
<div>- uživatelské !lokální! účty si můžu zobrazit přes regedit HKEY_LOCAL_MACHINE &gt; SAM &gt; Domains &gt; Account &gt; Users // můžu si nainjektovat hashe ostatních hesel/nainjektovat svoje heslo na ostatní účty</div>
<div>// můžu svoje heslo např nainjektovat do admin účtu přes regedit - SAM je velmi nezdabezpečená!</div>
<div>// zabezpečení můžeme zvýšit aspoň šifrováním disku bitlockerem - live linuxem se jinak můžu připojit k systému a lézt do toho všeho</div>
<div>// pokud se do registru nemůžu dostat, můžu si pravým kliknutím přidat oprávnění pro svůj účet</div>
<div> </div>
<div>- Active Directory je adresářová služba, založená na LDAP, v její databázi jsou uloženy naše identity, které AD ověřuje</div>
<div>- funkci AD provozuje server, kde je nainstalovaná role ADDS - tento server se označuje jako doménový řadič (DC - domain controller)</div>
<div> </div>
<div>- části:</div>
<div>- fyzické - Doménový řadič</div>
<div>- Data store ( C:\Windows\NTDS\NTDS.dit )</div>
<div>- SYSVOL ( C:\Windows\SYSVOL )</div>
<div>- Global Catalog Servers// tento řadič má více informací než standardní DC, pokud mám ve firmě pouze jeden DC, musí být Global</div>
<div>- Read-only Domain Controllers (RODC)// tento řadič slouží pouze pro čtení, nemůžeme do něj zapisovat (např. nelze změnit heslo z pohledu usera)</div>
<div> </div>
<div>- logické - Domain</div>
<div>- Domain Tree// vznikají spojením více domén, vztahy parent-child, tree-root (obousměrné), existují i jednosměrné</div>
<div>- Forest</div>
<div>- AD Schema</div>
<div>- AD Site</div>
<div> </div>
<div>- ve chvíli kdy mám více DC - musí se např. databáze účtů replikovat, pozor na to že některé změny se propisují až za nějakou dobu</div>
<div> </div>
<div># whoami /all // username: jméno se skládá z NetBIOS (doménového jména) / jména usera,</div>
<div>// SID - moje ID plus doménová část (pro všechny v jedné doméně stejná - GUID - globally unique ID) a na konci část mého unikátního doménového čísla (RID - relative identifier)</div>
<div> </div>
<div>- Domain Tree - vzniká spojením více domén, např.: hlavní část firmy mám v Americe (to bude forest root doména), druhou v Evropě - jsou mezi nimi vztahy (parent-child trust, tree-root trust)</div>
<div>- toto jsou zároveň tzv. DNS zóny</div>
<div>- když nedědím název, jsem v 2. DNS zóně</div>
<div> </div>
<div>- doména je rozdělena na - organizační jednotky (OU - organisation units) - objekty v AD, které mají tři hlavní účely - kontejner na separaci objektů, nejmenší objekt na který se dají aplikovat GPO</div>
<div>- kontejnery - jsou to systémové objekty na které nelze aplikovat group policy, obsahují další objekty</div>
<div> </div>
<div>- doména (NTDS.dit) je rozdělena na tři logické části</div>
<div>- domain partition - praktická část, všechny objekty</div>
<div>- configuration partition- nastavení</div>
<div>- schema partition- popisuje strukturu a možnosti objektů (kolik mám tříd objektů, kolik atributů a vazbu mezi nimi) - editovatelné</div>
<div> </div>
<div># regsvr32 schmmgmt.dll //zaregistrujeme do registru dynamicky linkovanou knihovnu schema management - uschopnil jsem systém aby mohl editovat AD schema</div>
<div>// každá třída má ještě relationships - každý objekt má taky nějaké nadřízené objekty a ty můžou mít mandatory attributes, tudíž ty mandatory attributes se dědí</div>
<div> </div>
<div>- přesunovat soubory z a do AD lze pomocí nástroje NTDSUtil.exe</div>
<div>- ADSI Edit - přístup do AD na servisní úrovni (něco jako regedit)</div>
<div> </div>
<div>- Global Catalog - musí být v každé AD doméně, má index všech objektů z forestu (read only), drží i některé atributy z ostatních domń ve forestu, první DC v doméně je zároveň GC</div>
<div> </div>
<div># Get-ADDomainControler //vypíše info o DC</div>
<div> </div>
<div>Instalace AD</div>
<div>- instalace role AD Domain Services // # Install-WindowsFeature AD-Domain-Services</div>
<div>- následné povýšení serveru na DC // Install-ADDSDomainController</div>
<div>- následná kontrola IP adresace + musím nastavit DNS</div>
<div> </div>
<div> </div>
<div>Domain functional level (DFL) - funkční úroveň - hodnota znamená jestli preferuji zpětnou kommpatibilitu nebo maximální vlastnosti; nemůže být nižší než FFL</div>
<div>Forrest functional level (FFL) - musí být kompatibilní s ostatními řadiči v doménovém forrestu - např. kvůli replikacím atd.</div>
<div>- pozn. nejnovější functional level je 2016 - v AD se nic dramatického už nevylepšilo v novějšich verzích Windows Serveru</div>
<div>- funkční úrovně můžu měnit - pravým tlačítkem v Active Directory Users and Computers kliknu na doménu - položka Raise domain functional level</div>
<div> </div>
<div>- FSMO role na DC se neaktualizují samy, musíme to udělat ručně (PDC emulátorové role)</div>
<div>- BPA - best practices analyzer - analyzuje doménový řadič, zda je vše v pořádku</div>
<div>- v celém forrestu je jen 1 DC, který je schema controller - pouze na něm lze editovat schéma (atributy, třídy atd.)</div>
<div>- zároveň i RID master je pouze 1 DC v doméně (ale ne ve forrestu)</div>
<div> </div>
<div>Základní správa tedy:</div>
<div>- AD Users and Computers</div>
<div>- AD Sites and Services</div>
<div>- AD Domains and Trusts</div>
<div>- AD Schema // nutná registrace pomocí příkazu regsvr32.exe schmmgmt.dll</div>
<div>- AD Administrative Center// grafické, dole píše příkazy co klikám přes GUI, lze zkopírovat a udělat z toho menší jakoby skripty</div>
<div> </div>
<div> </div>
<div># New-ADUser &lt;name&gt; -Path "&lt;path&gt;" -AccountPassword (read-host -AsSecureString) -Enabled $true &lt;heslo&gt; // &lt;path&gt; musí být specifikována jako "ou=organizacni_jednotka,dc=organizacni_jednotka,dc=local"</div>
<div>// tímto v PowerShellu vytvořím usera s heslem do specifikované OU</div>
<div>- SamAccountName musí být vždy jedinečné v celé doméně</div>
<div>- UserPrincipalName musí být jedinečné v celém forrestu // čili to, že se mi nedaří vytvořit nového uživatele může mít za příčinu jednu z těchto věcí</div>
<div>// někdo v jiné doméně (ale stejném forrestu) může mít stejné UserPrincipalName</div>
<div>- povinné atributy jsou dva (v některých konzolích 3) - Full Name a SamAccountName</div>
<div>- vlastnosti uživatelů - klíčová je záložka "Account" // pozn.: důležité mít v AD Users and Computers &gt; View &gt; Advanced features tuto volbu zaškrtnutou</div>
<div>- mazání uživatelů - Microsoft doporučuje uživatele nemazat, spíše přesunout do speciální OU kde jsou všechny objekty ve stavu "disabled" a pomocí Group Policy jim zakázat spouštět jakékoliv aplikace</div>
<div>- při replikaci z dalších DC by navíc mohlo dojít k tomu, že se objekt nareplikuje zpátky</div>
<div>- pro řádné smazání se musí přidat atribut "isDeleted" na "$true" - objekt se proreplikuje, není vidět a za nějakou dobu (180 dní) se opravdu smažou (??)</div>
<div>- obnovu objektů (náhrobků) umí například LDP.exe</div>
<div> </div>
<div>- sysinternals suite - z MS webu lze stáhnout sadu nástrojů které pracují na systémové úrovni (např AdRestore - umí obnovovat smazané objekty); useful i na jednotlivých stanicích</div>
<div>- volitelný odpadkový koš - lze zapnout "Enable Recycle Bin" v AD Administrative Center</div>
<div>- hesla uživatelů jsou uložena pouze jako hashe v NTDS.dit // pokud v nastavení účtu v záložce account zaškrtnu "store password using reversible encryption", je heslo opravdu uložené v AD, a dá se dešifrovat = bezpečnostní díra</div>
<div> </div>
<div>Skupiny v AD</div>
<div>- groups jsou skupinové objekty, do kterých můžu řadit nejen usery, ale také počítače, objekty počítačů nebo ostatní groups</div>
<div>- např.: authenticated users - skupina, do které se objekt přiřadí pokud je úspěšně autentizován</div>
<div>- uživatel má díky členství v groups jejich práva</div>
<div>- při vytváření nové group musíme zadat</div>
<div>- název skupiny</div>
<div>- group type (security - má přidělena nějaká práva / distribution - pouze adresační prvek) </div>
<div>- group scope - rozsah jejího použití (local - dá se použít jen v dané doméně; global - dá se použít v celém forrestu) a zároveň membership (koho můžu do té skupiny strkat);</div>
<div>- Local (použití v doméně, forrestový membership); Global (forrestové použití, doménový membership) ; Universal (forrestové použití, forrestový membership)// crazy pozn.: v MS materiálech se vyskytuje nejprve U - user; pak A - Account; nyní I - identity - vše referuje na to stejné</div>
<div> </div>
<div>- best practice- Identity &gt; Global Group &gt; Domain Local Group (a té pak přiřazovat oprávnění)- globální skupiny používat jako typologie uživatele ( User_Eva &gt; Group_Sekretářky &gt; Print_Access_Group)</div>
<div>- Global Group (Group_Sekretářky) pak přiřazovat do DL groups, které mají určitá oprávnění, která pak nastavuji přes group policy editor - přehlednější</div>
<div> </div>
<div>Výchozí skupiny</div>
<div>- nejvyšší práva mají Enterprise Admins - správci celého forrestu</div>
<div>- potom Administrators, buď global nebo local</div>
<div>- potom Operators</div>
<div>- Server Operators - mohou se starat o síťové služby a o sdílené složky (co je sdíleno, s jakými právy atd.)</div>
<div> </div>
<div>- je dobré vytvářet a ukládat queries - např.: vytvořím dotaz na zobrazení všech uživatelů - new query, v poli "advanced" dám třeba "telex number" is not "nejaka silena hodnota", query spustim poklikáním</div>
<div> </div>
<div>Speciální skupiny a identity</div>
<div>- Everyone// dost často se řeší jestli používat Everyone nebo Authenticated Users - autentizovat se musí pro vstup do domény každý </div>
<div>- Authenticated Users// jsou zde i počítače, objekty prošly autentizací</div>
<div>- Anonymous logon</div>
<div>- Interactive</div>
<div>- Self</div>
<div> </div>
<div>- Everyone i Authenticated Users vyžadují autentizaci (pokud chci povolit anonymní uživatele, musím použít skupinu "Anonymous Logon"); je mezi nimi rozdíl pouze v objektu "Guest" - v Everyone je, v Authenticated Users není</div>
<div>- rozdíl mezi skupinami je minimální, není to žádná security díra, protože i Guest má přihlašovací údaje, jen je v defaultu disabled</div>
<div> </div>
<div>Computer accounts</div>
<div>- i počítače v doméně podléhají autentizaci, proto patří do skupiny Authenticated Users - mají elektronickou identitu; login končí znakem $, heslo (128 znaků) si mění automaticky každých 30 dní</div>
<div>- výchozím místem kde se vytvářejí účty počítačů v AD je kontejner Computers</div>
<div>- člověk musí zadat heslo, jehož hash se kontroluje oproti DC</div>
<div>- prvně se ale musí ověřit i počítač - Kerberos dělá dvojí autentizaci; i počítače tedy mají svoje heslo, které se vytváří automaticky (vůbec o něm nevím, ale probíhá jeho kontrola)</div>
<div>- může se mi stát, že toto heslo bude špatně - špatně se autentizuje počítač a nikdo se z něj tedy nepřihlásí</div>
<div>- v event vieweru - event 4624 znamená logon</div>
<div> </div>
<div>Připojení PC do domény</div>
<div>1. způsob</div>
<div>- musím zkontrolovat síťařinu - prostup PC do sítě, dostupnost DNS serveru</div>
<div>- v ovládacích panelech &gt; system and security &gt; advanced system &gt; system properties &gt; computer name - Member of &lt;domain&gt;</div>
<div>2. způsob</div>
<div>- přidám počítač do OU "PCs"</div>
<div>- musím zadat jméno a upravit skupinu (/přidat usera), co bude moct počítač připojit do domény</div>
<div>3. způsob</div>
<div>- # djoin.exe /? // funguje i pro offline připojení do domény - na DC udělám djoin, přenesu si soubor na flashce na PC a djoinem ho ze souboru načtu - až se pak PC připojí tak už bude přidán do domény</div>
<div> </div>
<div>- občas se na PC rozbije tzv. trust relationship (např. nesedí heslo atd., nebo síť může mít příliš velkou latency, během které expiruje platnost Kerberos ticketů - toto lze řešit např. QoS na aktivních prvcích, ne v AD)</div>
<div>- detekce problému - Nltest.exe /sc_verify:&lt;domainname&gt; ; Test-ComputerSecureChannel -Repair</div>
<div>- možnosti opravy - odpojení a následné připojení PC do domény; Netdom.exe /resetpwd (toto ale není v klientských OS); Reset-ComputerMachinePassword -Server &lt;servername&gt; -Credential &lt;credentials&gt;</div>
<div> </div>
<div>Delegace pravomocí</div>
<div>- lze dělat na kontejnerech i na OU</div>
<div>- průvodce umí pouze přidávat, neumožňuje editovat či zobrazovat co jsem udělal - dělá pouze "usnadnění" zápisu nových práv do karty security</div>
<div> </div>
<div>- pozn.: - vytvoření sdílené složky - vytvoření "publikace" - deklaruji že na nějakém počítači je nějaká sdílená složka (zadávám network path)</div>
<div>- jako uživatel pak dojdu do Windows Exploreru - Network - nahoře "Search Active Directory" - i obyčejný uživatel v některých případech může zobrazit všechny uživatele v doméně a nedá se tomu zabránit</div>
<div> </div>
<div>#############################################################################################################################################################################################################################</div>
<div>########################################################################################### GROUP POLICY #########################################################################################################</div>
<div>#############################################################################################################################################################################################################################</div>
<div> </div>
<div>- Microsoft má dva pilíře bezpečnosti (LSASS.exe)</div>
<div>- práva// v linuxu má třeba root práva automaticky, u MS ne; best practice je přidělovat práva přes groups</div>
<div>- policies// většinou se řeší přes OU</div>
<div> </div>
<div>- potřebuji dvě povolovací známky, abych mohl udělat nějakou činnost - můžu být Enterprise Admin ale pokud jsem zakázán pomocí GPO, nemůžu dělat prakticky nic (čili můžu si jedním kliknutím zaříznout veškerou činnost)</div>
<div>- u každého uživatele tedy řeším dvě věci - z groups má práva a z OU se na něj vztahují politiky (best practice)</div>
<div>- práva se řídí "prioritou zákazu" - když uvnitř subsystému práv něco zakážu, má prioritu ten zákaz (pokud je uživatel ve dvou skupinách, jedna má věc X povolenou a druhá věc X zakázanou, bude ji mít zakázanou)</div>
<div>- politiky toto nemají, enabled i disabled mají stejnou váhu; GPO přiřazuju ke konkrétním OU, a na všechny objekty v tomto OU začne platit</div>
<div> </div>
<div>GPO umí</div>
<div> - změna nastavení PC nebo OS, změna nastavení uživatele, spouštění skriptů, instalace SW, mapování disků/tiskáren atd</div>
<div> - nastavitelných jednostlivostí jsou tisíce</div>
<div> </div>
<div>GPO má dvě části</div>
<div>- Computer configuration//</div>
<div>- User configuration//</div>
<div> </div>
<div>- jsou věci které jdou nastavit pouze pro uživatele, věci které jdou nastavit pouze pro počítač a věci které jsou nastavit pro oba</div>
<div>- např.: smazat všechny ikony na ploše je věc uživatelská (desktop je v user configuration), zákaz aplikace winword.exe - v computer config to zakážu pro všechny uživatele na daném zařízení, v user config pro uživatele</div>
<div>- jelikož se první autentizuje v AD počítač a pak až teprve uživatel, systém první vyhodnocuje computer configuration</div>
<div># gpupdate // CLI příkaz pro refresh GPO, může ho použít i uživatel - sám o sobě nedokáže pracovat remotely, pokud ho chceme spustit vzdáleně, musíme použít nějakou variantu remotingu</div>
<div>// většinou updatuje jen změnové údaje, parametrem force můžu říct ať updatuje úplně všechno</div>
<div># Invoke-gpupdate // PS příkaz který dělá to samé, lze remotovat</div>
<div>- konzole GPMC - umožňuje kliknout na jakoukoliv OU a udělat auktualizaci zásad</div>
<div> </div>
<div>- lokální politiky se aplikují hned, doménové mají intervaly 90 až 120 minut / lze ručně vynutit (gpupdate) / občas musím stanici i restartovat (v oficiální MS dokumentaci až 5 restartů) //pozn.: PC si může po restartu stáhnout třeba jen část, za další restart další část, pokud změním na DC v GPO třeba jen jednu věc a chci aby se mi propsala hned, můžu restartovat vážně hodněkrát a nikdy nevím jakou část si PC zrovna stáhne, takže to teoreticky můžu restartvoat jak kokot třeba 50x reálně</div>
<div> </div>
<div>Lokální politiky</div>
<div>- C:\Windows\System32\GroupPolicy</div>
<div>- lokální objekt zásad platí pro lokální autentizaci, ale v rámci domény má nejnižší prioritu; pokud se přihlašuji lokálně, platí lokální politika, pokud doménově tak doménová</div>
<div>- existuje možnost mít více lokálních politik (např. pro různé účty)</div>
<div>- editace pomocí GPEdit.msc</div>
<div> </div>
<div>Doménové politiky</div>
<div>- uložené částečně v databázi AD a v adresáři SYSVOL</div>
<div>- editace pomocí Group Policy Management Console (GPMC) - řídím vytváření nových GPO objektů, jejich linky, zálohování</div>
<div>- editace pomocí Group Policy Management Editor (GPME) - editace </div>
<div>- pro správu GPO z klientského OS ke stažení nástroj - Remote Server Administration Tools (RSAT)</div>
<div> </div>
<div>pozn.: MLGPO - multiple local group policy object (??)</div>
<div> </div>
<div>Aplikace politik</div>
<div>- GPO si klienti stahují sami z DC (ze SYSVOLu)</div>
<div>- na klientech se o toto stará služba Group Policy Client, aplikování provádí Client Side Extensions (CSE); seznam CSE je v registrech (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\GPExtensions)</div>
<div> </div>
<div>GPO má dvě části</div>
<div>- Container - v AD je jako objekt s atributy</div>
<div>- Template - co GPO nastavuje a jak; (adresář v sysvol, GPT.ini, registry.pol)</div>
<div> </div>
<div>Výchozí doménové GPO</div>
<div>- default domain policy - politiky na hesla, vlastnosti Kerberos protokolu, Mastavení EFS Recovery Agenta atd.</div>
<div>- default domain controller policy - user rights assignments, nastavení auditování atd.</div>
<div>- dá se udělat GPO restore pomocí DCGPOFix.exe</div>
<div> </div>
<div>- GPO lze navázat na </div>
<div>- AD Site (ve výchozím stavu se nezobrazují)</div>
<div>- AD Domain</div>
<div>- AD Organizational Unit</div>
<div>- GPO nelze navázat přímo na</div>
<div>- Uživatele</div>
<div>- Skupinu</div>
<div>- Počítač</div>
<div>- Systémové kontejnery</div>
<div> </div>
<div>- pro aplikaci GPO je vždy třeba vytvořit link, samy o sobě jsou uloženy v Group Policy Objects ale pokud nejsou linknuté na OU, neaplikují se</div>
<div>- GPO nezle navázat přímo na uživatele, filtrovat lze podle uživatele, počítače, skupiny - oprávnění Allow/Deny; pro aplikování GPO musí být zaškrtnuté - read, Apply Group Policy </div>
<div>- reference guide - https://www.microsoft.com/en-us/download/details.aspx?id=25250 - excel soubory ke stažení</div>
<div>- hodně podstatných nastavení je zde - user config &gt; policies &gt; administrative templates &gt; System //fungují zde filtry - když nevím jak se politika jmenuje</div>
<div>- spouštění programu po logonu, remove lock from locked account, atd</div>
<div>- existují ještě i preferences - tam si můžu zvolit spoustu dalších věcí co se dají aplikovat na objekty v doméně, zde item targeting = určím podmínky které musí objekt splňovat aby se něco uplatnilo</div>
<div>- Group Policy Modeling - určuji jaké GPO se budou aplikovat při různých situacích, např. jak dopadne politika když bude fungovat jen 1 řadič a bude pomalá síť</div>
<div>- loopback processing znamená, že se řídí vždy pomocí Local System group policy, ne doménovým a ne uživatelským policy</div>
<div>- v záložce detail lze (???) způsobem přes wizard vygenerovat dokument kde je napsaný vždy které je winning GPO pro danou věc</div>
<div> </div>
<div>#############################################################################################################################################################################################################################</div>
<div>########################################################################################### NETWORK CONFIG #########################################################################################################</div>
<div>#############################################################################################################################################################################################################################</div>
<div>DHCP server</div>
<div>- IPv4 - klasicky static/dynamic</div>
<div>- DHCP ( DHCPDISCOVER &gt; DHCPOFFER &gt; DHCPREQUEST &gt; DHCPACK ) // výchozí lease adresy u MS je 8 dní, většinou v půlce doby platnosti se lease prodlužuje</div>
<div>- instalace DHCP serveru - přidám v programu Server Manager roli serveru - DHCP; po instalaci jdu do konfigurace - pravým tlačítkem musím dát "authorize"</div>
<div>- New Scope - vyberu pool adres - volím adresy ze stejné sítě jako DHCP server, i stejnou masku</div>
<div>- volitelně mohou DNS a DHCP spolupracovat spolu, musí se konfigurovat na obou stranách - funkce je, že pokud se změní moje IP adresa, dynamicky se toto změní i v DNS databázi</div>
<div>- DHCP rezervace - pevné spojení MAC adresy a IP adresy - zaručená jedinečnost</div>
<div>- Scope Options - nepovinné údaje, typicky se ale zadávají 2 options - adresa DNS a adresa default gateway (v záložce Server options - aplikování pro celý server, Scope options - jen pro můj scope)</div>
<div>- 003 Router - to je default gateway</div>
<div>- 006 DNS Server - adresa DNS Serveru</div>
<div>- dalších spoustu celkem dost zajímavých options (NTP, atd.)</div>
<div>- DHCP security - lze jednak ověřit DHCP server v AD doméně, druhak nastavit na L2 DHCP snooping - nastavím na switchi, na kterém interface bude trusted DHCP server - pokud se někdo připojí jako DHCP server na jiný port, bude zakázán</div>
<div>- lze mít více DHCP serverů, lze nastavit partnership a v % jim určit load balancing</div>
<div> </div>
<div>DNS server</div>
<div>- domain name resolution, hierarchická struktura - úplně navrchu je root (reprezentována tečkou), pod ním top-level domain (cz, sk, org, net,...), second-level (gopas.cz, seznam.cz) atd.</div>
<div>- celý svět je rozdělen na DNS zóny, v každé je minimálně 1 DNS server (autorithative DNS server), který drží veškeré záznamy z celé té zóny </div>
<div>- DNS je hierarchický distribuovaný systém doménových jmen</div>
<div>- překládá jména na IP adres (A záznam), jména na jiná jména, IP adresy na jména; má na starosti i lokalizaci služeb (záznamy typu MX - SMTP servery; záznamy typu SRV - Active Directory; ...)</div>
<div> </div>
<div>- počítače mohou mít jména:</div>
<div>- Host Name- až 255 znaků //typy překladových metod - pořadí 1)Cache, 2)LLMNR, 3)DNS; (názvová cache # ipconfig /displaydns) pozn.: dobré na zobrazení DNS jmen, kam se uživatel připojoval; když se dostanu do souboru host, můžu zakazovat uživateli přístup např. na různé stránky</div>
<div>- NetBIOS Name - až 16 znaků (resp. 15, poslední znak označuje službu); jsou označeny jako legacy, ale pořád jsou v doménách zapnuté</div>
<div>- NetBIOS jsou pořád jako "záložní" varianta používané, pokud aplikace nenajde HostName, zkouší ještě NetBIOS; ncpa.cpl - IPv4 config - Advanced TCP/IP settings - WINS - NetBIOS setting; obecně je doporučeno toto vypínat</div>
<div>- na DHCP serveru v Server Options - Advanced - Vendor Class: Microsoft Options - 001 Disable Netbios Option //vypne NetBIOS usage všem DHCP klientům (jen DHCP klientům!)</div>
<div> </div>
<div>- instalace - přidám roli serveru jako DNS, musím mít práva a statickou IP adresu</div>
<div>- DNS Manager - Forward lookup zones // zde můžu třeba přidávat CNAME (aliasy, pod kterými pak lze přistupovat k IP adresám, DNS dělá překlad)</div>
<div>- FQDN - fully qualified domain name // když mam v DNS Manageru doménu gopas.local, v ní vytvořím poddoménu test, v ní poddoménu ahoj, v ní CNAME (odkaz na někoho třeba ve vyšší doméně) třeba dement</div>
<div>// bude FQDN co zadávám # ping dement.ahoj.test.gopas.local</div>
<div> </div>
<div>Zóny DNS </div>
<div>- dopředné zóny - překlad jmen na IP adresy</div>
<div>- reverzní zóny - překlad IP adres na jména</div>
<div>- Každá zóna (dopředná i reverzní) může dále být:</div>
<div>- Primární- plná kopie zóny, vždy zapisovatelná, obsahuje všechny typy záznamů// není povinná</div>
<div>- Sekundární- plná kopie primární zóny, read only// je povinná</div>
<div>- Stub- kopie primární zóny; pahýlová, není autoritativní, není plnohodnotná; slouží pouze pro nalezení DNS serverů</div>
<div> </div>
<div>- nová zóna - pravým tlačítkem spustím wizard, zvolím typ zóny (na doménovém řadiči lze zvolit i možnost udělat integraci s AD, což Microsoft doporučuje, ale pozor, má to svá specifika!)</div>
<div>- dynamické updates - možnost jen když máme integraci s AD (při provázanosti s DHCP serverem je toto jasná volba zabezpečení, nikdo se nemůže vydávat za DHCP rogue server a upravovat záznamy DNS)</div>
<div>- při tvorbě sekundární zóny (na jiném DNS serveru) zprvu nefunguje transfer, musíme specifikovat kdo bude moct mojí databázi načítat</div>
<div>- AD integrated zóny mají svá specifika</div>
<div>- delegace zón - můžu deklarovat, že o doménu která je vedena na mém DNS serveru se bude starat někdo jiný (jen v DNS)</div>
<div>- u DNS i u DHCP jdou nastavit i policy (u DHCP - přiděl adresu, pokud jsou splněné nějaké podmínky); u DNS např.: na stejný dotaz budu vždy podle určitých podmínek odpovídat nějak jinak (např. čas atd)</div>
<div>- DNS dotazy - rekurzivní (zeptám se a počkám, až se vrátí odpověď pozitivní či negativní) / iterativní (zeptám se a spokojím se i s "nejlepší možnou" odpovědí)</div>
<div>- DNS odpovědi - Autoritativní - odpovídál server, který má DNS zónu přímo "na sobě"</div>
<div>- Neautoritativní - odpověď je získaná z cache/forwarderu</div>
<div>// když není odpověď na dotaz v DNSServerCache, podívám se do sekce Conditional Forwarding, zda nemám záznam o tom kdo by na dotaz odpověďět mohl</div>
<div>// můj firemní DNS sever může forwardovat jakékoliv vnější dotazy, co nejsou někam do mnou vedených domén, do DNS Serveru například providera</div>
<div>- pozn.: například v internetu - hledání www.seznam.cz -&gt; DNS Servery si posílají dotazy tak, že můj požadavek jakoby "rozčlení" - nejdřív se zeptám roota, ten mě odkáže na DNS server domény "cz", ten na DNS co má "seznam"</div>
<div> </div>
<div>Souborový systém a NTFS oprávnění</div>
<div>- souborové systémy NTFS a ReFS disponují možností nastavovat oprávnění (třeba FAT32 toto nemá) //ReFS je nejnovější Microsoft data storing technologie, použití v data centrech</div>
<div>- oprávnění jsou formou ACL</div>
<div>- priorita zákazu není absolutní - absolutní je priorita explicitních oprávnění oproti implicitním (zděděným) //pokud mám složku kam uživatel "Filip" nemá přístup, ale v ní je soubor ke kterému mu explicitně povolím přístup, pak se na něj dostane</div>
<div>- jsou 4 možnosti:</div>
<div>- Zděděné (implicitní) - allow/deny</div>
<div>- Explicitní - allow/deny</div>
<div>- existují i sdílená práva </div>
<div>- sdílení složek- advanced sharing - nasdílím, přidám security principals co ke složce budou moct přistupovat a jejich oprávnění</div>
<div>- když už, používat advanced sharing položku!!! nikdy ne tu první "share", protože tím se z nějakého důvodu vymažou všechna práva co tam byla jinak nastavená</div>
<div>- NEPOUŽÍVAT SDÍLENÁ PRÁVA, POUZE LOKÁLNÍ </div>
<div>- # Get-SmbShare; # New-SmbShare</div>
<div>- Computer Management - Create a Shared Folder Wizard//access-based enumeration - zobrazí uživateli složku jen když tam má přístup</div>
<div>- stínové kopie souborů - jedná se o "verzování" souborů a adresářů pomocí služby VSS (defaultně 2x denně)</div>
<div>- ze stínových kopií lze obnovovat předchozí verze souborů</div>
<div> </div>
<div>- instalace přes server roles - po rozkliknutí se nabízí další možnosti // File and Storage Services &gt; File and iSCSI Services</div>
<div>- File Server- Základ pro sdílení složek</div>
<div>- Deduplikace dat- Nemá GUI, dá se konfigurovat přes PS nebo Server Manager// pozn. existuje i hardware deduplikace (NetApp, EMC-Dell) - po 32kbit kouskách porovnávám kousky dat (na dedikovaném zařízení); zajímavá tematika z hlediska cloudu a data center</div>
<div>- v případě, že používám úložiště s deduplikací je na místě implementovat robustnější redundancy mechanismy - více logicky uspořádaných dat závisí na těch, co jsou uspořádané fyzicky, je dobré mít např. častější backup/replikaci</div>
<div> </div>
<div>DFS</div>
<div>- masivní nadstavba nad sdílenymi složkami; čistá nadstavba (konfigurací nic, co už existuje neomezím)</div>
<div>- namespace - vymyšlená virtuální složka, která funguje jako nadstavba - do ní přidávám složky (až 60 tisíc složek na 1 namespace); klient si může přimapovat celý namespace</div>
<div>- 3 vrstvy (targets - folders - namespace) - v namespace můžou být namapovány složky např. z různých serverů, případně i z různých domén</div>
<div>- můžu spojovat i namespaces do sebe</div>
<div>- instalace - přidám roli serveru "DFS Namespaces" v záložce File and Storage Services</div>
<div>-ovládání pomocí nástroje DFS Management - New Namespace Wizard</div>
<div>- Domain-based - umožňuje doménovou adresaci dat (3 úrovně dat podle toho jestli jsou u mě na serveru nebo v jiná doméně)</div>
<div>- Stand-alone </div>
<div> </div>
<div>FSRM - file server resource manager</div>
<div>- podstatná součást každého file serveru, ovládá se přes File Server Resource Manager; (kdyžtak dokoukat na videích na yt)</div>
<div> </div>
<div>Windows Firewall</div>
<div>- host based firewall integrovaný do Windows, má příchozí a odchozí pravidla</div>
<div>- Má tři profily nastavení // aktuální profil zjistíme přes PS příkazem # Get-NetConnectionProfile</div>
<div>- Domain- nikdy nevybíráme ručně, nastavuje se vždy automaticky</div>
<div>- Public- nastavujeme ručně, sám se nastaví, když nemáme nastavenou gateway na NIC</div>
<div>- Private- nastavujeme ručně, je méně restriktivní než Public</div>
<div>- logování do souboru nebo pomocí auditingu do security logu</div>
<div>- zastavení služby firewall nevypíná</div>
<div>- nastavení se dá exportovat do souboru (.wfw), můžu si třeba nakonfigurovat na PC, nechat si to schválit auditorem a pak to naexportovat do GPO domény</div>
<div> </div>
<div>UAC - user account control</div>
<div>- má zabránit "neautorizovaným" změnám v konfiguraci, třeba že by mi něco mohl konfigurovat nějaký škodlivý kód (pojistka proti background útokům)</div>
<div>- nastavení v msconfig - záložka Tools (UserAccountSettings.exe)</div>
<div>- pomocí local policy/group policy // Local Policies - Security Options</div>
<div> </div>
<div>BitLocker</div>
<div>- vestavěná technologie šifrování</div>
<div>- Volume-Based</div>
<div>- MS doporučuje, aby minimálně disk C byl zašifrován BitLockerem; lze ho samozřejmě použít i pro externí disky</div>
<div>- GPO:</div>
<div>- Administrative Templates - Windows Components - Bitlocker Drive Encryption; pro systémové disky - Operating System Drives</div>
<div>- Důležité i "Choose how users can recover BitLocker-protected drives" - zde můžu určit i záchranné informace</div>
<div> </div>
<div>EFS - encrypted file system</div>
<div>- není to konkurence BitLocker, používá se na něco jiného</div>
<div>- šifrování jednotlivých souborů nebo adresářů, je potřeba EFS certifikát</div>
<div> </div>
<div>Password Policy</div>
<div>- V GPO:</div>
<div>- Computer Configuration - Windows Settings - Security Settings - Account Policies - Password Policy</div>
<div>- v MS nejde aplikovat jiné password policies pro různé OU/objekty domény - nastavuje se pro celou doménu // pokud chci mít různé password policies, MS doporučuje prostě udělat více domén</div>
<div>- granulární politika hesel - Password Setting Objekty // moc často se nepoužívá, dělá se v AD Administrative Centru (Server Manager) (??) DDP - FGPP - PSC - PSO - PSS</div>
<div>// AD Administrative Center - &lt;Domain&gt; - System - Password Settings Container</div>
<div>// jméno, precedence (pro případnou kolizi s další politikou)</div>
<div> </div>
<div>- account lockout policy se navztahuje na vestavěného administrátora (konec SID má 500); potenciální bezpečnostní díra, pokud znám jeho login jméno, můžu na něj bruteforcovat (nevztahuje se na něj politika lockout)</div>
<div> </div>
<div>AppLocker</div>
<div>- nástupce Software Restriction Policy</div>
<div>- umí omezit spouštění aplikací a prostředků</div>
<div>- v GPO</div>
<div>- User Configuration - Administrative Templates - System- Don't run specified Windows application// zvolím, jaké aplikace se mohou spouštět</div>
<div>- Custom User Interface// můžu zvolit, jaká aplikace bude uživatelským interface</div>
<div>- Ctl + Alt + Del options - Remove ...// zvolím možnosti SAS </div>
<div> </div>
<div>- Computer Configuration - Policies - Windows Settings - Security Settings - Software Restriction Policies// pravidla jsou defaultně co není zakázáno, to je povoleno</div>
<div>- AppLocker - je závislý na systémové službě "aplikační identita" (která standardně neběží, tudíž ji musím spustit); // pravidla jsou defaultně co není povoleno, to je zakázáno</div>
<p> </p>
            ]]>
        </content>
    </entry>
    <entry>
        <title>Cisco A2</title>
        <author>
            <name>Sklepmistr</name>
        </author>
        <link href="https://sklepmajstr.cz/cisco-a2.html"/>
        <id>https://sklepmajstr.cz/cisco-a2.html</id>
            <category term="Notes - Networks"/>

        <updated>2026-05-16T17:19:19+02:00</updated>
            <summary type="html">
                <![CDATA[
                    POZNÁMKY - symantec? co to je - symantec.com -PNETLab -TightVNC Connection -GNS3 - na simulaci celých IOS -yersinia - tool na útoky na L2 -macof - v Kali nástroj na přeplnění MAC adress tabulky - tap - něco jako SPAN ale lepší na odchytávání provozu&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                <div>POZNÁMKY</div>
<div> </div>
<div>- symantec? co to je</div>
<div>- symantec.com</div>
<div> </div>
<div>-PNETLab</div>
<div>-TightVNC Connection</div>
<div>-GNS3 - na simulaci celých IOS</div>
<div>-yersinia - tool na útoky na L2</div>
<div>-macof - v Kali nástroj na přeplnění MAC adress tabulky</div>
<div> </div>
<div>- tap - něco jako SPAN ale lepší na odchytávání provozu</div>
<div> </div>
<div>- DIX - Ethernet II</div>
<div>- 802.3 - jiny standard, taky Ethernet v podstatě ale má ve struktuře rámce za MAC adresací pole které označují délku rámce</div>
<div> </div>
<div>PŘÍKAZY</div>
<div> </div>
<div>enable //vstup do privilegovaného módu</div>
<div>configure terminal //vstup do konfiguračního módu</div>
<div>hostname &lt;WORD&gt; //změna hostname</div>
<div>do &lt;příkaz&gt; //když exec příkaz chci pustit v konfiguračním režimu (dobrej trik abych nemusel furt přepínat režimy)</div>
<div>no debug all //nebude mi už házet logy o ničem do konzole</div>
<div>no ip domain-lookup //nebude se snažit překládat příkazy přes DNS</div>
<div>logging synchronous //logy mi nebudou rušit příkazovou řádku (musim byt v prislusne line)</div>
<div>terminal length 0 //zrusi limit na pocet radku</div>
<div> </div>
<div>copy running-config startup-config //copy running konfigurace do startup konfigurace -&gt; vygeneruje seznam příkazů a uloží ho do ROM</div>
<div>copy startup-config running-config //pozor! není načtení konfigurace, pouze merge příkazů ze startup konfigurace do running!</div>
<div>//nahrání do running-config je vždy MERGE! pouze pokud ukládám do startup konfigurace, tak se to přepisuje</div>
<div>reload //restartuje, načte konfiguraci ze startupu</div>
<div> </div>
<div>write // také lze používat pro uložení do startup-configu</div>
<div> </div>
<div>POSLOUPNOST PRO PROVEDENÍ FACTORY RESETU</div>
<div>erase startup-config // smaže startup config</div>
<div>delete vlan.dat // smaže soubor kde jsou uložené VLANy</div>
<div>reload // restart</div>
<div> </div>
<div>show version //vypíše info o switchi</div>
<div>show tech-support //show všeho, je dobré mít zapnuté logování do textového souboru</div>
<div>show processes cpu //vypíše zátěž cpu</div>
<div> </div>
<div>show interface</div>
<div>show interface brief</div>
<div>show interfaces status</div>
<div> </div>
<div>line console 0 //konfiguruji "console 0"</div>
<div>password &lt;password&gt; //nastaví password</div>
<div>login //povolí logování uživatele</div>
<div>exec-timeout &lt;minuty&gt; //nastaví timeout session na 5 minut</div>
<div> </div>
<div>enable password &lt;heslo&gt; //heslo pro přechod do privilegovaného režimu</div>
<div>service password-encryption //spustí službu pro šifrování hesel, takže nejsou v konfiguračním souboru v plain-textu; už se nepoužívá, jednoduché na rozluštění</div>
<div>enable secret &lt;heslo&gt; //heslo pro přechod do privilegovaného režimu, heslo je ale zahashované (MD5)</div>
<div>user &lt;user&gt; secret &lt;heslo&gt;</div>
<div>no enable secret</div>
<div> </div>
<div>interface vlan 1 //konfigurace interface vlan 1</div>
<div>vlan 1 //konfigurace přímo vlany neplést!</div>
<div>ip address &lt;ip&gt; &lt;mask&gt; //nastaví IP adresu na interface</div>
<div>description &lt;description&gt; //nastaví popisek</div>
<div> </div>
<div>VTY</div>
<div>line vty 0 15 //jdu do konfigurace telnet 0-15</div>
<div>password &lt;password&gt; //nastavim heslo pro připojení na vty </div>
<div> </div>
<div>SSH připojení</div>
<div>-musím mít vygenerovaný klíč, na to musím být v doméně</div>
<div>ip domain-name &lt;name&gt; //přiřazení domény</div>
<div>crypto key generate rsa modulus &lt;360-4096&gt; //generace RSA klíče pro SSH komunikaci</div>
<div>crypto key generate ec keysize &lt;256 nebo 354&gt; //generace EC klíčů pro SSH komunikaci</div>
<div>show ip ssh //vypíše aktuální nastavení ssh</div>
<div>show crypto key mypubkey &lt;ec/rsa&gt; //zobrazí klíč</div>
<div> </div>
<div>user &lt;user&gt; secret &lt;heslo&gt;</div>
<div> </div>
<div>line vty 0 15 //konfiguruji virtual terminal linky 0-15</div>
<div>login local //lokální login pomocí účtů vytvořených ve switchi</div>
<div>transport input ssh //změna na ssh</div>
<div>ip ssh version 2 //chci jen verzi 2</div>
<div> </div>
<div>VYPNUTÍ LOGOVÁNÍ</div>
<div>line console 0</div>
<div>logging synchronous</div>
<div> </div>
<div>no ip domain-lookup</div>
<div>show running-config | include "text" //něco jako grep</div>
<div> </div>
<div>VLAN a TRUNKING</div>
<div>- Trunk - cisco proprietární název, porty jsou v "access" módu k jednotlivým VLANám</div>
<div>- 1 VLAN = 1 IP subnet (je to dobré takhle dělat)</div>
<div>- pokud spolu chtějí zařízení komunikovat napříč VLAN, už je potřeba zásah L3 vrstvy</div>
<div>- možné alokovat dynamicky VLANy na porty podle připojeného zařízení (např přes RADIUS)</div>
<div>- fyzické interfacy jsou defaultně v tzv. dynamickém módu, musíme je přepnout</div>
<div> </div>
<div>show vlan</div>
<div>vlan 10 //přepnutí do konfigurace vlan 10</div>
<div>vlan 10, 20, 30 /vytvoření více VLAN</div>
<div>name &lt;name&gt; //pojmenování VLAN</div>
<div> </div>
<div>interface FastEthernet 0/1</div>
<div>switchport mode access //přepnutí interface do access módu</div>
<div>switchport access vlan &lt;name&gt; //přiřazení interface do VLAN</div>
<div> </div>
<div>interface range FastEthernet 0/1-10 //konfigurujeme interfacy 1-10 najednou</div>
<div> </div>
<div>interface FastEthernet 0/0</div>
<div>switchport mode trunk</div>
<div>switchport trunk encapsulation dot1q</div>
<div> </div>
<div>switchport trunk allowed vlan remove &lt;vlan list&gt; //odebere vlany z trunk spoje</div>
<div>switchport trunk allowed vlan add &lt;vlan list&gt; //přidá vlany do trunk spoje</div>
<div> </div>
<div>NASTAVENÍ SUBINTERFACE NA ROUTERU</div>
<div>- mám jeden trunk spoj, potřebuju více interface abych "oddělil" vlany na routeru - nastavím subinterface, sice jeden fyzický interface ale různé VLAN</div>
<div>-každý subinterface má svou IP adresu, který je gateway pro zařízení v dané VLAN</div>
<div> </div>
<div>interface FastEthernet 0/0.xx //přepnu se na daný subinterface, je dobré "xx" napsat jako číslo VLANy, tedy třeba u VLAN 10 to bude subinterface 0/0.10</div>
<div>encapsulation dot1q &lt;xx&gt; //zapnu trunk enkapsulaci, za xx je dobré dávat číslo VLANy</div>
<div>ip address &lt;ip&gt; &lt;mask&gt; //nastavím IP adresu interface</div>
<div> </div>
<div>VTP PROTOKOL</div>
<div>vtp domain &lt;domain-name&gt; //nastavení domény</div>
<div>vtp mode &lt;client/server/transparent&gt; //nastavení módu ve kterém switch pro vtp bude - server distribuuje, client přijímá a upravuje svou databázi, transparent jen přeposílá info ale databázi VLAN zanechává</div>
<div>vtp password &lt;password&gt; //nastavení hesla, musí být na switchích v jedné doméně stejné</div>
<div>vtp version &lt;1/2/3&gt; //nastavení vtp verze</div>
<div>show vtp status //zobrazí info o vtp</div>
<div> </div>
<div> </div>
<div>STP PROTOKOL</div>
<div>- aby se zabránilo smyčce v broadcástech</div>
<div>show spanning-tree</div>
<div>debug spanning-tree events //zapne logování spanning tree eventů</div>
<div> </div>
<div>-pro různé VLANy můžu mít různé root bridge</div>
<div>spanning-tree vlan &lt;num&gt; root primary //nastavím switch jako root, pomocí makra na nastavení priority abychom to nemuseli počítat</div>
<div> </div>
<div>-u rapid spanning tree musím správně nastavit edge porty/port fasty, linky musí být na point-to -point propojích (full duplex)</div>
<div>-tím zabráním u RSTP tomu, že PC připojené na switch který prochází změnou topologie nejsou 30s nedostupné</div>
<div>interface e0/0</div>
<div>spanning-tree link-type point-to-point //forced nastavení linky na point to point, ne shared</div>
<div>spanning-tree mode rapid-pvst</div>
<div>-pokud zapínám rapid spanning tree, musím na všech portech nastavit portfast</div>
<div> </div>
<div>-dobré vždy aktivovat</div>
<div>interface ethernet x/x</div>
<div>spanning tree portfast</div>
<div>spanning tree bpduguard enable</div>
<div>spanning-tree guard root //po aktivaci na daném portu nikdy nebude SW s větším BID - nebude root</div>
<div>spanning-tree portfast trunk //pokud trunk vede například mezi switchem a routerem a chci tam portfast - musím nastavit toto</div>
<div> </div>
<div>- prevailence spanning tree - pro jednotlivé VLAN</div>
<div> </div>
<div>AGREGACE LINEK</div>
<div>interface range FastEthernet 0/1-5 //vyberu interface FastEthernet 0/1-5</div>
<div>channel-group 1 mode active //seskupim porty do skupiny</div>
<div>show etherchannel summary //vypíše info o etherchanellech</div>
<div> </div>
<div>-to musíme udělat i na druhé straně, musí se shodovat; nejlepší je než něco nastavuju dát je do bundle, pak až konfigurovat celý bundle</div>
<div>default interface FastEthernet x/x //hodí interface do defaultu</div>
<div>default interface range FastEthernet x/x-x //hodí více zvolených interface do defaultu</div>
<div> </div>
<div>interface range FastEthernet x/x-x //vyberu interfacy</div>
<div>channel-group &lt;číslo&gt; mode &lt;active/passive&gt; //přiřadím je do skupiny s určitým číslem a módem</div>
<div>port-channel load-balance &lt;option&gt; //nastavuju pomocí option jakým způsobem se bude řídit traffic flow, celkem složité mechanismy</div>
<div>- STP po tomhle nastavení vnímá bundlované interfacy jako jeden interf</div>
<div>- snažíme se o to, aby rámce přišly ve stejném pořadí a nebyl například narušen packet-flow -&gt; pakety a rámce ze stejného flow jdou stejnou cestou</div>
<div>- je dobré se po čase podívat na to co se v bundlu děje, kudy rámce chodí nejčastějí (show interface x/x) (clear counters - vynuluje statistiky)</div>
<div> </div>
<div>BEZPEČNOST</div>
<div> </div>
<div>VLAN hopping</div>
<div>-defaultně je port we switchport modu dynamic - i když dáme switchport mode &lt;mode&gt;</div>
<div>switchport mode &lt;mode&gt;</div>
<div>switchport no negotiate</div>
<div>switchport access vlan &lt;vlan&gt; //povolit jen vlany které jsou opravdu potřeba</div>
<div>- změnit nativní VLANu na jiné číslo než defaultní</div>
<div>- nepoužívané porty dát do shutdown módu</div>
<div>- vytvořit si "parkovací" VLANu, nepoužívané porty přiřadit do ní (dvojitá ochrana)</div>
<div>- nepoužívat VLAN 1 (defaultní)</div>
<div> </div>
<div>MAC útoky</div>
<div>- každý switch má tabulku MAC adres, drží si i MAC adresy které jsou za dalším switchem atd.</div>
<div>- v Kali - macof</div>
<div>- obrana - limitujeme kolik MAC adres se na jednom interface smí objevit;</div>
<div>switchport port security &lt;parametry&gt; //parametry - kolik MAC adres se na portu smí objevit (defaultně 1), </div>
<div>//reakce na porušení pravidla:</div>
<div>//protect - nepustím jinou MAC dovnitř; </div>
<div>//restrict - nepustím jinou MAC dovnitř a zapíšu do logu</div>
<div>//shutdown - interface se přepne do error disable stavu, administrátor musí resetovat (shutdown, pak no shutdown))</div>
<div>switchport port security //tím to aktivuju</div>
<div>- útočník ale může ukrást MAC adresu a vydávat se za ní - proto dávám parametr "shutdown", admin pak musí k portu přijít</div>
<div> </div>
<div>DHCP útoky</div>
<div>- DHCP spoofing</div>
<div>- vyčerpání adres legálního DHCP, někdo se může vydávat za DHCP server - sám se pak vydává za default gateway, DNS server atd.</div>
<div>- obrana - DHCP snooping, switch rozpoznává DHCP odpovědi, přijímá je jen z "trusted" portů</div>
<div>- můžeme omezit počet DHCP komunikace</div>
<div>- DHCP snooping binding table - tabulka kterou si sestavuje switch z trusted portů o IP adresách příslušejících MAC adresám, </div>
<div>- navazuje na ARP cache útoky (show arp, show ip arp)</div>
<div>- můžeme postavit i ACL</div>
<div> </div>
<div>ARP cache poisoning</div>
<div>- útočník posílá podvržené ARP údaje, vydává se za někoho jiného (ukradne mu MAC adresu)</div>
<div>- router přeposílá provoz na něj, on forwarduje provoz k reálnému cíli - nepoznám to, pokud se nepodívám že na PC nebo na routeru mám jiné MAC adresy</div>
<div>- pozor na ICMP redirect pokud chci útok provádět</div>
<div>- z pohledu oběti se tomuto nedá bránit, musím jen dosáhnout toho že mi to je jedno že útočník provoz vidí (šifrování, certifikáty)</div>
<div>- z pohledu administrátora - dynamic ARP inspection - spoléhá na DHCP snooping binding table; statické adresy tam můžu napevno zadat</div>
<div> </div>
<div>IP spoofing</div>
<div>- útočník předstírá IP adresu</div>
<div>ip source guard //kontroluje IP i MAC</div>
<div>- ICMP unreachable storm</div>
<div>- SYN flood</div>
<div>- ping of death</div>
<div> </div>
<div>posloupnost obrany:</div>
<div>Port Security -&gt; DHCP Snooping -&gt; DAI -&gt; IPSG</div>
<div> </div>
<div>Odchytávání síťového provozu SPAN, RSPAN, ERSPAN (legální odchytávání provozu pro adminy)</div>
<div>- port mirroring - Switch Port Analyzer - provoz z jednoho portu se zrcadlí na jiný port kde mám nějaké zařízení kdy to odposlouchávám</div>
<div>- dá se odposlouchávat i celá VLAN</div>
<div> </div>
<div>lokální SPAN:</div>
<div>monitor session &lt;number&gt; source interface &lt;interface&gt;</div>
<div>monitor session &lt;number&gt; destination interface &lt;interface&gt; //cílové rozhraní na které bude zrcadlen provoz</div>
<div> </div>
<div>remote SPAN:</div>
<div>- vytvořím si speciální VLANu na všech switchích mezi zdrojem a cílem</div>
<div>- zrcadlím provoz do této VLANY</div>
<div> </div>
<div>configure terminal</div>
<div>vlan 200</div>
<div>remote-span</div>
<div>end</div>
<div>show vlan remote-span</div>
<div> </div>
<div>- na prvním switchi:</div>
<div>monitor session 1 source interface &lt;interface&gt;</div>
<div>monitor session 1 destination remote vlan 200</div>
<div>- na konci akorát naopak</div>
<div> </div>
<div>ERSPAN:</div>
<div>- využívá balení zachycených rámců do GRE tunelu</div>
<div> </div>
<div> </div>
            ]]>
        </content>
    </entry>
    <entry>
        <title>Cisco A0</title>
        <author>
            <name>Sklepmistr</name>
        </author>
        <link href="https://sklepmajstr.cz/cisco-a0.html"/>
        <id>https://sklepmajstr.cz/cisco-a0.html</id>
            <category term="Notes - Networks"/>

        <updated>2026-05-16T17:18:56+02:00</updated>
            <summary type="html">
                <![CDATA[
                    POZNÁMKY - http x https - https je http přes SSL (SSLv3 přešel do názvu TLS ale je to v podstatě to stejné) - 64 Kbit/s - základní rychlost v telekomunikacích, ostatní jsou násobky ZÁKLADY INTERNETWORKINGU - různé typy sítí - PAN, LAN, WAN (podle&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                <p>POZNÁMKY<br>- http x https - https je http přes SSL (SSLv3 přešel do názvu TLS ale je to v podstatě to stejné)<br>- 64 Kbit/s - základní rychlost v telekomunikacích, ostatní jsou násobky<br><br>ZÁKLADY INTERNETWORKINGU<br>- různé typy sítí - PAN, LAN, WAN (podle vzdáleností, rozsahu atd.)<br>- síťové modely - standardizované sady protokolů, vrstvené<br><br>ISO/OSI                                TCP/IP<br>1) Aplikační                        1) Aplikační                //<br>2) Prezentační                                                    //<br>3) Relační                                                        //<br>4) Transportní                        2) Transportní                //<br>5) Síťová                            3) Síťová                    //<br>6) Linková                            4) Linková                    //<br>7) Fyzická                                                        //<br><br></p>
            ]]>
        </content>
    </entry>
    <entry>
        <title>Network Security</title>
        <author>
            <name>Sklepmistr</name>
        </author>
        <link href="https://sklepmajstr.cz/network-security.html"/>
        <id>https://sklepmajstr.cz/network-security.html</id>
            <category term="Notes - Cyber"/>

        <updated>2026-05-16T17:18:32+02:00</updated>
            <summary type="html">
                <![CDATA[
                    Bezpečnost datových sítí Firewally SPI - stateful packet inspection IPS - intrusion prevention system - sleduji provoz a porovnávám s databází, pokud shoda s nějakým v minulosti škodlivým provozem, blokují se pakety IDS - intrusion detection system - aktivně sleduji vešekrý probíhající provoz, porovnávám s&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                <p>Bezpečnost datových sítí<br><br>Firewally<br>SPI - stateful packet inspection<br>IPS - intrusion prevention system - sleduji provoz a porovnávám s databází, pokud shoda s nějakým v minulosti škodlivým provozem, blokují se pakety<br>IDS - intrusion detection system - aktivně sleduji vešekrý probíhající provoz, porovnávám s patternem v databázi - na základě shody je vydán alert<br>HW Firewally - dedikovaná zařízení<br><br>Zranitelosti<br>https://www.cve.org/<br>https://www.cvedetails.com/<br><br><br>Alena Golová - FEL - diskrétní logartimy<br><br>ACLs<br>Standard - filtrují na základě zdrojové IP adresy (1-99; 1300-1999)<br>Extended - filtrují na základě source, destination addr a protokolu (100-199; 2000-2699)<br><br>Named - pojmenované ACL (standard je psát kapitálkami)<br>Numbered - očíslované ACL<br><br></p>
            ]]>
        </content>
    </entry>
    <entry>
        <title>MPLS advanced</title>
        <author>
            <name>Sklepmistr</name>
        </author>
        <link href="https://sklepmajstr.cz/mpls-advanced.html"/>
        <id>https://sklepmajstr.cz/mpls-advanced.html</id>
            <category term="Notes - Networks"/>

        <updated>2026-05-16T17:18:04+02:00</updated>
            <summary type="html">
                <![CDATA[
                    poznámky: - XR operating system routery jsou service oriented - zatím co IOS má konfiguraci focused na interfaces, na XR má konfigurační soubor vždy daná sližba (OSPF, MPLS, etc.) - Small Form-factor Pluggable - port na routerech, do kterého můžu vložit modul, který jakoby převádí&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                <div>poznámky:</div>
<div>- XR operating system routery jsou service oriented - zatím co IOS má konfiguraci focused na interfaces, na XR má konfigurační soubor vždy daná sližba (OSPF, MPLS, etc.)</div>
<div>- Small Form-factor Pluggable - port na routerech, do kterého můžu vložit modul, který jakoby převádí mezi nestandardním rozhraním a "ethernetem"</div>
<div>- podívat se na tvorbu VPN (L2 A L3) pomocí IPv6</div>
<div> </div>
<div>KURZ Advanced MPLS</div>
<div>- MPLS je providerská funkcionalita, hlavní důvodem bylo poskytnout VPN služby</div>
<div>- IP routing je v podstatě celý závislý na destination IP (destination based routing)</div>
<div>- základním principem je že používání labelů místo IP, label má asociaci s cílem; LSR nedělají IP lookup, podívají se pouze na label, na základě LFIB switchují</div>
<div>- nedíváme se do payloadu (nemusím vědět IP adresy, nezajímá mě co je uvnitř - multiprotokolový) - přes MPLS síť můžu transportovat nejen pakety, ale i třeba rámce atd.</div>
<div> </div>
<div>- dvě funkcionality</div>
<div>- control plane- v něm mám vždy dva mechanismy, nějaký routovací protokol, k němu LDP; </div>
<div>- data plane - je v podstatě identický pro různé data planes - když máš např. paket s touto IP a s tímto labelem, vyměň ho za jiný label a pošli ho tímto interfacem ven (toto funguje kromě multicastu)</div>
<div> </div>
<div>- většinou používám dva labely, ten venkovní určuje jak se dostat k cílovému PE, druhý label mi na cílovém PE řekne, co s tím paketem udělat (například může to být PE kde je více VPN se stejným IP rozsahem, nevěděl bych co s tím jinak)</div>
<div>- pozn. poslední label ve stacku má "end of stack"  bit, který ukazuje že je to poslední label ve stacku a dáll už začíná payload</div>
<div> </div>
<div>- traffic engineering - můžeme nastavit labelovou path, paket pošleme specifickou cestou</div>
<div>- i QoS</div>
<div> </div>
<div>- pokud chci naučit router nějaký nový kousek, stačí přidat tu konkrétní aplikaci do control plane, do data plane vůbec nemusím sahat</div>
<div> </div>
<div>Label Allocation and Filtering</div>
<div>- musím vždy zajistit, aby fungovalo LDP i routovací protokol (už v okamžiku konfigurace)</div>
<div>- můžu nastavit automaticky aby se spouštělo LDP na každém interface, kde je routovací protokol // # mpls ldp auto-config</div>
<div>- label pool</div>
<div>- můžu určit range labelů (min = 16; max 1048575)// # show mpls label range</div>
<div>- musím router reloadovat aby se aplikoval nový rozsah!// # mpls label range &lt;min&gt; &lt;max&gt;</div>
<div>// mpls static binding ipv4 &lt;prefix&gt; &lt;mask&gt;   - v podstatě statická trasa</div>
<div>- nastavení aby box propagoval jen to co potřebuji, dá se svázat i s ACL aby to propagoval jen určitým sousedům // # mpls ldp advertise-labels for &lt;net-acl&gt; </div>
<div>- můžu alokovat jen pro určité prefixy</div>
<div># mpls ldp label</div>
<div># allocate global {prefix-list {list-name | list-number} | host-routes}</div>
<div> </div>
<div>MPLS basic tuning</div>
<div>- když vypadne jeden link, není to takový problém</div>
<div>- problém nastává když link zpátky naběhne, protože routovací protokoly naběhnou dříve než LDP - pokud nefungují labely, router labely odstraňuje a tím pádem se všechny pakety zahodí (v MPLS síti)</div>
<div>- řešení je zapnout LDP session protection - alternativní cesta mezi routerama, pokud jeden link spadne, LDP session zůstane up a neighbour label bindings zůstanou aktivní; (defaultně 24h, lze nastavit víc)</div>
<div>- další řešení je LDP IGP Sync</div>
<div>- Cisco - počká s establishem IGP sessiony dokud LDP nenaběhne úplně</div>
<div>- RFC 5443 - dokud je primární link spadlý, backup trasa je advertisovaná jako max IGP metrika, dokud LDP není opět plně operational</div>
<div> </div>
<div>QoS in MPLS</div>
<div>- v IP záhlaví je specifické pole pro QoS, nebo můžeme dělat QoS podle ACL, road mapy nebo přímo IP adresy</div>
<div>- v MPLS - pakety si musíme nějakým způsobem označit, jelikož se nemůžeme dívat do paketu</div>
<div>- v MPLS hlavičce jsou 3 bity (původně experimentální, nyní traffic class) - můžeme udělat 8 typů služeb</div>
<div>- můžeme řešit point to point SLA - mezi dvěma body </div>
<div>- Admission control</div>
<div>- Integrace s DiffServ (rozdělení do tříd)</div>
<div> </div>
<div>- IP byla negarantovaná služba (není zaručené doručování paketů;)</div>
<div>- oproti tomu přístup RSVP (Resource Reservation Protocol) - úplná kontrola nad datovým tokem, zarezervuje prostředky pro každou session</div>
<div>- potřebujeme něco mezi tím:</div>
<div>- nesmí se rozpadnout IGP protokol</div>
<div>- něco pro management (SNMP, SYSLOG, ...)</div>
<div>- VPNky</div>
<div>- třídy pro kritický provoz</div>
<div>- ideální je tedy používat DiffServ (na hop to hop), k tomu navíc traffic engineering - posílat provoz specifickými linkami v závislosti na provozu</div>
<div> </div>
<div>modely:</div>
<div>- point-to-cloud- řešíme QoS až na "last mile", na výstupu z MPLS sítě;</div>
<div>- point-to-point- řešíme konkrétní trasy přímo v MPLS síti</div>
<div> </div>
<div>- DiffServ - defaultně se do MPLS DiffServ markingu (EXP) kopíruje QoS hodnota z IP paketu (DSCP) </div>
<div>- Uniform mode - zákazníkovi zůstane naše hodnota</div>
<div>- Pipe mode - "namarkujeme" vlastní IP precedence pouze na průchod naší sítí; zákazníkovi zůstane jeho hodnota</div>
<div>- Short pipe mode</div>
<div> </div>
<div>- DiffServ Traffic-Engineering - tvořím tunely na základě tříd</div>
<div> </div>
<div>VPNky</div>
<div>- L3 - forwarduji pakety na základě L3 informací; lepší optimalizace, ale složitější negotiation</div>
<div>- L2 - forwarduji na základě L2 informací; v podstatě zákazníkovi pouze poskytuji "trubku" //na PE seberu od zákazníka pakety/ATM buňky/...; pošlu je přes Pseudowire - mezi dvěma PE</div>
<div> </div>
<div>VPWS (AToM) - virtual private wire service;</div>
<div>- řízení L2 provozu přes páteřní MPLS síť (Ethernet, VLAN, ATM, Frame relay, SDH/PDH)</div>
<div>- konfigurace</div>
<div>- PE routery musí mít /32 adresu</div>
<div>- MPLS musí být v core povolena</div>
<div>- MTU musí být dostatečně veliká, aby se do ní vešel overhead (&gt;1530 B)</div>
<div>- LDP router ID- # mpls ldp router-id &lt;interface&gt;</div>
<div># xconnect &lt;peer-router-id&gt; &lt;vcid&gt; encapsulation mpls// na starších mpls l2transport route &lt;peer-router-id&gt; &lt;vcid&gt;</div>
<div># pseudowire class &lt;pwclass-name&gt;</div>
<div># encapsulation mpls</div>
<div># xconnect &lt;peer-router-id&gt; &lt;vcid&gt; pw-class &lt;class-name&gt;</div>
<div>- konfigurace svázaná s access circuitem se dá konfigurovat i tak, že oddělím MPLS část</div>
<div># interface pseudowire &lt;psaudowire_id&gt;</div>
<div># neighbour &lt;remote_LDP_id&gt;</div>
<div># interface &lt;interface_type&gt; &lt;id&gt;</div>
<div># service instance &lt;instance_id&gt; ethernet</div>
<div>service instance config -&gt; encapsulation dot1q xxx</div>
<div>rewrite ingress tag pop yyy symmetric</div>
<div># l2vpn xconnect context &lt;context_id&gt;</div>
<div># member pseudowire &lt;pseudowire_id&gt;</div>
<div># member &lt;interface_type&gt; &lt;if_id&gt; service-instance &lt;instance_id&gt;</div>
<div>- toto je univerzální přístup, můžeme spojovat cokoliv (??)</div>
<div>- backup Pseudowire - používá se pro redundantní spoj, pokud bych měl jeden pseudowire a spadl by aktivní prvek po cestě, přestalo by to celé fungovat</div>
<div>- můžu nakonfigurovat backup spoj</div>
<div>- troubleshooting - # show mpls l2transport vc 30 detail</div>
<div> </div>
<div>Virtual Private LAN Services (VPLS)</div>
<div>- CE je k PE připojeno pomocí attachment circuitu</div>
<div>- na PE je nakonfigurována VFI (virtual forwarding instance) - v ní jsou zakončené jednotlivé access circuity a jednotlivé pseudowires</div>
<div> </div>
<div>VPLS signaling and BGP autodiscovery</div>
<div>- l2vpn/vpls - Martini and Kompella</div>
<div> </div>
<div>DCI (Data Center Interconnect)</div>
<div>- chci mít všechny prvky datacentra na jakoby L2 propoji</div>
<div>- nemůžu mít STP, protože má extrémně pomalou konvergenci</div>
<div>- pokud mám mezi prvky MPLS síť, můžu vytvořit jakoby L2 propoj po ní, ve chvíli kdy to chci mít redundantní musím dát na obě strany více než jeden aktivní prvek, tím mi vzniká problematika</div>
<div>- řešení:</div>
<div>- Dark Fiber/DWDM - Catalyst 6500/800 VSS; Nexus 7000 vPC; ...</div>
<div>- MPLS- EoMPLS; VPLS a A-VPLS (Catalyst 6500/6800)</div>
<div>- IP- cokoliv co přenáší přes GRE (Catalyst 6500/6800); A-VPLS over GRE (Catalyst 6500/6800)</div>
<div> </div>
<div>- A-VPLS přináší zlepšení VPLS, jakoby agreguji boxy na každé straně tak, že se tváří jako logický jeden</div>
<div>- A-VPLS over GRE (A-VPLSoGRE) - jelikož je GRE multiprokolový, dá se do něj zabalit i MPLS</div>
<div>- EVPN - technologie kdy v podstatě routuji MAC adresy (podle pro L3 VPN, pomocí BGP šířím dostupnost nějakého L2 segmentu, případně MAC adres)</div>
<div>- můžu připojit koncové zařízení tak, že má dva porty aktivní a síť zařídí, že nedojde ke smyčce</div>
<div>- Autodiscovery - bridge doména se naučí kde se nějaká MAC adresa nachází a s ní pracuje - předá jí do BGP a ten jí propaguje (podobně jako u L3 VPN se propaguje prefix za CEčkem)</div>
<div>- Multicast/Broadcast - tam nastává ten problém, z jednoho paketu jich musím udělat víc</div>
<div> </div>
<div>Traffic Engineering (TE)</div>
<div>- ohnutí destination based routingu (IP síť jde vždy za nejkratší metrikou, potřebuji to z nějakého důvodu udělat jinak = TE)</div>
<div>- "the fish" - provoz půjde vždy přes cestu s nejlepší metrikou, i když bude ta cesta přetížená </div>
<div> </div>
<div> </div>
<div>###########################################################################################################################################################################################################</div>
<div>############################################################################################ LABS ###################################################################################################</div>
<div>###########################################################################################################################################################################################################</div>
<div>Troubleshooting:</div>
<div># show run // # show running-config | section &lt;text&gt;</div>
<div># show running-config &lt;interface&gt;</div>
<div># show ip interface brief</div>
<div> </div>
<div># show mpls ldp bindings</div>
<div># show mpls ldp neighbor</div>
<div># show mpls forwarding // # show mpls forwarding-table</div>
<div> </div>
<div># show bridge-domain &lt;number&gt;</div>
<div># show xconnect all</div>
<div># show bgp l2vpn vpls all summary</div>
<div># show l2vpn rib detail</div>
<div> </div>
<div>Configuration:</div>
<div>- allocate MPLS LDP labels ONLY for /32 prefixes</div>
<div># configure terminal</div>
<div># mpls ldp label</div>
<div># allocate global host-routes</div>
<div> </div>
<div>- Local Switching / Local Connect // jde o to, že vytvořím jakoby L2 propoj</div>
<div># configure terminal</div>
<div># bridge domain &lt;X_number&gt;// přepnutí do konkrétní bridge-domain konfigurace</div>
<div># no mac learning// zakáže učení MAC adres</div>
<div># interface &lt;interface&gt;// přepnutí do konfigurace konkrétního interface</div>
<div># service instance &lt;Y_number&gt; ethernet</div>
<div># bridge domain &lt;X_number&gt;// přiřadí bridge domain do interface</div>
<div># interface &lt;interface2&gt;</div>
<div># service instance &lt;Z_number&gt; ethernet</div>
<div># bridge domain &lt;X_number&gt;</div>
<div>// přiřadili jsme dva interfacy do jedné bridge domainy - (??) nejsem si jistý, ale myslím že když máme na těchto dvou interfacech připojené dvě různé VLANy, můžu je tímto způsobem propojit</div>
<div> </div>
<div>interfacy musí být nastavené nějak takto:</div>
<div>Na CE:</div>
<div># show run interface gigabitEthernet 0/1.121</div>
<div>/ encapsulation dot1q 121</div>
<div>/ ip vrf forwarding 121</div>
<div>/ ip address &lt;ip&gt; &lt;mask&gt;</div>
<div> </div>
<div> </div>
<div>Na PE:</div>
<div># show run interface gigabitEthernet &lt;number&gt;</div>
<div>/ no ip address</div>
<div>/ negotiation auto</div>
<div>/ no mop enabled</div>
<div>/ no sysid</div>
<div>/ service instance 121 ethernet</div>
<div>/   encapsulation dot1q</div>
<div>/   rewrite ingress tag pop 1 symmetric</div>
<div> </div>
<div>- pro referenci check papírové materiály protože to než bych všechno přepsal tak mi reálně jebne</div>
<div>- pozn.:</div>
<div>- pro veškeré konfigurace používej jako referencei papírové materiály od ALEFu</div>
<div>- ta problematika je extrémně složitá, ale je to díky tomu že je tam hrozně moc protokolů a přístupů co jde použít; když se zaměříš postupně na jednotlivé věci, není to až tak složité</div>
<div>- don't lose your mind trying to figure it out, pokud se to budeš učit nebo to někdy potřebovat, rozkouskuj si to a kombinuj to s praktickými cvičeními!</div>
            ]]>
        </content>
    </entry>
    <entry>
        <title>SUSE exercises</title>
        <author>
            <name>Sklepmistr</name>
        </author>
        <link href="https://sklepmajstr.cz/suse-exercises.html"/>
        <id>https://sklepmajstr.cz/suse-exercises.html</id>
            <category term="Notes - IT"/>

        <updated>2026-05-16T17:17:31+02:00</updated>
            <summary type="html">
                <![CDATA[
                    ctrl + C //signal interrupt ctrl + D //signal quit (ze sudo su, ssh připojení, ...) ctrl + Z //pauses the task ctrl + L //clears the screen YaST virtual machine manager # virt-manager # zypper -- jako apt # zypper in tree //tree file&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                <div>ctrl + C //signal interrupt</div>
<div>ctrl + D //signal quit (ze sudo su, ssh připojení, ...)</div>
<div>ctrl + Z //pauses the task</div>
<div>ctrl + L //clears the screen</div>
<div> </div>
<div> </div>
<div> </div>
<div>YaST</div>
<div>virtual machine manager </div>
<div> </div>
<div># virt-manager</div>
<div># zypper -- jako apt</div>
<div># zypper in tree //tree file system view - stromová struktura</div>
<div># tree - </div>
<div> </div>
<div># df //zobrazí volné místo na disku (zastaralé, v kB)</div>
<div># df -h //zobrazí human readable</div>
<div> </div>
<div>NÁPOVĚDA</div>
<div># man</div>
<div># info</div>
<div># whatis</div>
<div># hwinfo //info o hardwarových zařízeních (všech)</div>
<div># hwinfo --short //přehlednější</div>
<div> </div>
<div># info coreutils //dobré pro zorientování se jaké příkazy potřebuji pro specifickou věc co dělám</div>
<div># uname -r //verze jádra a distro</div>
<div># lsmod//list modules</div>
<div> </div>
<div># cd /usr/share/doc/packages //soubory které můžou ale nemusí obsahovat dokumentaci</div>
<div> </div>
<div>stránky - documentation.suse.com -&gt; SUSE Enterprise server - obsahuje online různé příručky pro to co chci se systémem dělat</div>
<div> </div>
<div># alias df="df -h" //vytvoří alias, při napsání df se nyní spustí df -h</div>
<div># unalias df //vrátí zpět</div>
<div> </div>
<div># history clear</div>
<div># ![číslo příkazu]  //spustí příkaz specifikované číslo</div>
<div># echo $HISTSIZE [size(number)]  //echo vrátí hodnotu proměnné, která musí být označena dolarem na začátku</div>
<div># ls *.conf //vypíše všechny (*) soubory které končí .conf</div>
<div> </div>
<div># set //zobrazí proměnné a funkce</div>
<div># set | less //zobrazí proměnné</div>
<div># echo $PROMĚNNÁ //vrátí proměnnou</div>
<div>//exportování proměnných - zobrazí se i v dalších shellech</div>
<div># declare -x PROMĚNNÁ="hodnota" //export hodnoty</div>
<div> </div>
<div># echo Dnes je 13.5.2024 //fixované</div>
<div># date //zobrazí datum</div>
<div># date "+%d.%m.%Y" //zobrazí datum ve formátu</div>
<div> </div>
<div># echo Dnes je $(date "+%d.%m.%Y") //spustí příkaz uvnitř příkazu</div>
<div># date "+%Y%m%d" //časové známky pro soubory</div>
<div># DATUM=$(date "+%Y%m%d") //uložení do proměnné</div>
<div># echo $DATUM //vrátí z proměnné datum</div>
<div># echo $(( B + 3 ))</div>
<div># echo $? //návratový kód</div>
<div> </div>
<div># mail //simple mail</div>
<div># cat //text editor</div>
<div> </div>
<div># dmesg //ukáže posledních 64 řádků syslogu</div>
<div># dd //bitová kopie soborů/zařízení</div>
<div> </div>
<div># dd if=/dev/random bs=1 count=8 2&gt;/dev/null</div>
<div># dd if=/dev/random bs=1 count=8 2&gt;/dev/null | base64| cut -c 1-10</div>
<div>//přeloží řetězec do znakové sady base64 a omezí na určité znaky = proces používá pipe - funkce si předávají data</div>
<div># ls -l | tr -s " " |cut -f 5,9 -d " " | sort -n</div>
<div>//translate - tr, -s =squeeze, pak vyber 5 a 9 pole, sort podle numeric</div>
<div># id | tee id.txt //rozdvojka, jednak vypíše výstup a druhak vloží stejný výstup do souboru id.txt</div>
<div> </div>
<div># id;uptime //oddělení pro více příkazů na jeden řádek</div>
<div>// &amp;&amp;- spustí další příkaz pokud ten předtím dopadne dobře = return value je 0</div>
<div>// ||- spustí další příkaz pokud ten předtím dopadne chybně = return value je cokoliv kromě 0</div>
<div> </div>
<div>********************************</div>
<div>PŘÍKAZY</div>
<div> </div>
<div># pwd //print working directory - ukáže kde aktuálně jsem</div>
<div># cd //change directory - buťo zadávám absolutní cestu, nebo relativní (. nebo ..)</div>
<div># ls //list - zobrazí co je </div>
<div># cp //copy - je třeba přidat -r (přidá rekurzivitu)</div>
<div># mv //move - move zdroj cíl</div>
<div># rm //remove - je třeba přidat -rf (rekurzivita a f (force))  </div>
<div>// pozor na příkaz "rm -rf /" - smaže vše v kořenovém adresáři, tj celý systém</div>
<div># mkdir //make directory - vytvoří složku - pokud třeba </div>
<div>//mkdir a/b/c tak se snaží vytvořit složku c ve složkách které neexistují, proto přidáváme -p (parental)</div>
<div># rmdir //odstraní složku, používat spíš rm</div>
<div># touch //vytvoří prázdný nový soubor; hodnota za rw-r--r-- [1] říká kolikrát je soubor v systému referencován</div>
<div># ln soubor.txt hardlink.txt //místo kopie lze dělat pouze hardlinky</div>
<div># ln -s //symlink (jméno které míří na jiné jméno, většinou hardlink)</div>
<div> </div>
<div>VIEW FILE CONTENT</div>
<div># cat [file] //concatenate - výpis kratších souborů -prohlížeč</div>
<div># less [file] //rozdělí soubor na stránky -prohlížeč</div>
<div># tac //reverse cat - zobrazí soubor od posledního řádku k prvnímu</div>
<div># head //zobrazí prních 10 řádků</div>
<div># tail //zobrazí posledních 10 řádků</div>
<div> </div>
<div># tar //tape archiver - archivní nástroj</div>
<div># tar -cvzf archiv.tar.gz // -c create; -z komprimovat; -f filename, -v verbose; </div>
<div># tar -xf //-x extract</div>
<div># rsync //kopíruje jen deltas mezi dvěma složkami, většinou po síti; </div>
<div>//synchronizuje jen změny v souboru který chceme mít stejný na dvou zařízeních; funguje pomocí kontrolního součtu</div>
<div># rsync -av /etc pc301:/tmp/ // -a archive -v verbose; používá SSH, lze zapnout komprese</div>
<div> </div>
<div># dd if=/dev/zero of=/image.img bs=1M count=100 //if - imput file of - output file; lze třeba udělat bitovou kopii jakéhokoliv souboru někam</div>
<div># free //zobrazí vyrovnávací paměť</div>
<div> </div>
<div># find [path] [criterium] //hledání ve složkách dle jména či jiných parametrů - #find -size +100M //najde všechny soubory větší než 100M</div>
<div># which [passwd] //který příkaz se spustí když zadám passwd</div>
<div> </div>
<div># type [ls] //ukáže co spouštím, zda jsou tam aliasy atd</div>
<div># grep //prohledávání obsahu souborů</div>
<div># grep [text] //najde jen specifikovaný text</div>
<div> </div>
<div># lsmod | grep e100 - vyhledá jen ovladač který má v názvu e100</div>
<div> </div>
<div># lsusb //zobrazí zařízení na USB</div>
<div># lspci //zobrazí zařízení na na PCI, přes parametr -v (verbose) zobrazí více informací</div>
<div># file /usr/bin/bash //vypíše o jaký soubor se jedná, v tomto případě je to cesta</div>
<div> </div>
<div># ssh uživatel@pocitac //ssh into PC</div>
<div># logout //ukonceni</div>
<div> </div>
<div># scp /etc/motd uzivatel@pocitac:/etc/ //</div>
<div># scp uzivatel@pocitac:/etc/motd /etc/ //</div>
<div># sftp //</div>
<div> </div>
<div># rlogin</div>
<div># rcp</div>
<div> </div>
<div>NASTAVENI SSH</div>
<div>/.ssh/ //skyrtý adresář</div>
<div> </div>
<div># ssh-keygen -t rsa</div>
<div> </div>
<div>SECURE GRUB WITH A PASSWORD</div>
<div># sudo su</div>
<div># grub2-mkpasswd-pbkdf2 //zahesluje grub, bez zadání hesla pak nejde spustit ani grub</div>
<div># vim /etc/grub.d/40_custom //otevře v text editoru soubor ze kterého si bere grub nějaké věci</div>
<div>vložit tam:</div>
<div>set superusers="jmeno"</div>
<div>grub2-mkpasswd-pbkdf2 jmeno heslo //replace jmeno tim co chci a heslo taky tím co chci (heslo vkládat jako hash, vygenerováno v předchozím kroku!)</div>
<div># grub2-mkconfig -o /boot/grub2/grub.cfg //uloží změnu</div>
<div>//když se to pokazí - spustit systém z jiného média, mountnout disk a upravit /boot/grub2/grub.cfg</div>
<div> </div>
<div>SYSTEMCTL</div>
<div># systemctl &lt;start/stop/restart/reload/status&gt; &lt;služba&gt;</div>
<div># systemctl list-units -t //typ unit souboru</div>
<div># systemctl list-dependencies //zobrazí výchozí stavy a seznam služeb které jsou potřeba pro dostání se do cílového stavu</div>
<div>//je možnost i měnit cílové stavy</div>
<div> </div>
<div>PROCESY</div>
<div># ps uax | head -5 //vlastník procesu, PID, využití procesoru %, virtual memory %, resources,</div>
<div>//TTY (teletype, řídící terminál (systémové procesy mají ?)),</div>
<div>//status (r-running, s-sleeping, t-zastavený, d-nepřerušitelný spánek, z-zombie (návratová hodnota není potvrzena rodičem, tudíž proces se nemůže ukončit))</div>
<div># ps lax | head -5</div>
<div># ps -ef | head -5</div>
<div># ps -lu [user] //zobrazí procesy spuštěné specifikovaným userem</div>
<div> </div>
<div># gnome-system-monitor //spustí system monitor, uspím ho z terminálu ctrl + z</div>
<div># jobs //vypíšu info o jobech v pozadí - vidím uspaný gnome-system-monitor</div>
<div># ps -l //zobrazím si joby, vidím info o procesech</div>
<div># bg 1 //znovu spustím monitor, v tomto případě proces 1 na listu</div>
<div> </div>
<div># pstree -up</div>
<div> </div>
<div>#top //ukáže něco jako task manager</div>
<div>//hi - hardware interrupt, si - software interrupt</div>
<div>//výchozí výpis je průměr ze všech jader - klávesou "1" - výpis ze všech jader (pro kontrolu zda např aplikace neběží jednovláknově když nemá)</div>
<div> </div>
<div>//swap - stránkovací soubor, když dojde RAM tak se do tohoto souboru přelijou data odtamtud </div>
<div>// - počítač se ale třeba milionkrát zpomalí, pravidlo dvojnásobek RAM má být swap už dávno neplatí</div>
<div>//nově se používá zram - komprese a dekpmrese, alternativní swap, zpomalení je třeba "jen" 10x</div>
<div>//buff/cache se nepřemazává, data tam zůstávají načtena "lenivý přístup", available memory - reálně volná paměť kterou může systém poskytnout</div>
<div>//řadí dle cpu% defaultně; lze měnit doleva/doprava poumocí "&lt;" a "&gt;"</div>
<div> </div>
<div># kill</div>
<div># kill -l //vypíše signály - používáme 15)SIGTERM (signal terminate) 9)SIGKILL (zavoláme aby proces zabilo jádro); pak 18) a 19)</div>
<div># kill &lt;PID&gt; [signal]</div>
<div># renice [číslo priority] jmenoprocesu //mění prioritu procesů</div>
<div># jobs //zobrazí procesy co běží</div>
<div># screen //více oken terminálu - spustím, ctrl + a a ctrl + c - vytvoří další okno; ctrl + a a " - vybírám si z otevřených oken; ctrl + d - detach screen; </div>
<div>//sezení screenu přežije odhlášení (musím dát ctrl + d a když se přihlasuji znovu, dám screen -d; screen -list zobrazí sezení)</div>
<div># crontab //cronos - čas; plánování procesů</div>
<div>//"when" pole - ***** - pozice každá minuta,každá hodina,každý den,každý měsíc,každý den v týdnu; např.: 02**1-5 - od pondělí do pátku vždy ve 2 ráno; </div>
<div># crontab [when] [who][what] //system cron jobs /etc/crontab (někde tam)</div>
<div># anacron //plánování úloh které se opakují po nějakém čase, anarchystic cron</div>
<div># at //schedule a task</div>
<div> </div>
<div>UID a GID</div>
<div># id //zobrazí current UID atd</div>
<div># whoami</div>
<div># getent //vypíše seznam všech entit</div>
<div># getent passwd //</div>
<div># getent group // vypíše skupiny a sekundární členství ve skupinách</div>
<div> </div>
<div># useradd</div>
<div># usermod -m jmeno //vytvoří uživatele jmeno i s domovskou složkou</div>
<div># passwd jmeno heslo //vytvoří mu heslo</div>
<div># userdel //smaže uživatele</div>
<div> </div>
<div># groupadd [jmenoskupiny] //založí novou skupinu</div>
<div># getent group //zobrazi skupiny</div>
<div># usermod -a -G [jmenoskupiny] [uzivatel] //přiřadí uživatele do skupiny</div>
<div> </div>
<div>PRÁVA</div>
<div># chmod //</div>
<div># chmod +x [soubor] //přidá executable </div>
<div># chmod 700 [soubor] //full práva má jen root</div>
<div># chown //change ownership, změní vlastníka/vlastnickou skupinu</div>
<div># chgrp //změní vlastnickou skupinu</div>
<div> </div>
<div>skript - v linuxu textový soubor s příkazy, nastavíme mu spustitelnost</div>
<div> </div>
<div># umask //reguluje práva na nově vzniklé soubory</div>
<div> </div>
<div># setfacl //nastavení ACL, parametr -R zajistí rekurzivitu</div>
<div># setfacl -m u:uživatel:rw file //nastaví konkrétní práva uživateli k souboru file</div>
<div># setfacl -d -m u:uživatel:rw file //nastaví dědičnost ACL u dalších souborů vytvořených pod file (složky etc.)</div>
<div># setfacl -x u:uživatel file //odebere ACL pro konkrétního uživatele</div>
<div># setfacl -b file //odebere všechna ACL</div>
<div># getfacl //zobrazí stav ACL</div>
<div> </div>
<div># visudo // otevře /etx/sudoers</div>
<div>//zde zakomentovat Defaults targetpw a ALL ALL=(ALL) ALL</div>
<div>//definovat User_Alias POWERUSERS = user1, user2, atd.</div>
<div>//Cmnd_Alias KPROCS = /bin/kill, /usr/bin/killall, další příkazy které chceme aby mohli uživatelé spouštět</div>
<div>//Host_Alias HOSTS = server1, zařízení na kterých cheme aby pracovali</div>
<div>// nyní pomocí aliasů definujeme co chceme aby kdo mohl dělat - POWERUSERS HOSTS = (root) KPROCS</div>
<div> </div>
<div># ls -l test.txt</div>
<div># setfacl -m u:uzivatel:rw test.txt //místo u - g group</div>
<div># ls -l test.txt //v příkazu se ve trojici skupiny už vypisují práva masky, jak je vidět v následujícím příkazu</div>
<div># getfacl test.txt</div>
<div> </div>
<div># su user //switch user</div>
<div># su -c "grep geeko /etc/shadow" //spustí jeden specifikovaný příkaz pod rootem (-c)</div>
<div># newgrp //změní primární skupinu</div>
<div># sg //změní primární skupinu</div>
<div> </div>
<div># getfactl rfkill //zobrazí přístupová práva (ACLka) pro rfkill</div>
<div> </div>
<div># sudo //switch user do; </div>
<div># visudo //vzměny ve složce "/etc/sudoers" | geeko ALL = /sbin/shutdown - uživatel geeko může spouštět /sbin/shutdown</div>
<div> </div>
<div># pkaction //zpbrazí registrované actions v pKitu, teď úplně nevím co to znamená (kdyžtak dohledat)</div>
<div> </div>
<div>BALÍČKY</div>
<div># rpm -i &lt;package&gt;.rpm //instalace (-i) rpm balíčku; (-v - verbose; -h - progressbar); --nodeps - ignoruje dependencies; --force - přepíše existující soubory</div>
<div># rpm -i -v -h --nodeps --force &lt;package&gt;.rpm</div>
<div># rpm -U &lt;package&gt;.rpm //update</div>
<div># rpm -e &lt;package&gt;.rpm //erase, --nodeps</div>
<div> </div>
<div># rpm -qa | wc -l //word count, vypíše počet nainstalovaných balíčků</div>
<div># rpm -qi &lt;package&gt; //query info</div>
<div># rpm -ql &lt;package&gt; //zobrazí list souborů které nahrál specifický balíček</div>
<div># rpm -qld &lt;package&gt; //dokumentace</div>
<div># rpm -qlc &lt;package&gt; //konfigurace</div>
<div># rpm -qf /absolutnícesta //zobrazí zda je soubor součástí nějakého balíčku, </div>
<div># rpm --checksig &lt;package&gt;.rpm //zkontroluje kontrolní součet balíčku před stažením</div>
<div># rpm -V &lt;package&gt;.rpm//zkontroluje zda se balíček nezměnil po instalaci</div>
<div> </div>
<div># wget //webget, pro stahování z webu</div>
<div> </div>
<div># zypper lr //list repozitářů které máme nakonfigurované</div>
<div># zypper ref 1 //refresh repozitářů</div>
<div># cat openSUSE-Leap-15.4-1.rep //zobrazí info o repozitáři</div>
<div># zypper ar &lt;uri&gt; &lt;alias&gt; //přidá repozitář</div>
<div># zypper rr //odebere repozitář</div>
<div># zypper se &lt;package&gt; //hledá balíček v repozitáři</div>
<div># zypper if &lt;package&gt; //info o balíčku</div>
<div># zypper in &lt;package&gt; //instaluje balíček</div>
<div># zypper --non-interactive in &lt;package&gt; //instaluje balíček bez toho aby uživatel něco potvrzoval, užitečné ve skriptech</div>
<div># zypper rm &lt;package&gt; //odstraní balíček</div>
<div># zypper up //aktualizuje vše, co je možné aktualizovat - systém i všechny balíčky</div>
<div># zypper lp //list ??</div>
<div># zypper pchk //check for patches</div>
<div># zypper patch //nainstaluje patche</div>
<div># zypper dup //distribution update, za běhu systému</div>
<div># zypper pt //list patternů</div>
<div> </div>
<div>- Přidání disku s repozitáři</div>
<div># mount -o loop /cestakzarizeni /mnt //mount zařízení do /mnt</div>
<div># zypper ar /mnt nazev //přidání repozitáře</div>
<div> </div>
<div>NETWORK MANAGEMENT</div>
<div> </div>
<div># ping &lt;dest&gt; //ping na destinaci, po cestě můžou být ale problémy a neznamená to že zařízení na druhé straně je nedostupné</div>
<div>// -c count; -I interface; -i seconds (intervaly mezi pakety); -f (pakety se posílají jak nejrychleji to jde); -I preload (posílá bez čekání na odpověď)</div>
<div>// -n numerický output IP adres, etc.</div>
<div># traceroute &lt;destination&gt; //používá UDP datagramy, mění v nich TTL; parametr -n zobrazí IP adresy místo FQDN</div>
<div># hostname &lt;hostname&gt; //změna hostname PC (dočasná)</div>
<div># hostnamectl hostname &lt;hostname&gt; //změna hostname PC trvalá, lze to ale dělat i přes konfigurák v /etc/hostname</div>
<div> </div>
<div># ifup eth0 //zapne nakonfigurovaný interface</div>
<div># ifdouwn eth0 //vypne nakonfigurovaný interface</div>
<div># ifrenew eth0 //renew DHCP IP address</div>
<div># ifstatus eth0 //display interface status</div>
<div> </div>
<div># ip &lt;IP&gt; //nastavení IP</div>
<div># ip addr show //display IP address</div>
<div># ip addr add 10.0.0.10/24 brd + dev &lt;interface&gt; //přidá IP na interface</div>
<div># ip route show //zobrazí routovací tabulku</div>
<div># ip route add &lt;ip&gt; dev &lt;device&gt; //přidá cestu do routovací tabulky</div>
<div># ip link show //linková tabulka</div>
<div># ip link set eth0 up //zapnutí konfigurace na linkové vrstvě na interface eth0 (netuším přesně k čemu to patří????)</div>
<div> </div>
<div>// vi /etc/hosts - IP adrese můžu přiřadit více hostname, na ty pak reaguje ping</div>
<div> </div>
<div># ethtool eth0 //settings for eth0</div>
<div> </div>
<div># wicked show all //zobrazí všechna network nastavení</div>
<div># wicked show &lt;interface&gt; //zobrazí nastavení konkrétního interfacu</div>
<div># wicked show-xml all //zobrazí všechna network nastavení v xml</div>
<div># wicked show-xml &lt;interface&gt; // to samé, v xml</div>
<div> </div>
<div># systemctl status firewalld //info o procesu</div>
<div># firewall-cmd //info o firewalld</div>
<div># firewall-cmd --runtime-to-permanent //zapíše konfiguraci do permanent paměti, musí následovat reload</div>
<div># firewall-cmd reload //reload firewallu z permanent konfigurace</div>
<div># firewall-cmd --list-all //zobrazí nastavení konkrétní zóny</div>
<div>//list ports a list services -- musíme kontrolovat obojí, nemusí být stejné při změně</div>
<div># firewall-cmd --list-all --zone= //ukáže více informací</div>
<div># firewall-cmd //lockdpown</div>
<div># firewall-cmd Lockdown, Panic //zavře systém</div>
<div># firewall-config</div>
<div> </div>
<div># firewall-cmd --state //check status firewallu</div>
<div># firewall-cmd --get-zones //check jaké jsou všechny možné zóny</div>
<div># firewall-cmd --get-default-zone //check jaká je defaultní zóna</div>
<div># firewall-cmd --get-active-zone //check aktivních zón; úpravy zón je možno dělat /etc/firewalld/</div>
<div># firewall-cmd --zone=public --list-interfaces --permanent //check zda eth0 je permanentně přidělené do public zóny, pokud není nastaveno tak je v té defaultní</div>
<div># firewall-cmd --reload //reload runtime z permanentní konfigurace</div>
<div># firewall-cmd --zone=public --add-interface=eth0 --permanent // permanentně přidá eth0 do zóny public</div>
<div># firewall-cmd --zone=public --list-all (--permanent) // zobrazí konfiguraci specifikované zóny, pozor, je to různé od (--permanent); pod services jsou povolené služby</div>
<div>pozn.: dělat to jako u CISCO switchů, změny se projeví až po reloadu z permanentní konfigurace</div>
<div> </div>
<div>STORAGE ADMINISTRATION</div>
<div># parted //spustí parted</div>
<div># select &lt;device&gt;</div>
<div># mkpart &lt;part-type&gt; [&lt;file-system&gt;] &lt;start&gt; &lt;end&gt; //vytvoří oddíl můžou vznikat mezery mezi oddíly, nemusí na sebe navazovat</div>
<div># rm &lt;part-nuber&gt; //smaže oddíl</div>
<div> </div>
<div># fdisk -l   //zobrazí všechny oddíly</div>
<div># fdisk /dev/sda //spustí průvodce vytvořením oddílu sda</div>
<div> </div>
<div># lsblk //list blokových oddílů</div>
<div> </div>
<div># mkfs -t &lt;type&gt; //vytvořím file system určitého typu</div>
<div># mkfs. //zobrazí dostupné file systémy pro vytvoření - ne všechny, pouze ty nainstalované</div>
<div># mk2fs //</div>
<div> </div>
<div># mkfs.ext4 /dev/sdc1 //vytvořím ext4 na specifikovaném místě</div>
<div> </div>
<div># mount &lt;co chceme připojit&gt; &lt;kam to chceme připojit&gt; //připojí oddíl</div>
<div># umount &lt;adresář nebo místo&gt; //odpojí oddíl</div>
<div> </div>
<div># mount -o remount &lt;parametry&gt; //připojí disk jiným způsobem než je aktuálně připojený, např.: při bootu; parametry rw - read write; ro - read only</div>
<div># mount -o // options: rw, ro; atime, notime - access time do souboru je/není updatovaný; nodev, dev - zda umožníme reprezentaci zařízení jako souborů</div>
<div>// výchozí rw, suid, dev, exec, auto, nouser, async</div>
<div> </div>
<div># df //seznam souborových systémů připojených, -h - human readable</div>
<div># du //kolik místa zabírají jednotlivé adresáře na disku; použití s parametrem -d [depth]</div>
<div># du -hd 1 / //list rootovské složky</div>
<div> </div>
<div># lsof //ukáže, kolik souborů je otevřených</div>
<div># fuser //máme soubor na disku, zajímá nás kdo používá tento soubor (např když nejde odpojit flashdisk)</div>
<div># fsck //check file system</div>
<div># tune2fs //ladění parametrů souborového systému</div>
<div># resize2fs //změna velikosti souborového systému</div>
<div> </div>
<div>LVM</div>
<div>1) Physical Volume</div>
<div>#pv //physical volume</div>
<div>2) Volume Group</div>
<div># vgcreate &lt;jmeno&gt; &lt;/fyzickýsvazek&gt;</div>
<div># vgs</div>
<div># vgdisplay</div>
<div># vgscan</div>
<div># vgextend</div>
<div>3) Logical Volume</div>
<div># lvcreate -L &lt;size in MB&gt; -n &lt;lv_name&gt; &lt;vg_name&gt;</div>
<div># lvcreate -L 300M -n zaloha &lt;vg_name&gt;</div>
<div># lvs</div>
<div>- pak až to mountnout, přidat do /etc/fstab pro mermanentní připojení</div>
<div> </div>
<div>RAID</div>
<div># mdadm //konfigurace a sestavování RAID</div>
<div># smartctl</div>
<div> </div>
<div>BTRFS</div>
<div># btrfs //ovládání btrfs</div>
<div># btrfs subvolume //ovládání btrfs podsvazku</div>
<div> </div>
<div># btrfs filesystem usage / //nástroj pro zobrazení odhadu btrfs, kolik místa je na disku volných</div>
<div> </div>
<div>NFS</div>
<div># systemctl status nfs.service //balíček serveru se jmenuje nfs-kernerl-server</div>
<div># exportfs -o ro,root_squash,sync 192.168.0.0/24:/software //vyexportuje složku software pro všechny počítače ze sítě 192.168.0.0/24</div>
<div># exportfs //dočasně vyexportuje ihned, jinak až po restartu</div>
<div> </div>
<div>client:</div>
<div># mount</div>
<div># rcrpcbind start</div>
<div> </div>
<div># vim /etc/fstab //přidat řádku, například - server1:data/ISOe /import/IOS nfs4 defaults 0 0</div>
<div># mount - remount /mountpoint //zapsat změnu</div>
<div># mount -a //obnoví vše z /etc/fstabu</div>
<div> </div>
<div># rpcinfo -p //info o rpcbind</div>
<div> </div>
<div>NTP</div>
<div># systemctl status chronyd</div>
<div> </div>
<div># chronyc sources //ukáže které servery máme nakonfigurované, jejich stratum, Poll - dvojková mocnina intervalu po kterém se ptá na server; LastRX - poslední update</div>
<div>//hvězdičkou je označený ten který je aktuálně vybrán, je nejpřesnější pro nás</div>
<div># chrony</div>
<div> </div>
<div>NFS</div>
<div># systemctl stop firewalld</div>
<div> </div>
<div># mkdir -p /export/documentation</div>
<div># setfacl -m g:users:rwx /export/documentation</div>
<div># setfacl -d -m g:users:rwx /export/documentation</div>
<div> </div>
<div># cd /export/documentation</div>
<div># cp -r /usr/share/doc/release-notes/* .</div>
<div> </div>
<div># zypper in yast2-nfs-server</div>
<div># yast nfs_server &amp;</div>
<div>- v NFS Server Configuration - NFS Server pane - radio button has Start selected, enable NFSv4 checkbox, NFSv4 domain name - suse.com</div>
<div>- přidat adresář /export/documentation do exportovaných </div>
<div> </div>
<div># showmount -e localhost</div>
<div># cat /etc/exports</div>
<div> </div>
<div>client:</div>
<div># systemctl stop firewalld</div>
<div># mkdir -p /import</div>
<div># yast2 nfs &amp;</div>
<div> </div>
<div>přidat hostname: &lt;hostname&gt;</div>
<div>remote directory /export/documentation</div>
<div>NFSv4 share: select</div>
<div>mount point /import/docs</div>
<div> </div>
            ]]>
        </content>
    </entry>
    <entry>
        <title>SUSE course</title>
        <author>
            <name>Sklepmistr</name>
        </author>
        <link href="https://sklepmajstr.cz/suse-course.html"/>
        <id>https://sklepmajstr.cz/suse-course.html</id>
            <category term="Notes - IT"/>

        <updated>2026-05-16T17:17:17+02:00</updated>
            <summary type="html">
                <![CDATA[
                    ***************** flashka z kurzu: ls rozbalit adresář bash install_lab_env.sh //musíme mít SLES nebo Leap ***************** SUSE Linux - v souborovém systému jsou i zařízení jsou uložena jako soubory - LSB - linux standards base - standardizace sw pro vývojáře, i adresářový strom je pro debian/red&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                <div>*****************</div>
<div>flashka z kurzu:</div>
<div>ls</div>
<div>rozbalit adresář</div>
<div>bash install_lab_env.sh //musíme mít SLES nebo Leap</div>
<div>*****************</div>
<div> </div>
<div>SUSE Linux</div>
<div>- v souborovém systému jsou i zařízení jsou uložena jako soubory</div>
<div>- LSB - linux standards base - standardizace sw pro vývojáře, i adresářový strom je pro debian/red hat a UNIX podobný/stejný</div>
<div>- FHS - Filesystem hierarchy standard -- spadá pod LSB standardy</div>
<div>- FHS je verzovaný dokument, dostupný jako pdf, oproti historii je adresářů pouze víc, každá distribude si může přidat navíc adresáře specifické pro distribuci</div>
<div>- linux nepoužívá písmenka pro disky, vše je součástí jednoho adresářového stromu - základ root ( / )</div>
<div>- disky používají mountopinty - když chci připojit disk, připojím ho pod nějakou cestu /usr/disk který si vytvořím - adresáře nevím zda jsou lokální nebo např síťové atd</div>
<div>- pod /usr a /var - 2vrstvá hierarchie, také standardizováno</div>
<div> </div>
<div> </div>
<div>SOUBOROVÝ SYSTÉM LINUXU</div>
<div>- z historických důvodů se šetřilo místo na disku, původní adresáře zděděné z UNIXu jsou třípísmenné zkratky</div>
<div> </div>
<div>bin - binaries, např ls, atd. - pokud má soubor nastavenou spustitelnost, aby všichni uživatelé měli např pístup ke skriptu, musíme ho umístit do adresáře jako třeba bin</div>
<div> </div>
<div>boot - start systému; start linuxu - zapneme počítač (BIOS, UEFI), ten prověří zda máme všechny komponenty, vybere zařízení ze kterého se bude startovat (master boot record)</div>
<div>tam je kód zavaděče - zavede jeden OS v jedné konkrétní verzi - lze se zde vracet ke starší verzi systému</div>
<div>grub - zavaděč linuxu; do paměti se nahraje jádro systému a ramdisk, kde jsou další data ke spouštění systému (vmlinuz - virtual memory)</div>
<div>initrd - inicializační soubory pro jádro, aby mohl PC nastartovat; jádro také obsahuje ovladače které systém je schopný nainstalovat</div>
<div>lze zavést i další ovladače jako takzvané moduly, initrd si sáhne do ovladačů, ty načte a pak je zahodí a jede se z ovladačů na disku</div>
<div> </div>
<div>dev - devices, zařízení reprezentovaná soubory, např rtc (real time clock, udržují čas když je PC vypnutý), nvme - disky, diskové oddíly, grafika, cpu, snd - zvuková karta, porty</div>
<div> </div>
<div>etc - et cetera - adresář obsahující konfiguraci, i seznam uživatelů /etc/passwd ; /etc/services - seznam portů které mají přiřazený konkrétní protokol</div>
<div> </div>
<div>home - domovské adresáře uživatelů - dokumenty, soubory uživatele atd pro každý uživatelský účet - normální uživatelé nikam zapisovat nemůžou (kromě temp a home)</div>
<div> </div>
<div>lib, lib64 - knihovny - souběh 32 a 64 bit aplikací, většinou kompilujeme 64 bit </div>
<div>- je tam i adresář modules - jaderné adresáře, adresář dle verze jádra 5.14.21 (verze jádra) - 150400 (release) </div>
<div>jádro - kernell www.kernell.org - přehled o aktuální verzi jádra (stable) </div>
<div>longterm verze jádra - vanilla</div>
<div>adresář kernel - v něm jsou vlastní ovladače drivers/net/ethernet/intel/e1000e - e1000e.ko.zst (komprimovaný ovladač) .ko - kernell object</div>
<div>/lib/firmware - soubory (druhá část ovladače), první část je v jádře, druhá část zde - např pro intelovské wifi karty jsou zde jako iwlwifi-7265.ucode.</div>
<div>/lib64 - soubory xxxx.so (shared object)</div>
<div> </div>
<div>mnt - mount - adresář pro ruční připojení dalších disků</div>
<div> </div>
<div>opt - optional - adresář do kterého se nahrává komerční software, nějaká nadstavba - aby bylo jasně oddělené co je součástí</div>
<div> </div>
<div>proc - processes - přípojný bod, je obrazem operační paměti (ramdisku); každý proces má PID (process ID); také sadu adresářů generovaných on demand (např modules - seznam ovladačů)</div>
<div> </div>
<div>root - domovský adresář superuživatele - vždy lokální, home se často připojuje jako síťový velmi často; </div>
<div> </div>
<div>run - runtime - ramdisk - při vypnutém PC prázdný, lock, rsyslog/journal - logování systému; obraz konfigurace, vše co je runtime</div>
<div>- např po připojení flashky se připojí sem</div>
<div> </div>
<div>sbin - system binary - programy které požadují oprávnění root - kontrola integrity souborových systémů, správa úložišť, audity etc.</div>
<div> </div>
<div>selinux - konfigurace bezpečnostního frameworku - primárně pro red hat, SUSE používá apparmor, takže adresář je u suse prázdný</div>
<div> </div>
<div>srv - data služeb serveru, ftp, www;</div>
<div> </div>
<div>sys - speciální souborový systém, jak vidí hardware operační systém - na jakou zběrnici je připojeno zařízení, atd - propojené systémem symbolických odkazů</div>
<div>/bus/pci/devices - seznam zařízení připojených na sběrnici PCI; </div>
<div>není to adresář pro běžnou práci, # lsusb, lspci</div>
<div> </div>
<div>tmp - temporary - kdokoliv může nahrávat dočasná data, která po restartu zmizí - pracovní soubory</div>
<div> </div>
<div>- u složek usr a var je dle FHS definovaná i druhá úroveň:</div>
<div> </div>
<div>usr - obsahuje zase stejné složky jako / (kořenový adresář)</div>
<div>- src - zdrojový kód</div>
<div>- include - header files</div>
<div>- share - to co se jinam nehodilo - doc, man (manuálové stránky a info o systému)</div>
<div> </div>
<div>var - variable - obsažená data která musí přežít restart systému</div>
<div>- var/lib - databáze nainstalovaných </div>
<div>- postgress, mariaDB - ukládají data databáze sem</div>
<div>- rsyslog loguje sem</div>
<div>- spool - fronty, např pro mailserver - fronty souborů pro odeslání/přijetí, pro tiskový server fronty tisku atd</div>
<div> </div>
<div>// X server (aplikace typu klient-server) - postupně nahrazuje Wayland (vyžaduje 3D akceleraci) - pro grafiku</div>
<div> </div>
<div>// pozn.: root android - run busybox</div>
<div>//alpine</div>
<div>//tiguan</div>
<div> </div>
<div>LINUX FILE TYPES</div>
<div>- 7 typů souborů</div>
<div>- soubor jako takový - sada dat adresovaných jedním názvem</div>
<div>- soubory reprezentující adresáře, podadresáře, symbolické linky (symlink) // ls -l  vypíše i informace další: první znak d - directory, l - link (odkaz)</div>
<div>- soubory reprezentující zařízení - /dev/</div>
<div>c - character device, zaleží na pořadí zápisu nebo čtení (např klávesnice),</div>
<div>b - block device - data ze zařízení jsou čtená po blocích (nvme zařízení(pevné disky))</div>
<div>p - pipe - soubor, používá se k meziprocesové komunikaci - jeden proces data zapíše, druhý je vyčte a soubor zůstane prázdný (destruktivní čtení)</div>
<div>s - socket - meziprocesová komunikace, oboustraná - souvislá komunikace dvou procesů /run/</div>
<div> </div>
<div>- tedy: d - directory; l - link; c - character device; b - block device; p - pipe; s - socket</div>
<div> </div>
<div>- vytvoření socketu - make fifo, dnes se používá D-bus - procesová sběrnice, program se tam připojí a ostatní programy s ním můžou komunikovat napřímo</div>
<div>- např označím něco kurzorem, každý program kam to chci vložit má pak přístup k tomu co jsem si označil - to má na starosti D-bus, memusí si vytvářet přímo soubor</div>
<div> </div>
<div>inote - index note - blok metadat popisující informace o souboru // ls -i, ls -ial - obsah souboru, který reprezentuje adresář ve kterém právě jsem - jméno které ukazuje na nějaké místo na disku</div>
<div>hard linky - druhotné názvy souborů pro soubory na disku</div>
<div># stat [file] //zobrazí informace které jsou v inote</div>
<div>symbolic link, soft link, symlink - neukazuje přímo na inote, ukazuje na jiné jméno</div>
<div># ln //příkaz link, umí vytvářet hard/soft linky</div>
<div># lsusb ID xxxx:xxxx -&gt; idVendor:idProdukt //pokud chceme ověřit kompatibilitu, zda zařízení je podporováno v linux, musíme znát tyto dva údaje (id)</div>
<div> </div>
<div>LINUX DEVICE NAMES for HARD DRIVES</div>
<div> </div>
<div>SCASI</div>
<div>1. disk = /dev/sda</div>
<div>2. disk = /dev/sdb</div>
<div> </div>
<div>sda1, sda2, sda3 - logické oddíly disku</div>
<div> </div>
<div>SHELL</div>
<div>- více možností, program pro interakci se systémem</div>
<div>- v LINUXU BASH (born again shell), v Debianu i původní SH (z roku 1977)</div>
<div>- dále také C shell (syntaxe jazyka C);</div>
<div>- Ash</div>
<div>- Korn shell</div>
<div>- Z shell</div>
<div> </div>
<div>po zadání příkazu do BASHe a stisknutí enteru BASH provede tzv. expanzi, zabránění expanze pro následující znak - zpětné lomítko \, pro delší string "$HOME     $UID", verbatim (zachová řetězec) '$HOME     $UID'</div>
<div> </div>
<div> </div>
<div>KOMUNIKAČNÍ KANÁLY</div>
<div>FD - file deskriptor -fd0, fd1, fd2 </div>
<div> </div>
<div>stdin - standard imput</div>
<div>stdout - standard output</div>
<div>stderr - standard error</div>
<div> </div>
<div>výstupy příkazů se dají nasměrovat - uložit např do souborů # ls &gt; seznam.txt - výstup do plaintext souboru, po každém spuštění se přepisuje; při použití &gt;&gt; se přidává</div>
<div>chybový výstup - musím přidat 2&gt;</div>
<div>např můžu přesměrovat chybové výstupy do různého souboru než nechybný # ls /dev/ /sdagsf/ &gt; dobre.txt 2&gt;chybne.txt</div>
<div> </div>
<div>TEXTOVÝ EDITOR</div>
<div>nano //v SUSE se nepoužívá</div>
<div>vim //</div>
<div>midnight commander // #mc</div>
<div>joe</div>
<div> </div>
<div> </div>
<div>vim - vi improved - 26 bufferů, editace více souborů zároveň, textový editor/vývojové prostředí</div>
<div>- ovládání: pouze hlavní blok klávesnice</div>
<div>- po otevření - command mode - h,j,k,l (ekvivalent šipek); x maže</div>
<div>- editační mód - i (insert), esc - návrat do command mode</div>
<div>- y (yanking, kopírování) </div>
<div>- u - undo</div>
<div>- r - redo</div>
<div> </div>
<div>vim</div>
<div> </div>
<div>SSH</div>
<div>- port 22</div>
<div>- Diffie-Hellman -pomocí napodobení "náhodných algorytmů" pro vytváření "náhodných čísel" by teoreticky mohl jít zjednodušit burteforce útok na vytváření DH prvočísel</div>
<div> </div>
<div>WinSCP - pro windows dobré na kopírování souborů do linuxu/zpět</div>
<div> </div>
<div>SSH Server</div>
<div>config file - /etc/ssh/sshd_config //nastavení</div>
<div>je dobré posunout port nad prvních 10000 - odfiltrování script kiddos, filtace sofistikovaných účastníků</div>
<div>je dobré zakázat přímé přihlášení na root</div>
<div> </div>
<div>přihlašování pomocí SSH klíčů (asymetrická kryptografie) #ssh-keygen</div>
<div>ssh-copy-id -i id_rsa.pub uzivatel@pocitac #scp ~/.ssh/id_dsa.pub uzivatel@pocitac:pubkey</div>
<div> </div>
<div> </div>
<div>VNC - virtual network computing</div>
<div>- open source. není zabezpečený - používat v kombinaci s SSH tunelem!</div>
<div>- lze přistupovat přes webový prohlížeč</div>
<div> </div>
<div>- with session management</div>
<div>- without session management</div>
<div>- don't allow remote administration</div>
<div> </div>
<div>default TCP 5901</div>
<div> </div>
<div>VNC via SSH</div>
<div># zypper apache 2 //web server</div>
<div># ssh -L 5454:192.168.3.105:80 192.168.3.105 //na localhost na portu 80 mám to co na cílovém portu</div>
<div>- "tunel" se dělá přesměrováním na porty kde je SSH, lokálně - provoz přehodím tam kde je SSH a pak je provos šifrovaný SSHčkem, předchůdce VPN</div>
<div> </div>
<div>BOOT PORCESS</div>
<div>BIOS/UEFI -&gt; Bootloader (Stage1(MBR) -&gt; Stage2) -&gt; HW (Kernel initramfs -&gt; udev HW) -&gt; systemd</div>
<div> </div>
<div>initramfs - inicializační ramdisk - cpio archive, loaduje ho Linux kernel na RAM disk, je to takový "minilinux", obsahuje i základní ovladače, které jádro použije k připojení základních zařízení startu další ovladače z disku</div>
<div>UEFI - CPU independent architecture a drivery, MBR nahradila GPT tabulka, je více grafický, lze používat myš, vyžaduje důvěryhodnost toho co načítá, klíče;</div>
<div>GRUB vs GRUB2 - rozdílné konfigurační soubory, podpora více filesystémů, podporuje čtení z LVM a RAID zařízení</div>
<div>-grub má vlastní shell</div>
<div>/etc/default/grub - uživatelská nastavení GRUB2</div>
<div> </div>
<div> </div>
<div>SYSTEMD</div>
<div>systemd - náhrada správce "init" - obsahuje velké množství embedded funkcí, nevhodné pro specializované systémy</div>
<div>-schopnost paralelizace</div>
<div>- má vždy process ID 1</div>
<div>- další procesy jsou vždy spuštěny pod ním</div>
<div> </div>
<div>unit files</div>
<div>/usr/lib/systemd/system</div>
<div>a</div>
<div>/etc/systemd/system</div>
<div> </div>
<div>Service &lt;service&gt;.service</div>
<div>Target &lt;target&gt;.target</div>
<div>Sockets &lt;socket&gt;.socket</div>
<div>Path &lt;path&gt;.path</div>
<div>Timer &lt;timer&gt;.timer</div>
<div>Mountpoint &lt;mount&gt;.mount</div>
<div>Automount point &lt;automount&gt;.automount</div>
<div>Swap &lt;swap&gt;.swap</div>
<div>Device &lt;device&gt;.device</div>
<div>Scope/slice &lt;scope&gt;.scope &lt;slice&gt;.slice</div>
<div> </div>
<div>aplikacím lze nastavit zabezpečení:</div>
<div>PrivateNetwork=yes</div>
<div>a další parametry omezující aplikaci které nevěříme</div>
<div>jail - pomocí příkazu chroot lze vytvořit "vězení" pro aplikaci, které tímto přiřadíme její vlastní kořenový adresář, pokud aplikace neběží pod rootem tak se nezle dostat pryč</div>
<div>- použití např při DNS serveru</div>
<div> </div>
<div>pro ovládání systemd se používá příkaz #systemctl</div>
<div> </div>
<div>PROCESY</div>
<div>procesy - uživatelské - spojené s terminálem, když zanikne terminál, zanikne i proces</div>
<div>- daemon - běží jako služby stále, nezávisle na tom zda PC někdo používá</div>
<div> </div>
<div>-každý proces má PID (process ID)</div>
<div>-proces může volat další procesy, které mají parent-child vztahy, child procesy mají pPID (parent process ID)</div>
<div> </div>
<div># ps aux | head -5</div>
<div>//vlastník procesu, PID, využití procesoru %, virtual memory %, resources, TTY (teletype, řídící terminál (systémové procesy mají ?)), </div>
<div>status (r-running, s-sleeping, t-zastavený, d-nepřerušitelný spánek, z-zombie (návratová hodnota není potvrzena rodičem, tudíž proces se nemůže ukončit)),</div>
<div>akumulovaný čas, cesta k programu</div>
<div> </div>
<div>#ps lax | head -5</div>
<div> </div>
<div>#pstree -up //zobrazí stromovou strukturu ve které běží procesy a jak na sebe navazují</div>
<div>#top</div>
<div> </div>
<div>-každý proces má nějakou prioritu, dnes už existují kontrolní skupiny; čím nižší číslo, tím větší priorita</div>
<div> </div>
<div># nice //modifikátor priority, můžeme změnit až o 20</div>
<div> </div>
<div># screen </div>
<div># tmux //terminal multiplexor - kontrolní kombinace ctrl + B</div>
<div> </div>
<div> </div>
<div># crontab //cronos - čas; plánování procesů (opakujících se)</div>
<div># at //jednorázové spouštění procesů</div>
<div> </div>
<div>USER and GROUP ID</div>
<div>- každý uživatel má své ID, UID nemusí být jen uživatelé ale třeba i procesy</div>
<div>každé UID vždy patří do alespoň jedné GID</div>
<div># id //zobrazí current UID atd</div>
<div># whoami</div>
<div># getent //vypíše seznam všech entit</div>
<div># getent passwd //</div>
<div># getent group // vypíše skupiny a sekundární členství ve skupinách</div>
<div> </div>
<div>/etc/passwd //uživatelé</div>
<div>/etc/shadow //hesla uživatelů a parametry hesel</div>
<div>/etc/group //složka s groups</div>
<div>/etc/default/useradd //složka s výchozími informacemi</div>
<div> </div>
<div>/etc/skel //můžu vytvořit univerzálního uživatele kterého pomocí useradd a specifikace této složky do SKEL mohu kopírovat a vytvářet více účtů</div>
<div> </div>
<div>YaST - user a group management - GUI nástroj pro správu uživatelů</div>
<div> </div>
<div>OPRÁVNĚNÍ v SOUBOROVÉM SYSTÉMU</div>
<div>type and permissions; links; ownership; file size; modification time; file name</div>
<div>U G O - user group others</div>
<div>drwxr-xr-x 1 geeko users 230 Oct 7 09:06 report.bak</div>
<div> </div>
<div>r - read</div>
<div>w - write</div>
<div>x - execute (u souborů spuštění, u adresářů právo vstupu)</div>
<div> </div>
<div>- unix permission calculator - kombinace rwx odpovídá binární hodnotě, lze zadávat i binárně/hexadecimálně</div>
<div>- Sticky bit - přilepený bit - místo rwx má u others rwt - třeba u tmp - soubor který má sticky bit - jediný kdo smí zasahovat do souboru je jeho vlastník</div>
<div>- SGID - set group ID - místo rwx má u skupiny rws - podobné jako u sticky bitu, jen pro skupinu</div>
<div>- SUID - set user ID - místo rwx má u uživatele rws - sets the user ID of the process to that of the owner of the file when the program is run</div>
<div>- používá se např u uživatelské změny hesla přes # passwd</div>
<div> </div>
<div>ACLs - access control lists</div>
<div>- možnost definovat u každého objektu (u každého souboru v linuxu) další práva</div>
<div>- důležité pojmy:</div>
<div>- třídy - vlastník, skupina, ostatní</div>
<div>- Access ACL</div>
<div>- Default ACL</div>
<div>- ACL entry</div>
<div> </div>
<div>- maska - slouží pro omezení práv, co dám do masky tak se omezí v právech ostatních</div>
<div>- ACL jde uložit do souboru a z něj je aplikovat na různé soubory</div>
<div> </div>
<div>pozn.: cifs, nfs(network file system) - souborové systémy které podporují integraci linuxového file serveru do windowsové sítě</div>
<div> </div>
<div>/etc/sudoers - nastavení sudo </div>
<div>Defaults targetpw</div>
<div>ALL ALL=(ALL) ALL - modify na - uživatel ALL=(ALL) NOPASSWD:ALL ; prakticky udělá z uživatele roota, superuživatele</div>
<div> </div>
<div>Podporované aplikace:</div>
<div>PulseAudio; CUPS; gnome; libvirt; PolKit; PackageKit; System; YaST</div>
<div> </div>
<div>SOFTWARE</div>
<div>- dříve se vše kompilovalo, dnes dostupné z "balíčků" //dohledat co je to přesně kompilace</div>
<div>- kompilování - po stažení - spuštění configure, vygeneruje makefile.am dle toho co přesně máme za zařízení, příkaz # Automake ho zkompiloval a příkaz # make install ho dá na disk</div>
<div>- nevýhody - nebylo zřejmé jaké knihovny jsou potřeba pro spuštění</div>
<div>-kompilace na jednom systému nezaručovala kompilaci na druhém</div>
<div>-špatná možnost updatu, s tím spojená bezpečnostní rizika</div>
<div> </div>
<div>- nyní se používají balíčky - pro Red Hat a SUSE jsou specifické RPM balíčky (Red Hat Package Management), u Debianu jiné</div>
<div>- balíčkovací mechanismy - dostáváme už hotové programy, defacto klon systému toho kdo vytvořil distribuci</div>
<div>- s tím i RPM databáze - informace o nainstalovaných balíčcích, drží info o tom co všechno spadá pod jeden balíček, včetně metadat, dependencies na knihovnách</div>
<div>- lze verifikovat nynější stav oproti původnímu </div>
<div>- na správu databáze potřebujeme manager - RPM package manager - instalace a odinstalace balíčků</div>
<div>- při instalaci balíčků se podívá jaké knihovny už jsou nainstalované a vyzve k doinstalaci dalších</div>
<div> </div>
<div>- balíčky - jméno-verze-release.architektura.rpm (zypper-1.11.8-1.1.x86_64.rpm)</div>
<div>- Information header o balíčku, GPG Signature (kontrolní součet podepsaný klíčem toho co balíček vytvořil, pro kontrolu a zabezpečení)</div>
<div>- Instalační skripty - preinstalační, instalační, pre-odinstalační, poodinstalační</div>
<div>- CPIO Archive - archiv adresářů a souborů</div>
<div> </div>
<div># rpm - už se moc nepoužívá, jen pro interakci s RPM databází </div>
<div> </div>
<div>- dnes se používají repozitáře - např.: libzypp (((files in the system)RPM)libzypp) - automaticky doinstalovává dependency balíčky, nemusíme to dělat manuálně ale jen odsoulasíme</div>
<div>- repozitáře - sloužky, které obsahují RPM balíčky a meta-data</div>
<div>- můžou být lokální (offline, např instalačka), nebo online</div>
<div>- libzypp má dependency třeba na yum - yellowdog update manager</div>
<div>- patch (záplata) - obsahuje metdata která odkazují na přesná místa v kódu která chceme změnit, nemusíme pak znovu instalovat celý program</div>
<div>- delta RPMS - podobné jako patch, jen když vyjde celá nová verze která je podobná předchozí tak stáhne pouze to co se změnilo</div>
<div>- patterns - odkazuje na více balíčků, abychom nemuseli instalovat každý zvlášť</div>
<div>- products - obsahuje více patternů</div>
<div> </div>
<div>libzypp - má své utilities - zypper, PackageKit, YaST</div>
<div># zypper - repozitáře jsou reprezentovány soubory .repo v /etc/zypp/repos.d</div>
<div>- v repozitáři - package (samostatný balíček) a srcpackage (připravené ke kompilaci, zdrojový kód)</div>
<div> </div>
<div>- lze řídit i moduly v YaSTu </div>
<div> </div>
<div>NETWORK MANAGEMENT</div>
<div>- v SLE se využívá ke správě služba Wicked</div>
<div>- firewalld - firewall daemon, jeho rozhraní</div>
<div> </div>
<div>- pojmy:</div>
<div>- Device - zařízení (NIC)</div>
<div>- Interface - spojka se zařízením, interface na fyzickém zařízení</div>
<div> </div>
<div>- konfigurace síťových adresářů je v  /etc/sysconfig/network/</div>
<div>- změna hostname - /etc/hostname/</div>
<div>- /etc/hosts/ - v malé síti můžeme používat místo DNS serveru, soubor distribuuju do všech zařízení v síti a oni se pak budou znát</div>
<div>- /etc/resolv.conf - </div>
<div>- /etc/nss - name service switch - kde bude brát zdroje informací</div>
<div> </div>
<div>- loopback adresa "lo:" - virtuální síťová adresa, bude tam vždycky</div>
<div> </div>
<div>- typy interfaců:</div>
<div>-Basic</div>
<div>-Bonded bond0(eth0, eth1)</div>
<div>-VLAN Network Interface</div>
<div>-Network Bridge</div>
<div> </div>
<div>-config file: ifcfg-ethX</div>
<div> </div>
<div>WICKED</div>
<div>- 2 služby -wicked.service</div>
<div>-wickedd.service</div>
<div> </div>
<div> </div>
<div>firewalld -softwarový firewall, chová se jako paketový filtr, dívá se jen do hlavičky, ne dovnitř paketů - rychlé ale nedokáže odfiltrovat vše</div>
<div>-daemon process, /etc/firewalld/</div>
<div>- /etc/firewalld/firewalld.conf</div>
<div>-defaultně všechny porty uzavřené, pouze ICMP</div>
<div>-ovládání CLI (#firewall-cmd) a GUI </div>
<div>-dvě konfigurace, runtime a permanent</div>
<div> </div>
<div>- zones - definuje úroveň důvěryhodnosti pro konkrétní připojení; pro každou zónu můžeme použít jiná nastavení; správa síťového filtru #iptables a nebo novější #nft</div>
<div>- zóny nastavují pravidla, jsou hierarchicky uspořádány (extrémy - drop a trusted) - external - dělá NAT</div>
<div>- /etc/firewalld/</div>
<div>- user configurace /usr/lib/firewalld/</div>
<div> </div>
<div>- target - výchozí cíl zóny, ; pakety by se měly zahazovat přímo</div>
<div>STORAGE ADMINISTRATION</div>
<div>- I/O Stack - Physical Storage Layer (fyzický disk)</div>
<div>- Disk Access Protocol Layer (PATA, SATA)</div>
<div>- Logical Storage Layer (Device-Mapper, MPIO, DM-RAID, LVM, MD)</div>
<div>- Block Device Layer (Block Device Files)</div>
<div>- File System Layer (Cluster File Systems, Traditional File Systems, Btrfs)</div>
<div>- File System Mount Layer (FHS - files and directories)</div>
<div> </div>
<div>- máme prázdný disk, na něm musíme vytvořit datovou strukturu - MBR (mater boot record) a GPT (GUID partition table, novější způsob, oddíly jsou v tabulce identifikovány jednoznačným ID)</div>
<div>- konfigurační tools - YaST, fdisk, parted</div>
<div> </div>
<div>- MBR a GPT:</div>
<div>- UEFI podporuje pouze GPT</div>
<div>- MBR- limitace do (32bitový identifikátor každého sektoru - limitace adresace do 2TB)</div>
<div>- občas se označuje jako MSDOS</div>
<div>- z prvního sektoru bootuje disk</div>
<div>- při požkození tabulky došlo ke ztrátě metadat </div>
<div>- fyzické partitions /dev/sdx1 až /dev/sdx4</div>
<div> </div>
<div>- GPT- 64bitové identifikátory, limit adresace do 9,2ZB</div>
<div> </div>
<div>fdisk - kroky se dějí v paměti, teprve v posledním kroku se zeptá na realizaci změn; když něco pokazíme je jednodušší se vrátit zpět</div>
<div> </div>
<div>parted - umí nejen rozdělit disk na logické oddíly ale i formátovat</div>
<div>- změny se dějí okamžitě, pozor na to</div>
<div>- podporuje skripty</div>
<div> </div>
<div>- tabulka partitions které vidí jádro - /proc/partitions</div>
<div> </div>
<div>- souborové systémy LINUXu</div>
<div>- používané: ext4, xfs, btrfs</div>
<div> </div>
<div>- ext2 - staré 30 let</div>
<div>- ext3 - přidává žurnálování, dřív byl potřeba scan aby byla zajištěna integrita dat, toto přidalo žurnál který dodával jakési logování; kontroloval se žurnál; šlo i za chodu zvětšit souborový systém</div>
<div>- ext4 - 64bitová adresace</div>
<div>- xfs - navázáno na verzi jádra, srovnatelné se ext4 (má žurnál, 64bit, souborový systém lze zvětšit ale ne zmenšit)</div>
<div>- btrfs- souborový systém je typu "copy on write", nikdy nepřepisuje, pouze aktualizuje pointery; defacto je to databáze, transakce jsou atomické (nepotřebuje žurnál), můžeme se podívat jak vypadal soubor dřív</div>
<div>- lze dělat snapshoty celého souborového systému</div>
<div>- nevýhoda: zabere mnohem více místa; nevhodné pro databáze;</div>
<div>-VFAT- FAT16, FAT32, exFAT - také podpora</div>
<div> </div>
<div>- uživatel nemusí řešit přechod mezi souborovým systémem díky VFS</div>
<div>- VFS - interface mezi procesy které zapisují data na disk a mezi souborovými systémy - dokáže emulovat vlastnosti které souborové systémy nemají</div>
<div> </div>
<div>1)vytvořit oddíl</div>
<div>2)vytvořit file system</div>
<div>3)mount do adresáře pozn: flashdisky se připojují do /run/media/user</div>
<div> </div>
<div>- alternativní cesty - /dev/disk</div>
<div>- můžeme nastavit kam se bude defaultně disk připojovat, systém poznává disk podle UUID - seznam /etc/fstab</div>
<div>- # blkid /dev/sdc1</div>
<div>- zkopírovat UUID a řpidat ho do fstab s tím kam chci aby se připojoval</div>
<div>- je dobré zakazovat file system check (fschck) a dělat ho při námi zvolených příležitostech (když vím že server nebude zatížený)</div>
<div> </div>
<div>KONFIGURACE LVM</div>
<div>- pokud používám jedno z odvozených úložišť, musím ještě vložit jeden krok</div>
<div>- front end to the device mapper to easily manage logical storage</div>
<div>- možnost vytvořit "online" svazky - svazek jako virtuální disk se mohl za běhu zvětšovat a zmenšovat</div>
<div>- "pool" místa, různým komponentám šlo pak zvětšovat z poolu místo, a také za běhu zvětšovat pool (fyzickým připojením dalšího disku)</div>
<div>- velmi závislé na metadatech</div>
<div> </div>
<div>- fyzický disk musíme zformátovat aby mohl pracovat s LVM</div>
<div>- několik disků svážeme do skupiny - "poolu"</div>
<div>- na tomto poolu vytvoříme pak logické oddíly</div>
<div> </div>
<div>tedy:</div>
<div>- vrstva 1 - Physical Volume</div>
<div>- vrstva 2 - Volume Group</div>
<div>- vrstva 3 - Logical Volume</div>
<div> </div>
<div>- metadata se cachují pomocí lvm2-lvmetad.service</div>
<div>- disky se monitorují pomocí lvm2-monitor.service</div>
<div> </div>
<div>RAID</div>
<div>RAID 0 -disky jsou poolované</div>
<div>RAID 1 - mirroring</div>
<div>RAID 5 - data jsou distribuovaná napříč disky</div>
<div>RAID x - jsou ještě další, nestihl jsem je zapsat</div>
<div> </div>
<div>- zobrazení - cat /proc/mdstat</div>
<div>- v /etc/sysconfig/mdadm - lze nastavit zasílání MDADM_MAIL na konkrétní mailovou adresu</div>
<div>systemctl start mdadm?? - musíme zapnout tuto službu</div>
<div> </div>
<div>BTRFS</div>
<div>- Btrfs: The "Better" File System</div>
<div>- vestavěná správa svazků, vestavěný copy on write, umí podsvazky (můžeme připojit jen podsvazek, stejně tak i zálohovat poze podsvazek)</div>
<div>- dobrá možnost snapshotování, SUSE z nich umí i bootovat</div>
<div>- vestavěná možnost kontroly integrity dat, i komprese</div>
<div>- správa: #btrfs nebo YaST</div>
<div>- btrfs sám neví kolik má volného místa (kvůli copy on write) - má pouze odhady</div>
<div> </div>
<div>NFS</div>
<div>- network file system</div>
<div>- vyexportujeme nějaké adresáře na serveru, na klientovi si ho připojím a odkudkoliv se na síti připojím, dostanu se do něj</div>
<div>- NFS je služba RPC (remote procedure call)</div>
<div>- nyní NFSv4 - umí paralelní přenosy, zabezpečené pomocí kerberos, lze šifrovat jak přihlašování, tak interakce, tak i přenos dat po síti, využívá pouze TCP, pouze 1 port:2049</div>
<div>- single NFS daemon (nfsd);</div>
<div>- lze propojit uživatele z jiných systémů (mapování uživatelů (stringy, ne UID))</div>
<div>- seznam exportovaných souborových systémů /etc/exports</div>
<div>- syntax: /shared/directory host(option1,option2) tedy například: /export/data server1(rw,sync)</div>
<div>- /etc/sysconfig/nfs - můžeme nastavit použití více vláken CPU, defaultně jsou dost omezená, dobré měnit</div>
<div>- NFS je defaultně součástí jádra ale musíme ho doinstalovat</div>
<div>- pro zobrazení jestli máme správně nastavené to, co je vyexportované /var/lib/nfs/etab</div>
<div>- musíme ho povolit ve firewallu</div>
<div> </div>
<div>- lze nastavit i v GUID YaSTu</div>
<div> </div>
<div>- u klienta můžeme přidat jednorázově (přes mount) nebo napořád, editací /etc/fstab</div>
<div> </div>
<div>ADMINISTRATION AND MONITORING</div>
<div>čas:</div>
<div>- dříve ntpd</div>
<div>- nyní chronyd</div>
<div> </div>
<div>- synchronizace času:</div>
<div>- pomocí NTP (UDP:123), klient lze použít zároveň jako server; stratum dnes v extrémních případech max do stratum 3</div>
<div>- jednorázová # netdate</div>
<div>- souvislá # chronyd - konfigurae v /etc/chronyd - můžeme přidat specifický NTP server nebo pool serverů</div>
<div> </div>
<div>logování:</div>
<div>- syslog daemon pro SLES: rsyslogd</div>
<div>- konfigurační soubor je v /etc/rsyslog.conf; hlavní konfigurační soubor /etc/sysconfig/syslog - konfigurace toho jak systém službu využívá</div>
<div>- v konfiguraci - facility.priority -debug, info, notice, warn, error, crit, alert, emerg - standardizováno</div>
<div>- můžeme zobrazit zde:</div>
<div>- /var/log/messages</div>
<div>- /var/log/audit/audit.log</div>
<div>- /var/log/firewall</div>
<div> </div>
<div>supportconfig:</div>
<div>- sesbírá 95% potřebných informací, vloží je jako soubory do složky</div>
<div>- v plaintextu zobrazí vše o systému</div>
<div>- validace RPM databáze</div>
<div>- service status</div>
<div>- konfigurační soubory</div>
<div>- etc</div>
<div> </div>
<div>- po spuštění sesbírá data, uloží je defaultně do /var/log/nazevzarizeniatd</div>
<p> </p>
            ]]>
        </content>
    </entry>
    <entry>
        <title>MPLS</title>
        <author>
            <name>Sklepmistr</name>
        </author>
        <link href="https://sklepmajstr.cz/mpls.html"/>
        <id>https://sklepmajstr.cz/mpls.html</id>
            <category term="Notes - Networks"/>

        <updated>2026-05-16T17:16:35+02:00</updated>
            <summary type="html">
                <![CDATA[
                    POZNÁMKY - routová tabulka internetu je dnes cca 920 000 - segment routing? PIMv2? MLDP? - traffic engineering není možný na distance vector směrovacích protokolech - cisco modeling labs - training xconnect l2 vpn - vpls e vpn Example router config Breakout UI - lab&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                <div>POZNÁMKY</div>
<div>- routová tabulka internetu je dnes cca 920 000</div>
<div>- segment routing?</div>
<div>PIMv2? MLDP?</div>
<div>- traffic engineering není možný na distance vector směrovacích protokolech</div>
<div>- cisco modeling labs - training</div>
<div>xconnect</div>
<div>l2 vpn - vpls</div>
<div>e vpn</div>
<div> </div>
<div><a href="https://sklepmajstr.cz/media/files/MPLS_router_cfg.rtf" target="_blank" rel="noopener noreferrer">Example router config</a></div>
<div> </div>
<div> </div>
<div>Breakout UI - lab</div>
<div>gnsko</div>
<div>eve</div>
<div> </div>
<div>(zajímavé programy to try: KDiff3, 3CDaemon, LAN messenger, Unbrowse SNMP, Fiddler 4, Tera Term, Tftpd64, WinSCP, mRemoveNG,</div>
<div>UltraVNC Server, CM, NTP Time Server, VNC Viewer, UltraVNC Viewer, HTTTrack website copier, Advanced IP address Calculator,</div>
<div>Nmap - Zenmap GUI, UltraVNC Launcher, Cisco AnyConnect, Cisco Configuration Professional, UltraVNC Repeater)</div>
<div> </div>
<div>na yt videa - MPLS, VPN over MPLS, jak souvisí s BGP, co je to route distinguisher</div>
<div>*****</div>
<div>10.8.16.61</div>
<div>*****</div>
<div> </div>
<div>######################################################################################################################################################################################################</div>
<div> </div>
<div>MPLS - multiprotocol label switching</div>
<div>- chceme nahradit klasické směrování pomocí štítků (labelů), které obsahují informace o cestě</div>
<div>- MPLS infrastruktura neslouží jen pro IP sítě, dokáže obsloužit ATM, Frame Relay</div>
<div>- forwarduje velké množství paketů na základě labelů, pakety jsou switchované, ne routované</div>
<div>- pro přidělování labelů - protokol LDP (label distribution protocol), dříve také TDP (tag distribution protocol)</div>
<div>- destination-based unicast bez použití IP směrování</div>
<div> </div>
<div>- tradiční router vybalí paket z rámce, dělá směrování atd - zdlouhavé, MPLS se dívá na label který je k paketu přidáván</div>
<div> </div>
<div>- varianta QoS pro MPLS je CoS - až 8 tříd (3 bit v headeru)</div>
<div>- traffic control</div>
<div> </div>
<div>Základní komponenty:</div>
<div>LSR - Label switching router - swapuje labely, každý 1 hop dojde ke změně labelu</div>
<div>LER - label edge router - provádí zapouzdření, berou si příchozí IP pakety a předávají je do sítě; provádí i opak, odstranění labelu při výstupu paketu z MPLS sítě</div>
<div> </div>
<div>CE - Customer edge - router na straně u zákazníka, neví že je součástí MPLS sítě, jen předává data od zákazníka dál</div>
<div>Ingress LSR - vstupné router - přebírá traffic do MPLS, přidělí label</div>
<div>Transit LSR - jen přebírají traffic a předávají ho dál</div>
<div>Egress LSR - výstupní router </div>
<div> </div>
<div>FEC - Forwarding Equivalent Class - něco, čemu se bude přidělovat label (nějaký subnet)</div>
<div>LIB - Label Information Base - databáze všech labelů, lokálně alokovaných a naučených od LDP peerů</div>
<div>LFIB - Label Forward Information Base - podmnožina LIB, obsahuje informace o specifických cestách</div>
<div>FIB - Forwarding Information Base</div>
<div> </div>
<div>P - provider - full MPLS router</div>
<div>PE - provider edge - zde začíná a končí MPLS</div>
<div>CE - customer edge - IP směrování</div>
<div> </div>
<div> </div>
<div>ARCHITEKTURA</div>
<div>- základ je router information base</div>
<div> </div>
<div>Control plane - kouká se do směrovací tabulky a podle toho volí label, předávají si informace (LDP)</div>
<div>Data plane - přidělování a měnění labelů</div>
<div> </div>
<div>- v MPLS síti musí běžet IGP - link state směrovací protokol, nejčastěji se volí OSPF nebo IS-IS; routery si pomocí něj informace o cestách</div>
<div>- dále musí běžet LDP</div>
<div> </div>
<div>- na data plane jsou pakety odbavovány pomocí štítků na základě control plane</div>
<div> </div>
<div>- pokud nějaký výpadek, je síť schopná směrovat normálně dle paketů</div>
<div> </div>
<div>MPLS ACTIONS</div>
<div>- na cisco routerech se používá tzv packet-mode</div>
<div>- IP routing protokoly vytvoří IP routovací tabulku &gt; každý LSR přidělí vlastní labely pro každou FEC &gt; pak si s ostatními routery porovnávají informace</div>
<div> </div>
<div>- Penultimate Hop Popping - při forwardování labelů ze sítě pryč, upstream router popne label pryč z paketu - příznak "implicit-null"</div>
<div> </div>
<div>MPLS LABEL</div>
<div>- mezi frame headerem a IP headerem</div>
<div>- 32bit pole - label, experimental, bottom-of-stack, TTL</div>
<div> </div>
<div>- sousední routery (label distribution peers) si vyměňují informace o labelech přes TCP - 646 - defaultně TCP port na kterém funguje LDP</div>
<div>- LDP - RFC3035, 3036, 3037</div>
<div> </div>
<div>- label space - platform wide</div>
<div>- interface specific</div>
<div> </div>
<div>LDP</div>
<div>- messages:</div>
<div>- Discovery messages</div>
<div>- Session messages</div>
<div> </div>
<div>povinné:</div>
<div>- pro traffic engineering - vrstvení labelů (lable stacking)</div>
<div>- CEF je mandatorní (Cisco express forwarding)</div>
<div>- aktivace MPLS pro IPv4</div>
<div>- aktivace LDP</div>
<div> </div>
<div>volitelné:</div>
<div>- MTU</div>
<div> </div>
<div>KONFIGURACE LDP (dva OS, IOS a XR - XR oproti IOSu nepotřebuje restart, příkazy zadávám postupně a vykonají se až když zadám příkaz "commit")</div>
<div>- přepnu se na interface, musím konfigurovat interfaces jednotlivě</div>
<div># mpls ip //spustí se vyhledávání MPLS partnerů, při nalezení dojde k výměně štítků a rovnou se začíná štítkovat</div>
<div> </div>
<div>- pro XR:</div>
<div># mpls ldp</div>
<div># commit</div>
<div> </div>
<div>- na straně zákazníka je dobré zablokovat MPLS aby nemohl podvrhovat štítky atd</div>
<div># ip access-group NoLDP in</div>
<div># ip access-list NoLDP deny tcp any any eq 646</div>
<div># ip access-list NoLDP permit ip any any</div>
<div> </div>
<div># show mpls interface //zobrazí které if se účastní MPLS</div>
<div># show mpls ldp discovery</div>
<div># show mpls ldp parameters //jaké používáme parametry pro ldp (min a max label - rozsah, hold time - jak dlouho držím sousedství, každý keep-alive paket ho prodlužuje)</div>
<div># show mpls ldp neighbor //ukáže vztahy se sousedy</div>
<div># show mpls ldp neighbour detail //více detailů</div>
<div># show mpls ldp bindings //ukáže bindy FEC k labelům</div>
<div> </div>
<div># show mpls forwarding-table //základní diagnostický příkaz, vypíše FIB</div>
<div># show ip cef detail //zobrazí jestli mám danou síť a daný label zavedený </div>
<div> </div>
<div># debug mpls ldp //</div>
<div># debug pls lfib //</div>
<div># debug mpls packets [interface] //</div>
<div>// spustí debugovací příkazy, mít na paměti výpočetní výkon jaký to sežere, u zatíženého routeru příkaz "# debug all" router okamžitě shodí</div>
<div> </div>
<div># no mpls ip propagate-ttl forwarded</div>
<div># mpls ldp autoconfig //automatická konfigurace</div>
<div># mpls mtu &lt;velikost&gt; // konfigurace maximální transfer unit (1512bytes - velikost hlavičky je 12bytes)</div>
<div> </div>
<div>MPLS/VPN technologies</div>
<div>- MPLS řekneme jen vstupní a výstupní bod - konfigurace je snadná</div>
<div> </div>
<div>názvosloví:</div>
<div>P-network - provider network</div>
<div>C-network - customer network</div>
<div>VC - virtual circuit</div>
<div>PVC - permanent virtual circuit</div>
<div>SVC - switched virtual circuit</div>
<div> </div>
<div>2 druhy VPN obecně:</div>
<div>- OVERLAY - vyrobí "virtuální tunel" přes který zákazník vede jakýkoliv provoz</div>
<div>- PEER-to-PEER - převzetí routingu od zákazníka a transport přes MPLS síť do dalších poboček</div>
<div> </div>
<div>v MPLS</div>
<div>- P routery se nijak zásadně nepodílí</div>
<div>- CE routery používají jen klasický IP routing</div>
<div>- hlavně PE-router</div>
<div>- na vstupu od zákazníka podporuje klasické IP</div>
<div>- na výstupu podporuje labelování</div>
<div>- podporuje VPNky</div>
<div>- mezi PE se přenáší informace o VPN routes pomocí MP-BGP (multiprotocol BGP)</div>
<div>- PE routery spravují globální směrovací tabulku, a další</div>
<div>- na routerech se vytvoří jakoby "virtuální routery" pro každého VPN zákazníka - každý směruje provoz sám</div>
<div> </div>
<div>- MP-BGP obsahuje - route distinguisher (zajišťuje unikátnost IPv4 adresy), IPv4 adresu, route target, site of origin</div>
<div> </div>
<div>VRF - Virtual Routing and Forwarding</div>
<div>- přidám route distinguisher</div>
<div>- VRF-lite nepodporuje všechny MPLS-VRF funkcionality, slouží čistě pro oddělení nějakého provozu od sebe</div>
<div> </div>
<div># ip vrf &lt;name&gt; //case sensitive</div>
<div># rd &lt;hodnota_route_distinguisher&gt; //přiřazení route distinguisheru do VRF (ASN:xx a podobně formát)</div>
<div># route-target export &lt;RT&gt; //pro nastavení bodů zájmu - export</div>
<div># route-target import &lt;RT&gt; //pro nastavení bodu zájmu - import</div>
<div># ip vrf forwarding &lt;vrf-name&gt; //přiřazení interface do VRF, v okamžiku kdy tam toto napíšeme, router odstraní IP adresy rozhraní</div>
<div># show ip vrf </div>
<div># show ip vrf interfaces</div>
<div> </div>
<div>Typické problémy </div>
<div>- v ruzných VPN na jednom routeru máme od zákazníků stejné subnety, se stejnými směrovacími protokoly</div>
<div>- toto vyřeší "routovací instance" - RIP, EIGRP, BGP//pozn. u externího BGP vždy musíme dát routing-policy</div>
<div> </div>
<div># router bgp &lt;AS-number&gt;</div>
<div># adress-family ipv4 vrf &lt;VRF-name&gt; //slide 266</div>
<div> </div>
<div>TROUBLESHOOTING</div>
<div># show ip protocol vrf &lt;VRF-name&gt;</div>
<div># show ip route vrf &lt;VRF-name&gt;</div>
<div># show ip bgp vpnv4 vrf &lt;VRF-name&gt;</div>
<div># show ip bpg vpnv4 vrf &lt;VRF-name&gt; neighbours</div>
<div># show ip bgp vpnv4 all //ukáže všechny routes</div>
<div># show ip cef vrf &lt;VRF-name&gt; //ukáže pro dané VRF cef tabulku - jak se bude provádět fast IP switching pro jednotlivé subnety, odchozí interfaces atd</div>
<div># show ip cef vrf &lt;VRF-name&gt; &lt;prefix&gt; //ukáže jen pro daný prefix</div>
<div># show mpls forwarding-table</div>
<div># show mpls forwarding-table vrd &lt;VRF-name&gt; detail</div>
<div># show ip bgp vpnv4 [ all | rd &lt;rd-value | vrf &lt;VRF-name&gt; ]</div>
<div># ping crf &lt;VRF-name&gt; &lt;IP-addr&gt;</div>
<div># trace vrf &lt;VRF-name&gt; &lt;IP-addr&gt;</div>
<div> </div>
<div>ADVANCED MPLS VPN configuration</div>
<div>- VRF - pomocí route targetu můžeme importovat a exportovat routy - v BGP se tomu vygenerují odpovídající informace, všechny routery se stejnou route target si to načtou</div>
<div>- lze to dělat pomocí "map" jemněji - RTMAP - selektivní načítaní route targets</div>
<div>- stejně tak se dá dělat i selektivní export RTMAP - vyrobíme si nějakou, přidáme kritérium podle kterého bude porovnáváno (subnet)</div>
<div>- je dobré limitovat počet prefixů, které může router dostat od BGP souseda - aby nedošlo k přeplnění paměti </div>
<div> </div>
<div>- zákazník chce používat stejné číslo AS na více lokalitách</div>
<div># neighbour ip-address as-override//dojde k přepsání AS - na přijmovém routeru nedojde k zahození</div>
<div>- zákazník může mít dvě linky které vedou přes nás, je možné že se i přes override druhou linkou vrátí</div>
<div># neighbour ip-address allowas-in &lt;limit&gt;//vypne hlídání, jestli se vyskytuje moje vlastní AS v AS_path</div>
<div> </div>
<div>OSPF in MPLS VPN</div>
<div>- když v MPLS síti provozujeme OSPF (podobně is IS-IS)</div>
<div>- PE budou vždy propojené přes BGP - BGP backbone</div>
<div>- OSPF informace se dají přenášet přes BGP pomocí extended communities, cost (OSPF) se přenáší jako MED (BGP)</div>
<div>- stejně tak i RIP se dá přenášet přes BGP (hop count také jako MED)</div>
<div>- sham-linky - "tunel" OSPF přes BGP</div>
<div> </div>
<div>OVERLAPPING VPNs</div>
<div>- chceme aby např. jedna centrála byla ve více VPNkách</div>
<div> </div>
<div>- VRF má svou vlastní směrovací tabulku, BGP rozesílá tuto tabulku určeným routerům které mají stejně nakonfigurovaný "route-target import &lt;RD_number&gt;"</div>
<div> </div>
<div>ROUTE MAPY</div>
<div>- komplexní filtr, specifikujeme pravidla a řekneme, co se má dít když jsou podmínky v pravidle splněny (například se přiřadí AS_path)</div>
<div># route-map &lt;name&gt; [permit|deny sequence]</div>
<div># match &lt;podmínka&gt; &lt;podmínka2&gt; //logicky or - podmínka jedna nebo podmínka2 - nejčastěji třeba # match ip address 5; #match metric 100</div>
<div># match &lt;podmínka3&gt; //logicky and - podmínka a podmínka 3 (v této syntaxi)</div>
<div>- defaultní akcí záznamu je permit</div>
<div>- oddělení route-map pomocí "# continue" - pokud to propadne jedním pravidlem, použije se pravidlo další (nebo specifikované číslem (#continue &lt;číslo routmapy&gt;))</div>
<div> </div>
<div>INTERNETOVÝ PROVOZ</div>
<div>- lze oddělit na fyzické vrstvě MPLS síť pro zákazníky (VPNky) a internetovou síť</div>
<div>- lze oddělit logicky, jednak pomocí VLAN na CE, druhak pomocí VRF - route leaking - z VRF vede do globální dměrovací tabulku v routeru (tímto ale boříme hranice které jsme si vytvořili VPNkama)</div>
<div>-nejlepší způsob je vytvořit jakoby VPN vedoucí do internetu - provoz pak bude stále oddělený ale přístup do internetu bude ok</div>
<div> </div>
<div>MPLS OAM</div>
<div>- existují verze ICMP protokolu pro MPLS </div>
<div>- klasický ping funguje (na IP adresu - icmp echo request, druhá strana ho vyhodnotí a zašle zpět odpověď)</div>
<div>- klasický traceroute (založený na TTL, postupně zvyšujeme pole TTL v záhlaví ICMP paketu, routery které zahazují pakety posílají zpět chybové hlášky a my zapisujeme)</div>
<div>- tyto příkazy fungují i v rámci VRF routovacích tabulek</div>
<div>- můžeme použít ping s příznakem MPLS (# ping mpls ipv4 &lt;ip_address&gt;)</div>
<div>- aby toto fungovalo, musíme mít zapnutou OAM funkci (v MPLS routeru musíme zadat #mpls oam)</div>
<div>- stejně tak můžeme použít traceroute (# traceroute mpls ipv4 &lt;ip_address&gt; verbose)</div>
<div>- můžeme použít multipath traceroute (# traceroute multipath ipv4 &lt;ip_address&gt; verbose) - pro zobrazení veškerých cest v MPLS síti</div>
<div> </div>
<div>MPLS troubleshooting</div>
<div>- co dělat když MPLS nechodí, nejde připojit VPN zákazník</div>
<div>- chyba control plane/data plane</div>
<div>- kontrola propagace routes</div>
<div>- zda vidíme od začátku cesty k cíli</div>
<div>- kontrola labelování</div>
<div> </div>
<div>1) je CEF zapnutý? máme IGP (interior gateway protocol) nastavený? máme labely pro dané FEC (forward equivalent class)? neblokuje někdo LDCP provoz</div>
<div>2) kontrolujeme provoz mezi PE a CE; kontrola UP interfaců, ping</div>
<div>3) funguje redistribuce do BGP? fungují extended community? (# show ip bgp vpnv4 vrf &lt;vrf_name&gt; &lt;ip_prefix&gt;) (# show ip bgp vpnv4 univast vrf &lt;vrf_name&gt; &lt;ip_prefix&gt;)</div>
<div>4) přesunují se nám informace mezi PE? (# show ip bgp vpnv4 all &lt;ip_prefix&gt;) //koukáme na routing distinguisher, route target, další komunity (jako OSPF doména), další route targety</div>
<div>5) # show ip route vrf &lt;vrf_name&gt; - vypíše routovací tabulku VRFka; # show ip bgp &lt;ip_address&gt;; # show ip vrf detail </div>
<div>6) # show ip route - na CEčkách //CEF je mandatorní pro každý box (# show cef interface), # show ip cef vrf &lt;vrf_name&gt; &lt;ip_addr&gt; detail - zobrazí tags imposed: {VPN label} a {LDP label} , kontrola jestli LFIB</div>
<div>7) dál můžeme začít řešit tok dat (jestli se točí counters u labelů (# show mpls forwarding-table)) - vidíme lokální a odchozí tagy, interfaces a next-hop; # show mpls forwarding</div>
<div> </div>
<div>IPv6 v MPLS</div>
<div>- oproti IPv4 (32bit) má IPv6 128bit adresu, posloupnosti nul se dají zapsat jako ::</div>
<div># ipv6 unicast-routing</div>
<div>na interfacech</div>
<div># ipv6 enable</div>
<div># ipv6 address &lt;address&gt; [eui-64]</div>
<div># ipv6 unnumbered &lt;interface_id&gt;</div>
<div># ipv6 address fe80:&lt;ipv6addr&gt;</div>
<div>- link local adresa fe80:addr- adresa která je mandatorní, uvádí se u nich i na jakém interfacu jsou obsažené</div>
<div>- slouží k tomu aby se router stal IPv6 schopným - inzerce sebe a zapojování se do všech multicast skupin</div>
<div>- eui - pokaždé se přiřadí lokální prefix + část adresy vytvořené z MAC adresy - problém soukromí (dá se potenciálně trasovat)</div>
<div> </div>
<div>- IPv6 over MPLS - více přístupů (IPv6 over L2TPv3; IPv6 over EoMPLS/AToM; IPv6 CE-to-CE IPv6 over IPv4 tunnels; 6PE;</div>
<div>- MPLS vevnitř funguje klasicky pomocí labelů, využívá IPv4 adresy</div>
<p> </p>
            ]]>
        </content>
    </entry>
    <entry>
        <title>BGP</title>
        <author>
            <name>Sklepmistr</name>
        </author>
        <link href="https://sklepmajstr.cz/bgp.html"/>
        <id>https://sklepmajstr.cz/bgp.html</id>
            <category term="Notes - Networks"/>

        <updated>2026-05-16T17:11:37+02:00</updated>
            <summary type="html">
                <![CDATA[
                    KONFIGURACE BGP // ALEF 23/9/2024 "tady máme příklad tý síťky" "to je takovej turbolab na pár minut" Cisco_2013_BGP_documentation Configuring_BGP_StudentGuide_v3 pozn.: NDA u ISP (?) BFD protocol - rychlá reakce na failiures v síti DMVPN - cisco útoky na BGP ctrl + V + ? -&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                <div>KONFIGURACE BGP // ALEF 23/9/2024</div>
<div>"tady máme příklad tý síťky"</div>
<div>"to je takovej turbolab na pár minut"</div>
<div> </div>
<div><a href="https://sklepmajstr.cz/media/files/Cisco_2013_BGP_documentation.pdf" target="_blank" rel="noopener noreferrer">Cisco_2013_BGP_documentation</a></div>
<div><a href="https://sklepmajstr.cz/media/files/Configuring_BGP_StudentGuide_v3.pdf" target="_blank" rel="noopener noreferrer">Configuring_BGP_StudentGuide_v3</a></div>
<div> </div>
<div>pozn.:</div>
<div>NDA u ISP (?)</div>
<div>BFD protocol - rychlá reakce na failiures v síti</div>
<div>DMVPN - cisco</div>
<div>útoky na BGP</div>
<div>ctrl + V + ? - vložení otazníku do cisco cli, jinak se spouští nápověda</div>
<div> </div>
<div>BGP </div>
<div>- interdomain routing, mezi doménami (autonomními systémy - jeden AS = skupina routerů s jednotnou správou); v současné době je v internetu kolem 50 tisíc AS</div>
<div>- uvnitř AS běží interní směrovací protokol (menší OSPF, větší IS-IS) // IS-IS je stabilnější, použitelný ve větších sítích (ISP)</div>
<div>- BGP tabulka internetu má v současné době kolem 1mil IPv4 routes a 200-300k IPv6 routes</div>
<div>- BGP - advanced path vector směrovací protokol (rozšířený distance vector protocol)</div>
<div>- spolehlivé updaty v síti - díky komunikaci přes TCP (port 179) (nemusím celou routovací tabulku posílat pravidelně); jen na začátku naváže se sousedem TCP session a pošle směrovací tabulku</div>
<div>- posílám pouze změny, ne celou tabulku (triggered updates only), ne periodické</div>
<div>- pro ověření jestli soused žije se posílají "keepalives" které udržují TCP session (každou minutu); po třech neúspěšných je peer prohlášen za "down" (dá se změnit)</div>
<div>- při živé síti - IBGP akumuluje informace o změnách a neposílá je rychleji než jednou za 5s, u EBGP nikdy ne dřív než za 30s</div>
<div>- bohatá metrika - mnoho nastavitelných parametrů (u interních protokolů většinou cena cesty, nebo pár parametrů ze kterých se vypočítá jedno číslo, zpravidla čím menší tím lepší)</div>
<div> </div>
<div>- scenarios:</div>
<div>- single homed - jednodušší použít statický routing, případně BGP (použijeme privátní číslo AS, privátní IP adresy)</div>
<div>- multihomed - veřejné číslo AS, veřejné IP adresy</div>
<div>- tranzitní AS - přes něj komunikují jiné AS mezi sebou, musí umět přeposílat a vyměňovat updates </div>
<div> </div>
<div>- negativa - udržování TCP sessions jsou náročné na CPU a výpočetní výkon, zároveň pomalá konvergence sítě</div>
<div>- nemůžu tolik ovlivnit</div>
<div> </div>
<div>ATRIBUTY</div>
<div>- 2 skupiny</div>
<div>- well known- musí rozpoznat každá implementace BGP protokolu</div>
<div>- optional- různé implementace BGP protokolu jim navzájem nemusí rozumět; toto ale umožňuje například jiným výrobcům rozšiřovat a přidávat různé atributy;</div>
<div>- pokud router atributu nerozumí, buďto ho zahodí nebo pošle dál</div>
<div> </div>
<div>- WELL KNOWN</div>
<div>- dvě skupiny - mandatory- vždy tam musí být</div>
<div>- discretionary- nutně nemusí být</div>
<div> </div>
<div>- mandatory: </div>
<div>- ORIGIN - řiká jak se route dostala do BGP </div>
<div>- i - originated in an IGP// </div>
<div>- e - originated in EGP// redistribuuji routy z jiného externího směrovacího protokolu (např z EGP (předchůdce BGP), v současné době se ale používá pouze BGP)</div>
<div>- ? - redistribuovaná do BGP// redistribuuji routy z jiného interního směrovacího protokolu do BGP (z IS-IS, OSPF), rozdíl oproti "i" - v případě že dostanu 2 routy, router preferuje dle pořadí "i","e","?"</div>
<div> </div>
<div>- AS-PATH - sekvence čísel AS, kterými routa prošla; umožňuje trasování, kontrola smyčky - každý router provádí check jestli v AS-Path už není jeho číslo AS</div>
<div>- NEXT-HOP - IP adresa next-hop routeru // IP adresa je tu namísto interfaců - BGP nemá asociován odchozí interface; router propaguje dalšímu routeru svojí adresu, aby věděl kudy pak směrovat</div>
<div> </div>
<div>- discretionary:</div>
<div>- Local preference - používá se pro nastavení směrovací politiky uvnitř námi ovládaného AS, pokud chceme aby směrovací politika byla konzistentní napříč routery; na jednom routeru uvnitř mého AS nastavím hodnotu local-preference a tím ovlivním, kudy budou ostatní routery routovat (nemusím to pak nastavovat na všech jednotlivě)</div>
<div>- Atomic aggregate - říká že routa byla agregovaná (route summary) // např když máme 10 routes, každá má svoje parametry, všechny sumarizujeme do jedné a nastavíme jednotný atribut - atomic aggregate říká že toto se stalo</div>
<div>// if the router has routes 192.168.1.0/24 and 192.168.2.0/24, auto-summary will summarize and advertise the classful network 192.168.0.0/16 - nezahlcuju tolik tabulky propagováním horzně moc podsítí, shrnu to pod jednu síť jakoby</div>
<div> </div>
<div> </div>
<div>- OPTIONAL</div>
<div>- transitive - i když mu router sám nerozumí, posílá ho dál (přidává partial bit, který dalšímu routeru značí, že jsem mu nerozuměl) </div>
<div>- Aggregator - specifikuje IP adresu a číslo AS routeru, který provedl route agregaci</div>
<div>- Community - číslo (může být i více čísel), používá se pro route tagging (např.: tuto routu číslo X mám zakázat, routě číslo Z mám přiřadit nějaký atribut)</div>
<div> </div>
<div>- nontransitive - pokud atributu router nerozumí, zahodí ho</div>
<div>- MED (multiexit discriminator) - metrika interního směrovacího protokolu; pomáhá určit preferovanou cestu do AS pro návratový traffic (čím nižší číslo, tím lepší cesta); tímto dokážu ovlivnit sousední AS, ale není to úplně zaručené</div>
<div> </div>
<div>AS-PATH</div>
<div>- když vytvoříme lokální cestu, AS-Path je prázdný</div>
<div>- při cestě do jiného AS přes BGP vkládáme do atributu svoje číslo AS; další AS přidává svoje číslo atd, vzniká v podstatě vektor složený z čísel AS - (4 21 78 652 7) - první byl 7, poslední byl 4</div>
<div>- při rozhodování v routingu se router často dívá na délku této posloupnosti // pozn.: s tím že je v současné době aktivních okolo 50 tisíc AS, průměrná délka AS-Path je kolem 4-5 </div>
<div>- atribut AS-Path slouží zároveň jako prevence smyčky - po obdržení BGP update se router podívá a kontroluje, zda v v AS-Path už není jeho číslo AS, pokud tam je tak routu zahazuje; </div>
<div>- maximální délka může být až 256 AS // pozn.: v minulosti jeden český ISP přesáhl max délku a shodil tím velkou část internetu - nyní ošetřeno</div>
<div> </div>
<div>NEXT-HOP</div>
<div>- BGP nemá odchozí interface, tento atribut obsahuje next-hop IP adresu</div>
<div>- nejčastěji je to nastaveno na IP adresu odchozího interface routeru, který paket posílá - router kterému data přijdou pak ví kam má pakety forwardovat, ví kdo a odkud mu něco poslal</div>
<div>- na sdíleném médiu - pokud jsou routery na sdíleném médiu, IP adresa next-hop zůstává stejná aby pak zpětný provoz neběhal po síti dvakrát, pozor na toto v DMVPN</div>
<div> </div>
<div>BGP Neighbour discovery</div>
<div>- sousedské vztahy musím navázat manuálně na obou stranách (u externího routing protokolu je to žádoucí)</div>
<div>- sousedé se pak pokusí spojit na portu 179 (TCP session)</div>
<div>- BGP open message obsahuje - BGP verze (současně v4), číslo AS lokálního routeru, hold time, BGP router ID, optional parametry</div>
<div>- síť konverguje, vymění se BGP tabulky; pro zrychlení konvergence můžu snížit hold time</div>
<div>- následně se používají BGP keepalives pro držení sousedských vztahů (každých 60s, lze změnit)</div>
<div> </div>
<div>- zabezpečení BGP komunikace - MD5 TCP hashování, s tím že se hashuje každá TCP segment který se posílá, routery mají sdílený secret (oba dva routery musí být nakonfigurovány se stejným heslem)</div>
<div> </div>
<div>ROUTE SELECTION CRITERIA</div>
<div>- router propaguje jen cestu vybranou jako best</div>
<div>- výběr best (route selection process) - seřazeno v odrážkách postupně jako posloupnost:</div>
<div>- nejdřív se router dívá jestli je platný next hop, pokud není dosažitelný, routa je ignorována; pokud je cesta validní, je označena "*" (# show ip bgp)</div>
<div>- preferuj vyšší váhu (weight)</div>
<div>- preferuj vyšší lokální preferenci (local preference - atribut který (pokud je vyšší než defaultní 100) stáhne provoz z vnitřní sítě na sebe a pak egress)</div>
<div>- preferuj routu kterou sám originuje (next hop by byl 0.0.0.0 pokud je lokálně)</div>
<div>- preferuj kratší AS-Path (porovnává se délka, kolik čísel AS je v tomto atributu)</div>
<div>- preferuj nižší origin code (IGP (i) &gt; EGP (e) &gt; incomplete (?))</div>
<div>- preferuj nižší MED (multiexit discriminator)</div>
<div>- preferuj externí BGP cesty před interními BGP cestami</div>
<div>- pokud jsou to interní BGP cesty, rozhoduje bližší BGP peer přes interní metriku</div>
<div>- pokud jsou to externí BGP cesty, preferuj starší cestu (více stabilní)</div>
<div>- preferuj cesty s nižším BGP router ID</div>
<div>- preferuj routy pocházející od souseda s nižší IP adresou</div>
<div> </div>
<div>- na základě tohoto můžeme manipulovat s cestami (např.: změna váhy, lokální preference, změna MED, ... )</div>
<div>- po výběru best routy se tato route zapíše do směrovací tabulky (# show ip route); je tam pouze next-hop adresa a administrativní vzdálenost, ne interface</div>
<div>- čili - next hop &gt; weight &gt; nejnižší local preference &gt; self-originate route &gt; kratší AS-Path &gt; nižší origin code (i,e,?) &gt; nižší MED &gt; lepší EBGP cesty než IBGP &gt; nižší router BGP ID &gt; nižší IP addr</div>
<div> </div>
<div>ADVERTISING LOCAL NETWORKS</div>
<div>- BGP router si udržuje list lokálních sítí (definováno příkazem # network nebo redistribucí)</div>
<div>- BGP pravidelně skenuje routovací tabulku, když dojde k pádu interface zaznamená změnu, vygeneruje update a pošle ho sousedovi; </div>
<div>- v případě že se interface nahodí BGP zjistí že je síť nahoře, vygeneruje update a pošle ho sousedovi i s atributy</div>
<div> - pozor na automatickou sumarizaci cest - pokud mám např.: cesty do sítí 10.0.0.0/28, 10.0.0.4/28, 10.0.0.68/28, router propaguje 10.0.0.0</div>
<div>- lokálně originované routy mají v tomto případě váhu 32768 (dá se změnit, je to tak udělané aby váha přebila ostatní atributy protože sítě jsou přes něj nejlépe dostupné)</div>
<div> </div>
<div>TTL SECURITY CHECK</div>
<div>- bezpečnostní vlastnost </div>
<div>- externí BGP je napřímo připojený v sítích mezi routery a má TTL 254, interní BGP nemusí být napřímo a má TTL 255, dostane se dál (??)</div>
<div>- říká, kolik hopů daleko může být BGP neighbour; kontroluje i TTL se kterým paket přijde, útočník typicky neútočí na přímo připojené síti ale z dálky</div>
<div>- security check se podívá na TTL příchozího paketu a podle toho akceptuje/zahazuje</div>
<div> </div>
<div>MULTIHOMED CUSTOMER PROBLEM</div>
<div>- zákazník má 2 ISP, primární a sekundární</div>
<div>- pokud primární sumarizuje routu k zákazníkovi, může nastat problém - v internetu se směruje podle více specifického záznamu (delšího prefixu)</div>
<div>- toto řešíme tím že k auto summary posíláme i záznam o podsíti (?? nějak to jde udělat, to jsem moc nepochopil)</div>
<div> </div>
<div>STARTUP PROBLEMS</div>
<div>- BGP neighbor není aktivní // # show ip bgp neighbours - zobrazí stav; soused pravděpodobně není přímo připojený</div>
<div>- BGP session se nesestaví // # debug ip tcp transactions - neighbour not reachable, zobrazí třeba že na TCP SYN paket není zareagováno SYN ACK paketem</div>
<div>// soused nemusí být nakonfigurován, na SYN odpovídá RST - zkontrolovat správnou konfiguraci obou</div>
<div>- BGP session kmitá mezi idle/active // # debug ip tcp transactions; může být např AS number mismatch (peer in wrong AS)</div>
<div> </div>
<div>TRANSIT AS TASKS</div>
<div>- má za úkol propagovat a forwardovat data mezi různými AS (v tranzitním AS nevzniká žádný provoz)</div>
<div>- pokud přenáším z jednoho konce na druhý konec v AS, nemůžu použít na redistribuci BGP interní směrovací porokol - došlo by ke ztrátě atributů</div>
<div>- používám IBGP - přenese atributy, zachová AS-path; IBGP musí být v tranzitním AS spuštěné na všech routrech které se podílejí na forwardování; musím mít full mesh pro funkci IBGP (jen logicky, ne fyzicky)</div>
<div>- interakce IBGP a EBGP</div>
<div>- při vstupu do AS s IBGP se zaznamená jen číslo AS ze kterého to přišlo; IBGP nemodifikuje AS-path, až při výstupu z tranitního AS toto číslo přidává</div>
<div>- v rámci IBGP se v defaultu nemění atributy (zásahem administrátora to lze udělat)</div>
<div> </div>
<div>- multipath load sharing - defaultně je load balancing vypnutý, ale lze zapnout</div>
<div>- když mám třeba více cest se stejnou metrikou, můžu je použít (ale musí mít stejnou váhu, local pref, AS-path, origin, MED, interní metriku IGP, rozdílná next-hop adresa)</div>
<div>- split horizon - obecně je split horizon to, že pokud dostanu cestu od souseda, tomu sousedovi neposílám tuto cestu zpět</div>
<div>- u BGP - routu kterou dostanu přes IBGP nepošlu zpátky přes IBGP (prevence smyčky uvnitř jednoho AS)</div>
<div>- pro správnou funkci musím mít full mesh (logickou TPC spojení, ne fyzickou)</div>
<div>- na routerech vytvářím loopbacky a na ně navazuji logický full mesh sousedských vztahů; loopbacky jsou vždy up a interní směrovací protokol se stará o směrování loopbacků uvnitř mojí sítě</div>
<div>- next hop processing - ne odchozích rozhraních je dobré nastavit passive - jen distribuuje a nic nepřijímá</div>
<div>- na routrech IGP - next-hop-self; essential in iBGP, in scenarios where internal routers cannot directly reach the next hop learned from an external BGP neighbor</div>
<div>- každá cesta mezi routery a jeho rozhraními má svojí IP adresu</div>
<div>- pod IBGP musí vždy ještě běžet nějaký interní směrovací protokol</div>
<div> </div>
<div>EBGP x IBGP - shrnutí</div>
<div>- přes IBGP se nemění žádné atributy</div>
<div>- IBGP je split horizon, routy naučené přes IBGP souseda nejsou propagovány ostatním IBGP peerům</div>
<div>- local preference je propagována jen přes IBGP</div>
<div>- EBGP peers jsou directly connected, IBGP jsou většinou vzdálené</div>
<div>- route selection preferuje EBGP cesty</div>
<div>- nevýhody - tím že musíme udělat full mesh v IBGP, vzniká velké množství TCP relací (u větších providerů)</div>
<div>- duplikovaný provoz routingu</div>
<div>- řešení - route reflectory - mění pravidlo split horizon, route reflector je schopný poslat IBGP routu přes IBGP sousedovi</div>
<div>- nastavíme pár routerů jako route reflectory které vytvoří "cluster" (identifikovaný pomocí cluster ID), ostatní se na ně navážou</div>
<div>- route reflector client (ostatní routery) mají TCP spojení jen k těmto routerům, route reflectory přeposílají updaty všem - daleko menší provoz</div>
<div>- 2 nové atributy - originator ID (odkud update přichází směrem do clusteru), cluster ID (ID clusteru route reflectorů)</div>
<div>// důležité rozlišovat control plane a data plane, vlastní forwarding dat může pak probíhat úplně jinudy, proto route reflectory můžou být ne tak výkonné routery</div>
<div>// tyto routery můžou třeba jen routovat a ne forwardovat</div>
<div>- konfederace</div>
<div>- router pozná zda se jedná o IBGP/EBGP v konfiguraci, pokud má stejný AS jako jeho soused je jasné že se jedná o IBGP</div>
<div> </div>
<div> </div>
<div>FORWARDING PACKETS IN A TRANSIT AS</div>
<div>- všechny routery musí znát všechny externí cesty, musíme použít IBGP // # show ip route &lt;IP&gt; - vypíše "known via bgp", napíše i next hop ale ne interface</div>
<div>// # show ip route &lt;next-hop IP&gt; - vypíše přes jaký protokol zná tuto adresu (třeba OSPF), vypíše už i interface</div>
<div>- router se nejprve podívá do BGP tabulky na next hop, pak se podívá přes který interface je tato adresa dostupná, pak se podívá do ARP cache</div>
<div>- odchozí interface není nikdy asociován s BGP tabulkou, z tohoto důvodu musí pod IBGP běžet ještě interní směrovací protokol (IS-IS, OSPF, ...)</div>
<div>- BGP se stará o přenos externích cest, IGP se stará o routování uvnitř sítě </div>
<div>- CEF (cisco express forwarding) - předpočítává na základě routovací tabulky switchovací cache, lookup se dělá už dřív než přijde paket</div>
<div> </div>
<div>INTERAKCE BGP A IGP</div>
<div>- ideálně žádná, jediný link by měl být přes rekurzivní lookup</div>
<div>- IBGP přenáší externí routy, v případě výpadku interní cesty by neměl být problém a IBGP se to nedotkne</div>
<div>- v případě výpadnu externí routy se to IGP nedotkne</div>
<div>- lze propagovat nějakou interní síť do BGP (máme třeba nějakou DMZ kde máme server se službou, chci propagovat pouze toto)</div>
<div>- běžně musíme zajistit aby naše interní routy nebyly propagovány do BGP</div>
<div>- default EBGP administrative distance 20, default IGP administrative distance 90-170, default IBGP administrative distance 200</div>
<div>- pokud dojde k naučení IBGP routes přes EBGP, dojde k jejich preferenci - špatný network design/útok; je dobré na vstupu zabezpečit access listem, route mapou etc.</div>
<div> </div>
<div>COMMON IBGP PROBLEMS</div>
<div>- session nechce nastartovat, nemáme established stav potřebný k vyměňování route</div>
<div>- IBGP session běží mezi loopbacky, ale není nakonfigurován update-source (jako souseda použijeme jeho loopback adresu, zapomeneme dát update-source)</div>
<div>- # debug ip tcp transactions - podíváme se na IP adresy, musí být shodné loopbacky a ne loopback a IP rozhraní</div>
<div> </div>
<div>- loopback interface není dostupný, typicky se to stane protože loopback není propagován do routovací tabulky</div>
<div>- loopback musí být v interním směrovacím protokolu - musíme se umět pingnout mezi loopbacky</div>
<div> </div>
<div>- packet filtery brání navázání BGP sessiony</div>
<div>- je potřeba zkontrolovat jestli po cestě není nějaký access list, firewall atd</div>
<div>- # debug ip tcp transactions; # debug ip icmp - zobrazíme jestli TCP SYN pakety nejsou zahazovány</div>
<div> </div>
<div>- IBGP routy jsou v BGP tabulce, ale nejsou vybrány jako best routy</div>
<div>- BGP next hop není dostupný</div>
<div>- # show ip bgp &lt;prefix&gt; - zkusíme najít next-hop</div>
<div>- # show ip route - zkontrolujeme next-hop </div>
<div>- typicky spojovačky nejsou zahrnuté v rámci IGP; většinou problém spíše v IGP</div>
<div> </div>
<div>- IBGP routy jsou vybrány, ale nejsou vložené do routovací tabulky</div>
<div>- BGP synchronizace není vypnutá</div>
<div>- je potřeba ji vypnout, vymazat BGP sessions a znovu se podívat na routovací tabulku (a BGP tabulku)</div>
<div>// synchronizace - legacy problém, od verze IOS je defaultně vypnutá; dříve se dělala redistribuce externích cest do IGP (když byl internet malý), synchronizace řešila předávání informací mezi IGP a IBGP</div>
<div> </div>
<div>MULTIHOMED BGP</div>
<div>- náročnější zákazníci co potřebují pořád poskytovat služby a mít dobře ošetřenou redundancy</div>
<div>- dualhomed připojení - ke dvěma různým ISP</div>
<div>- potřeba dvojité linky ke každému ISP, na straně každého ISP také ošetřena redundance</div>
<div>- je potřeba veřejné číslo AS </div>
<div>- je nutné nemít provider-dependent adresy (mít veřejné)</div>
<div>- implementace routing policies</div>
<div>- jeden ISP je primární, druhý backup</div>
<div>  // na routeru nastavím lepší váhu cesty naprimárního; pokud máme více egress routerů použijeme local-preference</div>
<div>- load balancing - když třeba do mezinárodních sítí cheme přes jednoho ISP, do ostatních přes druhého atd</div>
<div>  // ovlivňujeme pomocí AS-Path - chci se do sítí záložního ISP (co má AS třeba 10) dostávat přímo přes něj - routuji podle AS-Path (??)</div>
<div>- je nutnost ovlivňovat výběr cesty</div>
<div>- nastává problém abych se já sám nestal tranzitním AS - musím si dát pozor abych nepropagoval routy ISP1 do ISP2 a naopak</div>
<div>- dá se udělat tak, že posílám pouze lokálně originované routy (posílám jen ty, které mají prázdné AS-path); toto by mělo být ošetřeno i na straně ISP</div>
<div> </div>
<div>BGP FILTERS</div>
<div>- inbound</div>
<div>- route map</div>
<div>- filter list, AS-path access list, or IP policy</div>
<div>- IP prefix list</div>
<div>- distribute list</div>
<div>- outbound - stejné ale opačné pořadí</div>
<div> </div>
<div>AS PATH FILTERS</div>
<div>- BGP se nejčastěji používá se spojení s nějakou routovací politikou; </div>
<div>- AS Path access-listy používají regulární výrazy // # ip as-path access-list &lt;number&gt; permit &lt;string&gt;</div>
<div>- AS-path je konvergovaná do stringu (ne čísla); pokud se můj substring (třeba 31) shoduje s čímkoliv ve stringu (2 7 31 59 317), aplikuje se pravidlo</div>
<div>- v regulárních výrazech se zde dá použít i or (4|8); [1234] nebo [1-4]; [1-2].[7-8] - tečka je zde jako "cokoliv"; ^ - matches beginning of string; $ - matches end of string; _ - matches any delimiter</div>
<div>- match na konkrétní AS tedy udělám regulárním výrazem "_31_"; match posloupnosti - ("213|218")_31 to bude (213 nebo 218) a 31</div>
<div>- konfederace bude v AS path označena zárovkami ^\(213_</div>
<div>- repeating operators * - zero or more atoms; ? - zero or one atom; + - one or more atoms</div>
<div> </div>
<div>- _100_ - někde v AS-Path je 100</div>
<div>- ^100$ - directly connected to AS 100</div>
<div>- _100$ - originated in AS 100</div>
<div>- ^100_. - networks behind AS 100;</div>
<div>- ^[0-9]+$ - AS paths one AS long</div>
<div>- ([0-9]+)(\1)*$ - prepending perforemd in the eighboring originating AS</div>
<div>- ^$ - networks that originate in the local AS (říká že AS path je prázdná)</div>
<div>- .* - matches everything</div>
<div> </div>
<div>PREFIX LISTS VS IP ACCESS LISTS</div>
<div>- tradiční prefix filtery byly implementovány s IP access listy konfigurovány přes příkaz distribute-list</div>
<div>- IP access listy používané jako route filtry mají mnoho nevýhod</div>
<div>- lepší je používat prefix listy - podobně jako access listy mají řádky které jdou přidávat/odebírat</div>
<div>- slouží jako match a následuje akce (permit/deny)</div>
<div>- # ip prefix-list &lt;name&gt; {permit|deny} &lt;network/len&gt; [ge valute] [le value]</div>
<div>- prefix listy mají jména a sequence numbers</div>
<div>- ge - great or equal; le - less or equal; bez těchto parametrů musí být exact match;</div>
<div>// kdybych měl # ip prefix-list MyList permit 192.168.0.0/16 le 20, matchne mi to i sítě s maskami do /20</div>
<div>- často se používají "zástupné prefix listy" na specifikování obecných pravidel;</div>
<div>- ip prefix list D permit 0.0.0.0/0// defaultní cesta</div>
<div>- ip prefix list A permit 0.0.0.0/0 ge 32// </div>
<div>- ip prefix list C permit 0.0.0.0/0 le 32// je jedno co tam je a jak je to dlouhé, v podstatě všechno</div>
<div>- ip prefix list B permit 128.0.0.0/2 ge 17// nějaký subnet z Bčkové třídy</div>
<div>- order of operation - nejprve filter-list a potom prefix-list na vstupu, opačně na výstupu (vrstvy jako cibule); tolik na tom nezáleží (filtry dělají logický AND)</div>
<div> </div>
<div>ROUTE MAPS</div>
<div>- komplexní access listy</div>
<div>- access listy mají záznamy, route mapy mají statementy</div>
<div>- access listy používají adresy a masky, route mapy přiřazují podmínky</div>
<div>- každá route mapa má jméno a sequence number, podle kterého postupně jsou routemapy aplikovány</div>
<div> </div>
<div># route-map &lt;name&gt; {permit|deny} [sequence]</div>
<div>match &lt;condition&gt;</div>
<div>match &lt;condition&gt;</div>
<div>set &lt;parameter&gt;</div>
<div> </div>
<div>- defaultní stav je permit, routa která nebude matchnutá žádným statementem bude dropnnutá</div>
<div>- "permit all" uděláme tak že specifikujeme "permit" bez "match" pdomínky</div>
<div>- podmínky jsou spojeny logickým AND</div>
<div>- matchovat můžu - síť, toho kdo mi to poslal, next-hop adresu, BGP origin, tag, AS-path, komunitu, IGP route type</div>
<div>- použití v BGP je jedno z mnoha use cases route map, v IOSu lze použít na dalších spoustu věcí</div>
<div>- byly přidány i policy listy, kde si můžu udělat seznam podmínek a pak ho použít, abych to nemusel pořád psát dokola</div>
<div>- # continue [seq_number] - tímto můžu po konci routemapy určit kterou routemapou budu pokračovat</div>
<div> </div>
<div>INFLUENCING ROUTE SELECTION</div>
<div>- měníme parametry, třeba weight (missnul jsem lab kvůli hádání se s Editou takže netuším vůbec nic)</div>
<div>- local preference</div>
<div>- pozn.: při konfiguraci local preference s route mapami dávat pozor že to funguje jako prefix listy (?), na konci je deny all když nedojde k matchnutí, musíme tam dát permit</div>
<div>- AS path prepending - rozšířím AS path o několik stejných čísel (mého AS), tím bude cesta delší a bude preferována jiná; kdybych tam dal AS protějšího routeru tak loop prevention zabrání jakýkoliv provoz</div>
<div>- jelikož v historii jeden ISP shodil půlku internetu tím, že nastavil AS path větší než 256 čísel a to shodilo spoustu routerů, je toto už ošetřeno a nedoporučuje se víc než 15-20</div>
<div>- obvykle stačí přidat třeba 3, pak se vždycky podívám jestli ještě teče nějaký traffic a podle toho postupuji dál</div>
<div>- MED (multiexit discriminator) - čím méně diskriminujeme, tím spíše se linka pro návratový provoz použije; by default se na cesty které přijdou z ostatních AS ignoruje</div>
<div>- defaultně je 0; pokud mám dvě linky tak je dobré nastavit hodnoty na obou; čím větší číslo tím více cestu diskriminujeme</div>
<div>- MED se šíří jen do sousedního AS, nikdy ne až dál - určuje kudy do našeho AS půjde provoz</div>
<div>- můžu ho nastavit napřímo, lepší je použít route-mapu</div>
<div> </div>
<div>BGP COMMUNITIES</div>
<div>- optional transitive atribut, když mu router nerozumí tak to označí a pošle dál</div>
<div>- je to v podstatě "nálepka", kterou si k routě přidám (v MPLS L3 VPN se toto používá hodně)</div>
<div>- 3 typy - 32 bit (standardní), 64 bit (extended), 12 byte (large); důsledek toho že začaly docházet IPv4 adresy ale i čísla AS</div>
<div>- můžeme použít jakékoliv číslo (32bit), některá čísla jsou vyhrazena pro specifické komunity a už něco znamenají</div>
<div>- no-advertise- když dostanu routu co má tuto komunitu, neposílám jí dál</div>
<div>- no-export- když dostanu routu co má tuto komunitu, neřeknu ji reálnému sousedovi</div>
<div>- local-as- když mám jen jedno AS tak to neřeknu těm ostatním</div>
<div>- internet- této komunitě vyhoví každá routa</div>
<div>- v kódu BGP jsou tyto komunity určené a všichni jim rozumí (kdyby se náhodou našel někdo kdo tomu nerozumí, stejně posílá dál protože je tento atribut transitive)</div>
<div> </div>
<div>BGP KONVERGENCE</div>
<div>- čas konvergence roste s rostoucí tabulkou </div>
<div>- internet v současné době obsahuje více než 300k prefixů</div>
<div>- konvergence sítě má rozsah 10 min - 1h</div>
<div>- BGP procesy:</div>
<div>- BGP open - dělá peer establishment</div>
<div>- BGP I/O- zabezpečuje queuing a processing BGP paketů (updaty a keepalive)</div>
<div>- BGP scanner- prochází BGP tabulku a potvrzuje dosažitelnost next-hopů; agregace se dělá na základě scanneru</div>
<div>- BGP router- vypočítává best path, obsluhuje route changes a peery</div>
<div>// router a scanner procesy zodpovídají za hodně kalkulací a mohou být příčinou vysokého vytížení CPU</div>
<div>// kdybych vyčítal vytížení CPU, díky BGP scanneru může být každou minutu CPU spike až na 100%</div>
<div>- pro lepší konvergenci:</div>
<div>- queue to TCP peers - # hold-queue &lt;length&gt; in// default je 75 packetů; best practice je nastavit třeba na 1000; tím předejdu dropu TCP ACK paketů</div>
<div>- BGP peer groups </div>
<div>- povolit path MTU - automaticky zvolí největší možné MTU kdy ještě nedochází k fragmentaci paketů</div>
<div>- BFD - sníží konvergenci tím, že velmi rychle odhalí selhání peera; musíme nakonfigurovat BFD session a "přivázat ho" k BGP</div>
<div>- BGP PIC - sníží konvergenci tím že drží metadata ve FIB a RIB (?)</div>
<div>- BGP route dampening - na základě "flapování" (chování) cesty jí do budoucna můžu nějak ovlivňovat - snížím množství updates v budoucnu</div>
<div>- pokud cesta v předchozím časovém intervalu často padala, přidávám jí tím nějaké body a když je přesáhne tak ji třeba na nějakou dobu úplně zakážu - tím zmenším počet updates</div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div>############################################################################################################################################################################################################</div>
<div>########################################################################################## PŘÍKAZY #########################################################################################################</div>
<div>############################################################################################################################################################################################################</div>
<div> </div>
<div>MONITORING</div>
<div># show ip bgp summary // vypíše stav BGP na routeru (a neighbours); </div>
<div>// State/PfxRcd - pokud není ve stavu Idle tak běží, prefix recieved označuje kolik route jsem od souseda obdržel</div>
<div>// TblVer - verze tabulky; InQ a OutQ - vstupní a výstupní queue (pakety na zpracování)</div>
<div># show ip bgp neighbors // zobrazí info o sousedech</div>
<div># show ip bgp neighbors &lt;IP&gt; // zobrazí info o sousedovi; je zde i informace zda je soused IBGP (internal link) nebo EBGP (external link)</div>
<div># show ip bgp neighbors &lt;IP&gt; advertised-routes // zobrazí info o advertised cestách konkrétnímu sousedovi</div>
<div># show ip bgp // zobrazí BGP tabulku:</div>
<div>// * - platná BGP route, &gt; - best; jen tu vybranou jako "best" router propaguje dál</div>
<div>// - network, next hop, metric (MED), </div>
<div>// local preference (bez hodnoty - defaultní (100) se nezobrazuje), </div>
<div>// weight (cisco proprietary, neposílá se ani nepřijímá, je lokální (defaultně 0), </div>
<div>// AS-Path (+origin codes (i,e,?))</div>
<div># show ip bgp &lt;route_IP&gt; // vypíše routu a zároveň všechny BGP atributy</div>
<div># show ip route // zobrazí routovací tabulku</div>
<div># show ip protocols // zobrazí info o nakonfigurovaných protokolech</div>
<div> </div>
<div># debug ip routing // nebo # debug ip bgp updates; pro sledování </div>
<div># debug ip tcp transactions // monitoring sestavení BGP session</div>
<div># debug ip bgp</div>
<div># debug ip bgp events // stavy BGP</div>
<div># debug ip bgp updates // monitorujeme co BGP obdrží/posílá; nevidíme ale všechny atributy; na tento příkaz pozor, na internetovém routeru kde je záznamů kolem 1mil nám tím shoří router</div>
<div>// používat třeba s access listem nebo specifikovat adresy/sousedy kteří nás zajímají</div>
<div># debug ip bgp keepalives // monitoring keepalives</div>
<div> </div>
<div>KONFIGURACE</div>
<div># router BGP &lt;AS_number&gt; // spustí instanci BGP s daným číslem AS (číslo AS získáváme od ISP, nebo si zažádáme od RIPE)</div>
<div>// čísla jsou od 1 do 4 294 967 294; dříve byly 1 - 64 512</div>
<div>// je povolen pouze 1 BGP proces na 1 router</div>
<div>// BGP process si automaticky vezme z loopbacku router ID a IP adresu</div>
<div># neighbor &lt;IP-address&gt; remote-as &lt;AS&gt; // přidám IP adresu souseda a jeho AS</div>
<div># neighbor &lt;IP-address&gt; description &lt;description&gt; // přidám popisek</div>
<div># remote-as &lt;neighbor-AS&gt; // toto musíme udělat na obou stranách</div>
<div># neighbor &lt;IP-address&gt; shutdown // administrativně shodím souseda abych mohl konfigurovat další atributy</div>
<div> </div>
<div># auto-summary // zapne nebo vypne sumarizaci před zapsáním cesty do BGP routing table</div>
<div># network &lt;major-network-number&gt; route-map &lt;route-map-name&gt; // přidám routu + route mapu, pomocí které můžu nastavit atributy cesty a tímto je k tomu přiřadím</div>
<div>// při redistribuci je vhodné (nutné) použít filtr, aby se nepropagovalo úplně všechno ven</div>
<div> </div>
<div>KONFIGURACE BGP NETWORK</div>
<div># router BGP &lt;AS-number&gt; // vstup do konfigurace BGP</div>
<div># neighbor &lt;IP-addr&gt; remote-as &lt;AS-number&gt; // přes # show ip interface brief se podívám na jakých IP mi běží interfaces, u souseda to vždycky nastavím jako IP souseda s číslem AS</div>
<div> </div>
<div># timers bgp &lt;keepalive&gt; &lt;holdtime&gt; // (defaultně - keepalive 60s (TCP session), holdtime 180s (držení routy v tabulce))</div>
<div># neighbor &lt;IP-addr&gt; timers bgp &lt;keepalive&gt; &lt;holdtime&gt; // změní timery pro specifického souseda</div>
<div># neighbor &lt;IP-addr&gt; password &lt;password&gt; // povolení MD5 autentizace, musí být na sousedních routrech stejný password</div>
<div> </div>
<div># clear ip bgp * // clear všech BGP sessions a načtení znovu</div>
<div># access-list 1 permit &lt;IP&gt; &lt;wildcard&gt; // vytvoření access listu, abych mohl kontrolovat jaké routy budu distribuovat dál</div>
<div># router bgp 1</div>
<div># distribute-list 1 out connected // připojím svůj access list k odchozím redistribucím BGP </div>
<div> </div>
<div># router bgp 1</div>
<div># neighbor &lt;IP-addr&gt; ttl-security hops &lt;number&gt; // TTL security check; při např.: number 10 - router will start sending BGP packets with TTL 255 and will accept BGP packets with 245 or more</div>
<div>// check přes # show ip bgp neighbor &lt;IP-addr&gt; | include TTL</div>
<div> </div>
<div># router bgp &lt;AS&gt;</div>
<div># network &lt;IP sítě&gt; mask &lt;mask&gt; // bude propagovat tuto síť; pak zadám negihbor vztahy a oni si to automaticky začnou propagovat</div>
<div># aggregate-address 10.1.0.0 255.255.0.0 summary-only // pokud mám na routeru podsítě 10.1.x.x, budou agregovány a propagovány jako tato adresa; summary-only znamená že router bude propagovat pouze sumarizovanou route, ne subnety</div>
<div> </div>
<div>IBGP</div>
<div># neighbor &lt;ip&gt; remote-as &lt;AS&gt;</div>
<div># neighbor &lt;ip&gt; update-source &lt;Loopback 1&gt; // volba update source (na obou koncích musí být na loopback, viz poznámky IBGP)</div>
<div># neighbor &lt;ip&gt; next-hop-self // nastavuju na routeru pro IP IBGP neigbours, aby věděli že přeze mě se přistupuje do EBGP sítě</div>
<div> </div>
<div># route-map toISP1 permit 10 // vytvoření routemapy "toISP"</div>
<div># match interface Ethernet 0/0 // přiřazení routemapy na interface</div>
<div># exit</div>
<div># router ospf 1</div>
<div># redistribute connected subnets route-map toISP1 //redistribuce do OSPF (IGP)</div>
<div> </div>
<div>ADMINISTRATIVE DITANCE</div>
<div># show ip protocols // zobrazí běžící protokoly</div>
<div># distance bgp 100 190 200 // pořadí external, internal, local</div>
<div>// pro zapsání změny musím refreshnout - # clear ip bgp *; pak chvíli počkat než si znovu načte cesty</div>
<div>// kontrola # show ip route</div>
<div> </div>
<div>MED</div>
<div># default-metric &lt;number&gt; // jeden způsob jak nastavit MED</div>
<div># route-map &lt;name&gt; permit &lt;sequence&gt; // druhý způsob nastavení MED přes vytvoření route-mapy</div>
<div># match &lt;condition&gt;</div>
<div># set metric &lt;value&gt; // nastavení MED</div>
<div> </div>
<div>KOMUNITY</div>
<div># ip bgp-community new-format // pokud nezapnu, čísla komunit vypadají 43131235; po zapnutí 100:35 třeba</div>
<div> </div>
<div> </div>
<div>AS PATH FILTRY</div>
<div># show ip as-path-access-list &lt;filter-list&gt; // zobrazí nakonfigurované access listy</div>
<div>show ip bgp regexp &lt;regexp&gt; // zobrazí routy v BGP tabluce shodné s regulárním výrazem v jednom nebo ve všech filter listech (nejen AS-Path filtru)</div>
<div>show ip bgp filter-list &lt;access list nuber&gt; // zobrazí všechny routy v BGP tabulce který specifikovaný AS path access list povoluje</div>
<div> </div>
<div># ip as-path access-list &lt;number&gt; {permit|deny} &lt;regexp&gt; // # ip as-path access-list permit ^$ - abych se nestal tranzitním AS - mají nastaveno téměř všichni zákazníci</div>
<div># neighbor &lt;IP&gt; filter-list &lt;cislo_ACL&gt; {in | out}</div>
<div> </div>
<div>PREFIX LISTY a ROUTE MAPY</div>
<div> </div>
<div># ip prefix-list &lt;name&gt; {permit|deny} &lt;network/len&gt; [ge valute] [le value]</div>
<div>- pak přiřadím k sousedovi (??)</div>
<div># show ip prefix-list [detail|summary] &lt;name&gt; // zobrazí daný prefix list</div>
<div># show ip bgp prefix-list &lt;name&gt; // </div>
<div> </div>
<div># show route-map // zobrazí nakonfigurované route mapy</div>
<div># continue [seq_number]</div>
<div> </div>
<div> </div>
<div> </div>
<div> </div>
<div>- dotazy - co když agregaci dělá tedy více routerů a agreguje takhle subnety že z toho vyjde výsledně stejná propagace</div>
<p> </p>
<p> </p>
            ]]>
        </content>
    </entry>
    <entry>
        <title>mdk4</title>
        <author>
            <name>Sklepmistr</name>
        </author>
        <link href="https://sklepmajstr.cz/mdk4.html"/>
        <id>https://sklepmajstr.cz/mdk4.html</id>
            <category term="Guidelines - Cyber"/>

        <updated>2026-05-16T17:09:22+02:00</updated>
            <summary type="html">
                <![CDATA[
                    sudo mdk4 wlan1 e -t O2-Internet-861 MDK4 USAGE: mdk4 &lt;interface&gt; &lt;attack_mode&gt; [attack_options] mdk4 &lt;interface in&gt; &lt;interface out&gt; &lt;attack_mode&gt; [attack_options] Try mdk4 --fullhelp for all attack options Try mdk4 --help &lt;attack_mode&gt; for info about one attack only ###### This version supports IDS Evasion (Ghosting) ###### #&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                <p>sudo mdk4 wlan1 e -t O2-Internet-861<br><br>MDK4 USAGE:<br>mdk4 &lt;interface&gt; &lt;attack_mode&gt; [attack_options]<br>mdk4 &lt;interface in&gt; &lt;interface out&gt; &lt;attack_mode&gt; [attack_options]<br><br>Try mdk4 --fullhelp for all attack options<br>Try mdk4 --help &lt;attack_mode&gt; for info about one attack only<br><br><br>###### This version supports IDS Evasion (Ghosting) ######<br># Just append  --ghost &lt;period&gt;,&lt;max_rate&gt;,&lt;min_txpower&gt; #<br># after your attack mode identifier to enable ghosting!  #<br># &lt;period&gt;      : How often (in ms) to switch rate/power #<br># &lt;max_rate&gt;    : Maximum Bitrate to use in MBit         #<br># &lt;min_txpower&gt; : Minimum TX power in dBm to use         #<br># NOTE: Does not fully work with every driver, YMMV...   #<br>##########################################################<br><br>#### This version supports IDS Evasion  (Fragmenting) ####<br># Just append  --frag &lt;min_frags&gt;,&lt;max_frags&gt;,&lt;percent&gt;  #<br># after your attack mode identifier to fragment all      #<br># outgoing packets, possibly avoiding lots of IDS!       #<br># &lt;min_frags&gt; : Minimum fragments to split packets into  #<br># &lt;max_frags&gt; : Maximum amount of fragments to create    #<br># &lt;percent&gt;   : Percantage of packets to fragment        #<br># NOTE: May not fully work with every driver, YMMV...    #<br># HINT: Set max_frags to 0 to enable standard compliance #<br>##########################################################<br><br>Loaded 10 attack modules<br><br>ATTACK MODE b: Beacon Flooding<br>  Sends beacon frames to show fake APs at clients.<br>  This can sometimes crash network scanners and even drivers!<br>ATTACK MODE a: Authentication Denial-Of-Service<br>  Sends authentication frames to all APs found in range.<br>  Too many clients can freeze or reset several APs.<br>ATTACK MODE p: SSID Probing and Bruteforcing<br>  Probes APs and checks for answer, useful for checking if SSID has<br>  been correctly decloaked and if AP is in your sending range.<br>  Bruteforcing of hidden SSIDs with or without a wordlist is also available.<br>ATTACK MODE d: Deauthentication and Disassociation<br>  Sends deauthentication and disassociation packets to stations<br>  based on data traffic to disconnect all clients from an AP.<br>ATTACK MODE m: Michael Countermeasures Exploitation<br>  Sends random packets or re-injects duplicates on another QoS queue<br>  to provoke Michael Countermeasures on TKIP APs.<br>  AP will then shutdown for a whole minute, making this an effective DoS.<br>ATTACK MODE e: EAPOL Start and Logoff Packet Injection<br>  Floods an AP with EAPOL Start frames to keep it busy with fake sessions<br>  and thus disables it to handle any legitimate clients.<br>  Or logs off clients by injecting fake EAPOL Logoff messages.<br>ATTACK MODE s: Attacks for IEEE 802.11s mesh networks<br>  Various attacks on link management and routing in mesh networks.<br>  Flood neighbors and routes, create black holes and divert traffic!<br>ATTACK MODE w: WIDS Confusion<br>  Confuse/Abuse Intrusion Detection and Prevention Systems by<br>  cross-connecting clients to multiple WDS nodes or fake rogue APs.<br>ATTACK MODE f: Packet Fuzzer<br>  A simple packet fuzzer with multiple packet sources<br>  and a nice set of modifiers. Be careful!<br>ATTACK MODE x: Proof-of-concept of WiFi protocol implementation vulnerability testing<br>  Proof-of-concept of WiFi protocol implementation vulnerability,<br>  to test whether the device has wifi vulnerabilities.<br>  It may cause the wifi connection to be disconnected or the target device to crash.<br><br>FULL OPTIONS:<br><br>ATTACK MODE b: Beacon Flooding<br>  Sends beacon frames to generate fake APs at clients.<br>  This can sometimes crash network scanners and drivers!<br>      -n &lt;ssid&gt;<br>         Use SSID &lt;ssid&gt; instead of randomly generated ones<br>      -a<br>         Use also non-printable caracters in generated SSIDs<br>         and create SSIDs that break the 32-byte limit<br>      -f &lt;filename&gt;<br>         Read SSIDs from file<br>      -v &lt;filename&gt;<br>         Read MACs and SSIDs from file. See example file!<br>      -t &lt;adhoc&gt;<br>         -t 1 = Create only Ad-Hoc network<br>         -t 0 = Create only Managed (AP) networks<br>         without this option, both types are generated<br>      -w &lt;encryptions&gt;<br>         Select which type of encryption the fake networks shall have<br>         Valid options: n = No Encryption, w = WEP, t = TKIP (WPA), a = AES (WPA2)<br>         You can select multiple types, i.e. "-w wta" will only create WEP and WPA networks<br>      -b &lt;bitrate&gt;<br>         Select if 11 Mbit (b) or 54 MBit (g) networks are created<br>         Without this option, both types will be used.<br>      -m<br>         Use valid accesspoint MAC from built-in OUI database<br>      -h<br>         Hop to channel where network is spoofed<br>         This is more effective with some devices/drivers<br>         But it reduces packet rate due to channel hopping.<br>      -c &lt;chan&gt;<br>         Create fake networks on channel &lt;chan&gt;. If you want your card to<br>         hop on this channel, you have to set -h option, too.<br>      -i &lt;HEX&gt;<br>         Add user-defined IE(s) in hexadecimal at the end of the tagged parameters<br>      -s &lt;pps&gt;<br>         Set speed in packets per second (Default: 50)<br><br>ATTACK MODE a: Authentication Denial-Of-Service<br>  Sends authentication frames to all APs found in range.<br>  Too many clients can freeze or reset several APs.<br>      -a &lt;ap_mac&gt;<br>         Only test the specified AP<br>      -m<br>         Use valid client MAC from built-in OUI database<br>      -i &lt;ap_mac&gt;<br>         Perform intelligent test on AP<br>         This test connects clients to the AP and reinjects sniffed data to keep them alive.<br>      -s &lt;pps&gt;<br>         Set speed in packets per second (Default: unlimited)<br><br>ATTACK MODE p: SSID Probing and Bruteforcing<br>  Probes APs and checks for answer, useful for checking if SSID has<br>  been correctly decloaked and if AP is in your sending range.<br>  Bruteforcing of hidden SSIDs with or without a wordlist is also available.<br>      -e &lt;ssid&gt;<br>         SSID to probe for<br>      -f &lt;filename&gt;<br>         Read SSIDs from file for bruteforcing hidden SSIDs<br>      -t &lt;bssid&gt;<br>         Set MAC address of target AP<br>      -s &lt;pps&gt;<br>         Set speed (Default: 400)<br>      -b &lt;character sets&gt;<br>         Use full Bruteforce mode (recommended for short SSIDs only!)<br>         You can select multiple character sets at once:<br>         * n (Numbers:   0-9)<br>         * u (Uppercase: A-Z)<br>         * l (Lowercase: a-z)<br>         * s (Symbols: ASCII)<br>      -p &lt;word&gt;<br>         Continue bruteforcing, starting at &lt;word&gt;.<br>      -r &lt;channel&gt;<br>         Probe request tests (mod-musket)<br><br>ATTACK MODE d: Deauthentication and Disassociation<br>  Sends deauthentication and disassociation packets to stations<br>  based on data traffic to disconnect all clients from an AP.<br>      -w &lt;filename&gt;<br>         Read file containing MACs not to care about (Whitelist mode)<br>      -b &lt;filename&gt;<br>         Read file containing MACs to run test on (Blacklist Mode)<br>      -s &lt;pps&gt;<br>         Set speed in packets per second (Default: unlimited)<br>      -x<br>         Enable full IDS stealth by matching all Sequence Numbers<br>         Packets will only be sent with clients' addresses<br>      -c [chan,chan,...,chan[:speed]]<br>         Enable channel hopping. When -c h is given, mdk4 will hop an all<br>         14 b/g channels. Channel will be changed every 3 seconds,<br>         if speed is not specified. Speed value is in milliseconds!<br>      -E &lt;AP ESSID&gt;<br>         Specify an AP ESSID to attack.<br>      -B &lt;AP BSSID&gt;<br>         Specify an AP BSSID to attack.<br>      -S &lt;Station MAC address&gt;<br>         Specify a station MAC address to attack.<br>      -W &lt;Whitelist Station MAC address&gt;<br>         Specify a whitelist station MAC.<br><br>ATTACK MODE m: Michael Countermeasures Exploitation<br>  Sends random packets or re-injects duplicates on another QoS queue<br>  to provoke Michael Countermeasures on TKIP APs.<br>  AP will then shutdown for a whole minute, making this an effective DoS.<br>      -t &lt;bssid&gt;<br>         Set target AP, that runs TKIP encryption<br>      -j<br>         Use the new QoS exploit which only needs to reinject a few packets instead<br>         of the random packet injection, which is unreliable but works without QoS.<br>      -s &lt;pps&gt;<br>         Set speed in packets per second (Default: 400)<br>      -w &lt;seconds&gt;<br>         Wait &lt;seconds&gt; between each random packet burst (Default: 10)<br>      -n &lt;count&gt;<br>         Send &lt;count&gt; random packets per burst (Default: 70)<br><br>ATTACK MODE e: EAPOL Start and Logoff Packet Injection<br>  Floods an AP with EAPOL Start frames to keep it busy with fake sessions<br>  and thus disables it to handle any legitimate clients.<br>  Or logs off clients by injecting fake EAPOL Logoff messages.<br>      -t &lt;bssid&gt;<br>         Set target WPA AP<br>      -s &lt;pps&gt;<br>         Set speed in packets per second (Default: 400)<br>      -l<br>         Use Logoff messages to kick clients<br><br>ATTACK MODE s: Attacks for IEEE 802.11s mesh networks<br>  Various attacks on link management and routing in mesh networks.<br>  Flood neighbors and routes, create black holes and divert traffic!<br>      -f &lt;type&gt;<br>         Basic fuzzing tests. Picks up Action and Beacon frames from the air, modifies and replays them:<br>         The following modification types are implemented:<br>         1: Replay identical frame until new one arrives (duplicate flooding)<br>         2: Change Source and BSSID (possibly resulting in Neighbor Flooding)<br>         3: Cut packet short, leave 802.11 header intact (find buffer errors)<br>         4: Shotgun mode, randomly overwriting bytes after header (find bugs)<br>         5: Skript-kid's automated attack trying all of the above randomly :)<br>      -b &lt;impersonated_meshpoint&gt;<br>         Create a Blackhole, using the impersonated_meshpoint's MAC address<br>         mdk4 will answer every incoming Route Request with a perfect route over the impersonated node.<br>      -p &lt;impersonated_meshpoint&gt;<br>         Path Request Flooding using the impersonated_meshpoint's address<br>         Adjust the speed switch (-s) for maximum profit!<br>      -l<br>         Just create loops on every route found by modifying Path Replies<br>      -s &lt;pps&gt;<br>         Set speed in packets per second (Default: 100)<br>      -n &lt;meshID&gt;<br>         Target this mesh network<br><br>ATTACK MODE w: WIDS Confusion<br>  Confuse/Abuse Intrusion Detection and Prevention Systems by<br>  cross-connecting clients to multiple WDS nodes or fake rogue APs.<br>  Confuses a WDS with multi-authenticated clients which messes up routing tables<br>      -e &lt;SSID&gt;<br>         SSID of target WDS network<br>      -c [chan,chan,...,chan[:speed]]<br>         Enable channel hopping. When -c h is given, mdk4 will hop an all<br>         14 b/g channels. Channel will be changed every 3 seconds,<br>         if speed is not specified. Speed value is in milliseconds!<br>      -z<br>         activate Zero_Chaos' WIDS exploit<br>         (authenticates clients from a WDS to foreign APs to make WIDS go nuts)<br>      -s &lt;pps&gt;<br>         Set speed in packets per second (Default: 100)<br><br>ATTACK MODE f: Packet Fuzzer<br>  A simple packet fuzzer with multiple packet sources<br>  and a nice set of modifiers. Be careful!<br>  mdk4 randomly selects the given sources and one or multiple modifiers.<br>      -s &lt;sources&gt;<br>         Specify one or more of the following packet sources:<br>         a - Sniff packets from the air<br>         b - Create valid beacon frames with random SSIDs and properties<br>         c - Create CTS frames to broadcast (you can also use this for a CTS DoS)<br>         p - Create broadcast probe requests<br>      -m &lt;modifiers&gt;<br>         Select at least one of the modifiers here:<br>         n - No modifier, do not modify packets<br>         b - Set destination address to broadcast<br>         m - Set source address to broadcast<br>         s - Shotgun: randomly overwrites a couple of bytes<br>         t - append random bytes (creates broken tagged parameters in beacons/probes)<br>         c - Cut packets short, preferably somewhere in headers or tags<br>         d - Insert random values in Duration and Flags fields<br>      -c [chan,chan,...,chan[:speed]]<br>         Enable channel hopping. When -c h is given, mdk4 will hop an all<br>         14 b/g channels. Channel will be changed every 3 seconds,<br>         if speed is not specified. Speed value is in milliseconds!<br>      -p &lt;pps&gt;<br>         Set speed in packets per second (Default: 250)<br><br>ATTACK MODE x: Proof-of-concept of WiFi protocol implementation vulnerability testing<br>  Proof-of-concept of 802.11 protocol implementation vulnerability,<br>  to test whether the device has wifi vulnerabilities.<br>  It may cause the wifi connection to be disconnected or the target device to crash.<br>      -s &lt;pps&gt;<br>         Set speed in packets per second (Default: unlimited)<br>      -c [chan,chan,...,chan[:speed]]<br>         Enable channel hopping. When -c h is given, mdk4 will hop an all<br>         14 b/g channels. Channel will be changed every 3 seconds,<br>         if speed is not specified. Speed value is in milliseconds!<br>      -v &lt;vendor&gt;<br>         File name in pocs dir, default test all.<br>      -B &lt;BSSIDï¼AP MAC&gt;<br>         set an AP MAC<br>      -S &lt;Source MAC&gt;<br>         set source MAC.<br>      -T &lt;Target MAC&gt;<br>         set target MAC.<br><br></p>
            ]]>
        </content>
    </entry>
</feed>
