Vizuální úprava
This commit is contained in:
@@ -74,7 +74,7 @@ Do vstupu \verb|Script to run on first boot (uci-defaults)| zadáme ash unix she
|
||||
|
||||
Tento script odstraní výchozí síťové nastavení systému OpenWrt. Ze souboru \verb|/etc/board.json| (popis výchozí konfigurace pro dané zařízení) zjistí původní WAN port zařízení a nad ním vytvoří nové síťové rozhraní s~vlan tagem \verb|99| pro příchozí i odchozí provoz. DHCP client na tomto novém rozhraní požádá o~přidělení IP adresy. Toto síťové rozhraní bude jediné síťové rozhraní kterému bude přidělena IP adresa. Bude sloužit pro management přístupového bodu.
|
||||
|
||||
Script detekuje, zda dané zařízení obsahuje switch a rozpozná jestli je spravován pomocí DSA nebo nástrojem \verb|swconfig|. DSA nebo-li Distributed Switch Architecture je subsystém Linuxového jádra pro unifikovanou správu specifických embedded switchů. Vytváří virtuální síťová rozhraní pro každý port switche, což umožňuje jejich správu standardními Linuxovými nástroji.\citep{LinuxDSA} U~DSA switche si s~nastavením VLAN tagování provozu poradí OpenWrt při vytváření síťového rozhraní pro management, zatímco switch spravovaný nástrojem \verb|swconfig| je nutné ještě nakonfigurovat tak, aby na původním WAN portu switche přijímal a odesílal rámce s~VLAN tagem 99 a tyto rámce přeposílal z~portu a na port switche připojený na ethernetové rozhraní CPU přístupového bodu také s~VLAN tagem 99.
|
||||
Script detekuje, zda dané zařízení obsahuje switch a rozpozná jestli je spravován pomocí DSA nebo nástrojem \verb|swconfig|. DSA nebo-li Distributed Switch Architecture je subsystém Linuxového jádra pro unifikovanou správu specifických embedded switchů. Vytváří virtuální síťová rozhraní pro každý port switche, což umožňuje jejich správu standardními Linuxovými nástroji. \citep{LinuxDSA} U~DSA switche si s~nastavením VLAN tagování provozu poradí OpenWrt při vytváření síťového rozhraní pro management, zatímco switch spravovaný nástrojem \verb|swconfig| je nutné ještě nakonfigurovat tak, aby na původním WAN portu switche přijímal a odesílal rámce s~VLAN tagem 99 a tyto rámce přeposílal z~portu a na port switche připojený na ethernetové rozhraní CPU přístupového bodu také s~VLAN tagem 99.
|
||||
|
||||
Script dále provede změnu root hesla, které je definováno na začátku scriptu v~proměnné \verb|root_password| a bezpečnostní nastavení SSH démona s~přidáním SSH klíče z~proměnné \verb|ssh_key_rsa|. SSH démon není pro některé architektůry kompilován s~podporou novějších typů klíčů, proto doporučuji preferovat klíč typu RSA.
|
||||
|
||||
@@ -95,7 +95,7 @@ Dalším zohledněným kritériem pro výběr nástroje je jazyk zápisu konfigu
|
||||
|
||||
Zbylé nástroje Ansible a SaltStack využívají pro zápis konfigurace jazyk YAML a konfigurují zařízení pomocí SSH. Přesto, že fungují bez potřeby agenta většina jejich modulů vyžaduje instalaci pythonu\footnote{\url{https://docs.saltproject.io/en/latest/topics/ssh/index.html}}\footnote{\url{https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html\#managed-node-requirements}} na spravovaných zařízeních, což může být opět problematické pro přístupové body vzhledem k~jejichi omezené interní paměti (instalace Python se svými závislostmi může na systému Openwrt vyžadovat přes 9 MiB interní paměti). Z~tohoto důvodu musím vybrat nástroj \textbf{Ansible} pro jeho širokou komunitní podporu a zejména existenci projektu \verb|ansible-openwrt|\footnote{\url{https://github.com/gekmihesg/ansible-openwrt}}, jenž přepisuje příkazy některých modulů Ansiblu vyžadující python interpreter za jejich alternativy interpretované v~unixovém příkazovém procesoru a obsahuje modul uci pro konfiguraci OpenWrt.
|
||||
|
||||
\textbf{Ansible} je nástroj pro automatizaci konfigurace, správy a nasazení aplikací. Pro zápis požadované konfigurace lze kombinovat imperativní i deklarativní způsob. Možnosti deklarativní konfigurace jsou omezeny schopnostmi ansiblu. Je doporučeno upřednosťnovat deklarativní způsob zápisu konfigurace a k~imperativnímu přistoupit až v~momentu kdy jsme omezeni schopnostmi ansiblu.\citep{ZenofAnsible}
|
||||
\textbf{Ansible} je nástroj pro automatizaci konfigurace, správy a nasazení aplikací. Pro zápis požadované konfigurace lze kombinovat imperativní i deklarativní způsob. Možnosti deklarativní konfigurace jsou omezeny schopnostmi ansiblu. Je doporučeno upřednosťnovat deklarativní způsob zápisu konfigurace a k~imperativnímu přistoupit až v~momentu kdy jsme omezeni schopnostmi ansiblu. \citep{ZenofAnsible}
|
||||
|
||||
\textbf{Ansible} se skládá z~těchto komponent:
|
||||
\begin{itemize}
|
||||
@@ -177,7 +177,7 @@ V~poslední sekci \verb|wireless_interfaces| jsou definovány dvě Wi-Fi sítě
|
||||
|
||||
\verb|Hostapd| je nástroj určený ke správě a vytváření Wi-Fi sítí. Kromě toho zajišťuje autorizaci zařízení a funguje jako 802.1X autentizátor, tedy zprostředkovává autentizaci mezi klientským zařízením a autetizačním serverem. V~OpenWrt je součástí balíčku \verb|wpad-mbedtls|, který jsme nainstalovali ve své plnohodnotné verzi při kompilaci.
|
||||
Parametr \verb|dynamic_vlan| \verb|hostapd| definuje zda je clientské zařízení dynamicky přidělováno do vlan. Jsou definovány tři stavy. 0 - neprobíhá dynamické přiřazování vlan, 1 - VLAN není požadováno, použije se výchozí síťové rozhraní, 2 - VLAN je od RADIUS serveru požadována jinak clientské zařízení nepřipojí.
|
||||
Pokud je dynamické přidělování zapnuto \verb|hostapd| Wi-Fi clienty přiřazuje do adekvátních bridgů. K~tomu potřebuje znát prefix bridge, který je definovaný v~\verb|hostapd| parametru \verb|vlan_bridge|. \verb|vlan_naming| s~hodnotou 1 říká, že do bridge bude přirazeno ethernetové rozhraní ve formátu \verb|<vlan_tagged_interface>.<VLANtag>|, v~případě hodnoty 0 je přiřazeno rozhraní s~názvem \verb|vlan<vlantag>|. V~parametru \verb|vlan_tagged_interface| je tedy uvedeno ethernetové rozhraní propojující přístupový bod a router sítě.\citep{OpenWrtDoc8021X}
|
||||
Pokud je dynamické přidělování zapnuto \verb|hostapd| Wi-Fi clienty přiřazuje do adekvátních bridgů. K~tomu potřebuje znát prefix bridge, který je definovaný v~\verb|hostapd| parametru \verb|vlan_bridge|. \verb|vlan_naming| s~hodnotou 1 říká, že do bridge bude přirazeno ethernetové rozhraní ve formátu \verb|<vlan_tagged_interface>.<VLANtag>|, v~případě hodnoty 0 je přiřazeno rozhraní s~názvem \verb|vlan<vlantag>|. V~parametru \verb|vlan_tagged_interface| je tedy uvedeno ethernetové rozhraní propojující přístupový bod a router sítě. \citep{OpenWrtDoc8021X}
|
||||
|
||||
Druhou definovanou Wi-Fi síťí je \verb|free wifi| která nevyžaduje žádnou autentizaci a je přiřazena k~síťovému rozhraní \verb|free_wifi|.
|
||||
|
||||
@@ -258,7 +258,7 @@ freeRADIUS pro zajištění různých typů komunikace potřebu certifikáty. Ty
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=1\textwidth]{images/radius_certifikaty.png}
|
||||
\caption{Porovnání modelu ISO OSI a TCP/IP.\citep{eduroam_certifikaty}}
|
||||
\caption{Porovnání modelu ISO OSI a TCP/IP. \citep{eduroam_certifikaty}}
|
||||
\label{fig:radius_certifikaty}
|
||||
\end{figure}
|
||||
|
||||
@@ -282,7 +282,7 @@ Pro získání komplexního přehledu o~přístupových bodech a síťi je potř
|
||||
|
||||
% ------------------------------------------------------------------------------------------------------------------
|
||||
\subsection{Systémový log}
|
||||
Systémové logy hrají zásadní roli při monitorování stavu zařízení. Poskytují důležité informace o~bezpečnostních incidentech, hardwarových a softwarových problémech nebo jiných událostech, které vyžadují pozornost. Aby byla tato data užitečná doporučuje se logy uchovávat alespoň jeden měsíc. Důvodem je skutečnost, že odhalení bezpečnostního incidentu může také zabrat určtitý čas.\citep{Nemeth_Evi_2008}
|
||||
Systémové logy hrají zásadní roli při monitorování stavu zařízení. Poskytují důležité informace o~bezpečnostních incidentech, hardwarových a softwarových problémech nebo jiných událostech, které vyžadují pozornost. Aby byla tato data užitečná doporučuje se logy uchovávat alespoň jeden měsíc. Důvodem je skutečnost, že odhalení bezpečnostního incidentu může také zabrat určtitý čas. \citep{Nemeth_Evi_2008}
|
||||
|
||||
Systém OpenWrt používá nástroj \verb|logd| z~projektu ubox\footnote{\url{https://git.openwrt.org/?p=project/ubox.git}} k~řízení systémového logování. Tento nástroj sbírá logovací zprávy od všech programů běžících na systému OpenWrt a ukládá je do centrálního systémového logu. Ve výchozí konfiguraci je tento log uložen do cyklické vyrovnávací paměti umístěné v~operační paměti (RAM). Tento přístup minimalizuje zápisy do trvalé paměti zařízení, což je důležité zejména u~zařízení s~NAND pamětí, která by mohla nadměrnými zápisy degradovat.
|
||||
Kvůli omezené kapacitě cyklické vyrovnávací paměti v~RAM je vhodné logy z~přístupových bodů přesměrovat na centrální logovací server přes síť.
|
||||
@@ -306,7 +306,7 @@ Ze systémového logu RADIUS serveru lze tyto záznamy opět přeposlat na centr
|
||||
Kromě systémového logu mohou historické záznamy o~stavu systému a hardwarových prostředcích sloužit ke zpětné analýze příčin vzniklých problémů, což usnadňuje jejich diagnostiku a řešení. Monitoring také umožňuje včas identifikovat potenciální problémy, jako je vyčerpání operační paměti nebo nedostatek výpočetní kapacity CPU, a tím zabránit výpadkům.
|
||||
|
||||
V~modelové implementaci jsou shromážděné informace předávány na centrální server, kde jsou uloženy a mohou být vizualizovány.
|
||||
Systém OpenWrt ve svých repozitářích nabízí tyto open-source nástroje pro shromaždování informací o~systému a jejich předání dále: \verb|zabbix-agentd|, \verb|collectd|, \verb|prometheus-node-exporter-lua| \verb|snmpd| a \verb|telegraf|.\citep{RamsTech}
|
||||
Systém OpenWrt ve svých repozitářích nabízí tyto open-source nástroje pro shromaždování informací o~systému a jejich předání dále: \verb|zabbix-agentd|, \verb|collectd|, \verb|prometheus-node-exporter-lua| \verb|snmpd| a \verb|telegraf|. \citep{RamsTech}
|
||||
|
||||
Z~těchto nástrojů jsem zvolil nástroj \verb|prometheus-node-exporter-lua| pro jeho jednoduchý princip předávání dat a existenci jeho rozšíření \verb|prometheus-node-exporter-lua-hostapd_stations|, díky kterému lze získat podrobné informace o~připojených klientech k~jednotlivých Wi-Fi sítím z~démona hostapd.
|
||||
|
||||
@@ -315,12 +315,12 @@ Z~těchto nástrojů jsem zvolil nástroj \verb|prometheus-node-exporter-lua| pr
|
||||
% ------------------------------------------------------------------------------------------------------------------
|
||||
\subsection{Síťové toky}
|
||||
Z~důvodu použití překladu IP adres NAT na gatewayi je třeba zaznamenávat provozní údaje veřejných komunikačních sítí, aby byly splněny zákonné požadavky i pravidla federace eduroam.cz. Podobně jako u~logů RADIUS serveru musí být tyto údaje uchovávány alespoň 6 měsíců
|
||||
Provozní údaje jsou zákonem definovány jako \textit{údaje vedoucí k~dohledání a identifikaci zdroje a adresáta, dále údaje vedoucí ke zjištění data, času, způsobu a doby trvání komunikace.}\citep{Zak_El_Kom} V~kontextu TCP/IP síťí to jsou IP adresy a použité porty zdroje a cíle, MAC adresa zdroje, druh provozu (UDP, TCP, ICMP), čas zahájení komunikace a doba trvání komunikace.
|
||||
Provozní údaje jsou zákonem definovány jako \textit{údaje vedoucí k~dohledání a identifikaci zdroje a adresáta, dále údaje vedoucí ke zjištění data, času, způsobu a doby trvání komunikace.} \citep{Zak_El_Kom} V~kontextu TCP/IP síťí to jsou IP adresy a použité porty zdroje a cíle, MAC adresa zdroje, druh provozu (UDP, TCP, ICMP), čas zahájení komunikace a doba trvání komunikace.
|
||||
|
||||
NetFlow je protokol pro předávání informací o~síťových tocích, které vznikají agregací síťových paketů na základě údajů z~jejich hlaviček.
|
||||
Na routeru předávajícím síťové pakety z~rozhraní na rozhraní je naistalován software, který provádí agregaci těchto paketů do flow dat. Pakety mohou být pro snížení náročnosti dalšího zpracování samplovány\footnote{je vybrán každý n-tý paket}, aniž by byla výrazně narušena kvalita zaznamenaných síťových toků.
|
||||
Tyto flow data jsou následně poslána na server k~jejich uložení a případně dalšímu zpracování/analýze.
|
||||
Tvorba dat o~síťových tocích snižuje náročnost na výpočetní výkon a šetří šířku pásma pro přenost dat, protože místo přenosu jednotlivých paketů se odesílají pouze informace o~toku. Agregací síťových toků se zvyšuje soukromí uživatelů, protože místo podrobných záznamů o~každém paketu jsou uchovávány pouze sumarizované informace o~jejich toku.\citep{Hofstede2014} Pro získání MAC adres zařízení je nutné použít netflow ve verzi V9 nebo IPFIX.
|
||||
Tvorba dat o~síťových tocích snižuje náročnost na výpočetní výkon a šetří šířku pásma pro přenost dat, protože místo přenosu jednotlivých paketů se odesílají pouze informace o~toku. Agregací síťových toků se zvyšuje soukromí uživatelů, protože místo podrobných záznamů o~každém paketu jsou uchovávány pouze sumarizované informace o~jejich toku. \citep{Hofstede2014} Pro získání MAC adres zařízení je nutné použít netflow ve verzi V9 nebo IPFIX.
|
||||
|
||||
Většina systémů enterprise routerů nabízí možnost nastavení zaznamenávání síťových toků a jejich následné zaslání na server k~uložení/dalšímu zpracování. V~open-source systému OPNsense má tvorba\footnote{\url{https://docs.opnsense.org/manual/netflow.html}} netflow dat podporu přímo v~jádru operačního systému FreeBSD. Díky tomu je zatížení systému při tvorbě netflow minimální v~porovnání se softwarovou implementací \verb|softflowd| dostupnou například na systému OpenWrt.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user