vyber softwaru pro sitove prvky

This commit is contained in:
2024-11-27 10:00:29 +01:00
parent 305ee0c918
commit 048dc7aaff
12 changed files with 254 additions and 137 deletions

View File

@@ -2,16 +2,28 @@
\label{ch:implemetace}
Sekce popisuje konfiguraci síťových zařízení a dalších softwarových komponent nutných pro fungování modelové implementace dle definovaných požadavků.
Zejména se zaměřuje na konfiguraci přístupových bodů (access pointů) sítě a konfiguraci centrální autentifikace a autorizace s~integrací do sítě eduroam. Popisuje také nastavení routerů, jedná se ale pouze o~základní konfiguraci pro fungování modelové implementace. V~reálné implementaci by konfigurace obsahovala daleko větším množstvím síťových rozhraní a komplexnější nastavení firewallu.
Zejména se zaměřuje na konfiguraci přístupových bodů (access pointů) sítě a možnosti získání potřebných dat pro monitoring. Dále popisuje konfiguraci centrální autentizace a autorizace s~integrací do sítě eduroam.
% ==================================================================================================================
\section{Síťové prostředí}
\label{sec:sitoveProstredi}
% ==================================================================================================================
\section{Výběr softwaru pro síťové prvky a mangement síťových prvků}
\section{Výběr softwaru pro síťové prvky}
...
Na trhu je omezené množství přístupových bodů, které používají open-source systémy. Přesto je většina přístupových bodů různých výrobců postavena na standardním hardwaru, pro který jde zkompilovat operační systém Linux. Tento fakt umožňuje využití existujících open-source projektů, které nabízejí operační systémy fungující na těchto typech zařízení.
Pro zajištění co největší kompatibility s~přístupovými body různých výrobců je v~modelové implementaci nezbytné nahradit jejich proprietární systém open-source alternativou. Tento přístup rovněž odpovídá cílům práce, která si klade za úkol implementovat přístupovou Wi-Fi síť výhradně s~využitím open-source technologií.
Open-source systém má i své výhody. Open-source systém je zejména podporován komunitou i po ukončení oficiální podpory výrobce zařízení, což zvyšuje bezpečnost a odolnost vůči novým zranitelnostm. Také mnohdy rozšiřuje funkce zařízení nad rámec toho, co je běžně poskytováno výrobcem. \citep{crowder_firmwarecomp}
Nejznámnější projekty:
\begin{itemize}
\item \textbf{DD-WRT}: Nabízí kompatibilitu s~mnoha zařízeními - obsahuje velké množství ovladačů. Je dobře optimalizovaný a poskytuje mnoho pokročilých funkcí. Aktualizace nevycházejí tak často.
\item \textbf{OpenWrt}: Nabízí velké množství rozšíření v~podobě balíčků. Podporuje velké množství zařízení. Má velkou komunitu vývojářu - pravidelně vycházejí aktualizace. Kromě webového rozhraní nabízí i příkazový systém \verb|uci| pro síťovou konfiguraci pomocí příkazové řádky. Nabízí pouze free a open-source síťové ovladače a má složitější webové rozhraní. \citep{twain_compare}
\item \textbf{Tomato}: - Jednoduchý stabilní systém pro zařízení s~wifi chipy od firmy Broadcom - podporuje méně modelů. Má velmi přehledné webové rozhraní. Nenabízí velké možnosti přizpůsobení. Má menší komunitu vývojářů - aktualizace nevycházejí příliš často.
\end{itemize}
Z~vybraných systémů jsem zvolil systém \textbf{OpenWrt} pro jeho širokou komunitu vývojářů, obsáhlé repozitáře doplňkového softwaru, flexibilitě konfigurace a možnosti konfigurace pomocí nástroj \verb|uci|.
% ==================================================================================================================
\section{Příprava zařízení}
@@ -34,7 +46,7 @@ Zkompilovat a sestavit vlastní obraz systému openwrt je možné na lokálním
Webová aplikace \url{https://firmware-selector.openwrt.org/} umožnuje získat již předkompilované obrazy systému OpenWrt i možnost vytvořit si obraz vlastní.
Obrazy systému OpenWrt jsou pro různé zařízení unikátní, protože různé zařízení využívají různé procesorové architektury, mají různé rozložení paměti a obsahují různé periferie pro které je nutné mít adekvátní ovladače. V~první části je nutné vybrat model zařízení pro který chceme získat obraz systému OpenWrt. Následně vybereme verzi systému OpenWrt, kterou chceme získat.
Aplikace standartně ve spodní části stránky nabízí ke stažení tři druhy předkompilovaných obrazů. První je samotné jádro operačního systému - kernel. Další možnosti jsou factory obraz a sysupgrade obraz. Oba obrazy obsahují stejný systém s~tím rozdílem, že factory obraz je doplněný o~hlavičky a scripty pro interakci s~továrním softwarem zařízení, tak aby tento obraz akceptovaly proprietární nástroje výrobce zařízení pro upgrade firmwaru (zapsání obrazu do paměti zařízení). Factory obraze je tedy úrčený pro prvnotní insalaci OpenWrt, sysupgrade obraz slouží k~aktualizaci systému z~již funkčního systému OpenWrt.\citep{OpenWrtDocFAQ}
Aplikace standardně ve spodní části stránky nabízí ke stažení tři druhy předkompilovaných obrazů. První je samotné jádro operačního systému - kernel. Další možnosti jsou factory obraz a sysupgrade obraz. Oba obrazy obsahují stejný systém s~tím rozdílem, že factory obraz je doplněný o~hlavičky a scripty pro interakci s~továrním softwarem zařízení, tak aby tento obraz akceptovaly proprietární nástroje výrobce zařízení pro upgrade firmwaru (zapsání obrazu do paměti zařízení). Factory obraze je tedy úrčený pro prvnotní insalaci OpenWrt, sysupgrade obraz slouží k~aktualizaci systému z~již funkčního systému OpenWrt.\citep{OpenWrtDocFAQ}
Po rozkliknutí sekce \verb|Customize installed packages and/or first boot script| můžeme definovat jaké balíčky budou zakomponovány do vytvořeného obrazu systému a jaká se provede inicializační konfigurace. Tlačítkem \verb|Request build| zahájíme sestavení vlastního obrazu OpenWrt, který si následně stáhneme.
@@ -58,9 +70,9 @@ Balíky lze odebrat připsáním názvů balíků s~prefixem \verb|-|. Tedy: \te
Do vstupu \verb|Script to run on first boot (uci-defaults)| zadáme ash unix shell script, který provede konfiguraci systému při prvním spuštění.
% \lstinputlisting[caption={Script spouštěný při prvním bootu (uci-defaults.sh)}, language=bash,]{ucidefaults.sh}
\lstinputlisting[caption={Script spouštěný při prvním bootu (uci-defaults.sh)}, language=bash,]{ucidefaults.sh}
Tento script odstraní výchozí 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.
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.
@@ -76,7 +88,7 @@ Tímto jsme získali přístupový bod s~opensource systémem OpenWrt se síťov
% ==================================================================================================================
\section{Konfigurace a správa přístupových bodů}
Tabulka \ref{tab:DevOpsTools} poskytuje přehled vybraných nástrojů pro správu konfigurace a jejich vlastností.
Tabulka \ref{tab:DevOpsTools} poskytuje přehled a porovnává vybrané nástroje pro správu konfigurace.
Výběr nástroje pro správu konfigurace přístupových bodů sekce se musí řídit jejich možnostmi.
Přístupové body jsou limitovýny svými hardwarovými prostředky, proto je vhodné preferovat nástroje, které nevyžadují instalaci agenta, aby nedocházelo k~využívání omezeného interního uložiště a operační paměti.
Dalším zohledněným kritériem pro výběr nástroje je jazyk zápisu konfigurace. Zde preferuji zápis konfigurace v~jazyce YAML pro jeho jednoduchost oproti specifické syntaxi nástroje Puppet. Jazykem YAMl se zapisují strukturované data podobně jako v~JSONu. Jazyk YAML je obecně známý pro svou dobrou čitelnot a intuitivní zápis, což zjednodušuje čtení i úpravy konfigurací.
@@ -98,7 +110,7 @@ Zbylé nástroje Ansible a SaltStack využívají pro zápis konfigurace jazyk Y
\end{itemize}
Ke správě konfigurace přístupových bodů jsem vytvořil adresář, který dodržuje standartní adresářovou strukturu Ansible.
% \lstinputlisting[caption={Adresářová struktura Ansible}, language=bash,]{ansibleTree.txt}
\lstinputlisting[caption={Adresářová struktura Ansible}, language=bash,]{ansibleTree.txt}
V~adresáři \verb|roles/gekmihesg.openwrt| je naklonován repozitář \verb|ansible-openwrt|\footnote{\url{https://github.com/gekmihesg/ansible-openwrt}}, který přidává roli pro konfiguraci zářízení OpenWrt. Pro použití modulů této role je potřeba umístit spravovaná zařízení do skupiny \verb|openwrt| v~inventory Ansiblu a použít roli \verb|gekmihesg.openwrt| v~direktivě \verb|roles:| v~playbooku.
@@ -109,7 +121,7 @@ V~adresáři \verb|roles/gekmihesg.openwrt| je naklonován repozitář \verb|ans
Pro nasazení nových přístupových bodů slouží playbook \verb|addNewAPs.yml|.
% \lstinputlisting[caption={Obsah playbooku addNewAPs.yml},]{../apLukov/addNewAPs.yml}
\lstinputlisting[caption={Obsah playbooku addNewAPs.yml},]{../apLukov/addNewAPs.yml}
V~úvodu prvního úkolu playbooku jsou v~proměnné \verb|subnets| definovávy podsítě, které budou proskanovány programem \verb|ping|. Proskenován je adresní rozsah DHCP serveru, kde jsou hledány dynamicky přidělené nové IP adresy nově připojených přístupových bodů a taky adresní rozsah mimo DHCP server, aby byly zjištěny volné IP adresy, ze kterých bude novým přístupovým bodům přidělena statická IP adresa. Nalezená nová zařízení jsou přidána do dynamického inventáře se kterým se pracuje v~dalším úkolu. Volné IP adresy jsou uloženy do proměnné.
@@ -126,7 +138,7 @@ Playbook se spouští příkazem \verb|$ansible-playbook addNewAPs.yml|
Výchozí situace před finálním nakonfigurováním je taková, že všechny přístupové body jsou přidány do souboru \verb|inventory.yml| a mají nastavenou statickou IP adresu. Zařízení jsou v~\verb|inventory.yml| rozdělena do skupin podle toho zda používají DSA\footnote{Distributed switch Architecture} nebo nástroj \verb|swconfig| pro konfiguraci switche, protože switch je nutno pro oba případy konfigurovat odlišně. Princip DSA je popsán v~závěru sekce \ref{subsec:kompilace}. Skupiny \verb|dsa| a \verb|swcofig| jsou v~metaskupině \verb|accessPoints|, která je v~další metaskupine \verb|openwrt| pro správnou funkci role \verb|gekmihesg.openwrt|.
% \lstinputlisting[caption={Příklad inventory.yml},]{../apLukov/inventory.yml}
\lstinputlisting[caption={Příklad inventory.yml},]{../apLukov/inventory.yml}
\pagebreak
@@ -135,21 +147,21 @@ Výchozí situace před finálním nakonfigurováním je taková, že všechny p
Konfigurace je zapsána především deklarativním způsobem v~souborech\\\verb|group_vars/openwrt.yml| a \verb|group_vars/accessPoints.yml|. Tato konfigurace se aplikuje na všechny přístupové body, je zde tedy zapsána konfigurace, která bude na všech přístupových bodech stejná. Jedná se o~nastavení systému, softwarových bridgů, síťových rozhraní a Wi-Fi rozhraní.
% \lstinputlisting[caption={Ukázka group\_vars/openwrt.yml},]{../apLukov/group_vars/openwrt.yml}
\lstinputlisting[caption={Ukázka group\_vars/openwrt.yml},]{../apLukov/group_vars/openwrt.yml}
Sekce \verb|System| YAML souboru slouží pro konfiguraci systému openwrt (především časového pásma) a systémových nástrojů (nastavení logování). Sekce ovlivňuje konfiguraci v~\verb|/etc/config/system|\footnote{\url{https://openwrt.org/docs/guide-user/base-system/system_configuration}} na systému OpenWrt. Konfigurace systému je provedena Ansible rolí \verb|system|.
% ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '
\subsubsection{Role k~provedení sytémové konfigurace}
% \lstinputlisting[caption={Ukázka roles/system/tasks/main.yml},]{../apLukov/roles/system/tasks/main.yml}
\lstinputlisting[caption={Ukázka roles/system/tasks/main.yml},]{../apLukov/roles/system/tasks/main.yml}
Role \verb|system| pomocí modulu \verb|uci| nastaví sekci system systému OpenWrt udělá commit\footnote{uložení změn} a pokud proběhnou změny restartuje modulem \verb|ansible.builtin.service| systémovou službu pomocí handeru v~\verb|roles/system/handlers/main.yml|.
% ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '
\subsubsection{Zápis globální síťové konfigurace}
% \lstinputlisting[caption={Ukázka group\_vars/accessPoints.yml},]{../apLukov/group_vars/accessPoints.yml}
\lstinputlisting[caption={Ukázka group\_vars/accessPoints.yml},]{../apLukov/group_vars/accessPoints.yml}
Konfigurací v~\verb|group_vars/accessPoints.yml| jsou ovlivněny konfigurační soubory \verb|/etc/config/network|\footnote{\url{https://openwrt.org/docs/guide-user/network/network_configuration}} a \verb|/etc/config/wireless|\footnote{\url{https://openwrt.org/docs/guide-user/network/wifi/basic}} systému OpenWrt.
@@ -176,7 +188,7 @@ Obě dvě Wi-Fi sítě jsou ve výchozím nastavení spuštěny na všech Wi-Fi
Specifická konfigurace zařízení je zapsána v~\verb|host_vars/ap_<mac_adresa>.yml|. Tato konfigurace slouží k~nastavování IP adresy zařízení, hostname zařízení a nastavení switche. Zde je nutné nastavit jednotlivé VLANy a jejich porty. Na jednotlivých přístupových bodech je pomocí této konfigurace také možné nastavovat kanál Wi-Fi rádií, vysílací výkon nebo které Wi-Fi sítě se mají vysílat na kterých rádiích.
% \lstinputlisting[caption={Ukázka specifické konfigurace přístupového bodu s~DSA switchem},]{../apLukov/host_vars/ap_107c61992bd8.yml}
\lstinputlisting[caption={Ukázka specifické konfigurace přístupového bodu s~DSA switchem},]{../apLukov/host_vars/ap_107c61992bd8.yml}
U~přístupových bodů implementující DSA se nejdíve definuje v~sekci \verb|network_devices_append| nový bridge k~vytvoření, který obsahuje fyzické ethernetové porty zařízení. V~sekci \verb|network_bridge_vlan_filtering| se definují čísla VLAN a ethernetové porty, na kterých budou tyto VLAN aktivní. Dále se určí, které porty budou označeny tagem a které nikoli.
@@ -184,21 +196,21 @@ Sekce \verb|wireless_devices| slouží k~nastavení kanálů a vysílacích výk
Sekcí \verb|wireless_interfaces_override| lze omezit danou Wi-Fi síť pouze na určité rádio.
% \lstinputlisting[caption={Ukázka specifické konfigurace přístupového bodu s~swconfig switchem},]{../apLukov/host_vars/ap_b04e26bbc7e3.yml}
\lstinputlisting[caption={Ukázka specifické konfigurace přístupového bodu s~swconfig switchem},]{../apLukov/host_vars/ap_b04e26bbc7e3.yml}
U~zařízení, kde se switch spravuje nástrojem \verb|swconfig| se tato konfigurace provádí sekcí \verb|network_swconfig|. Je zde opět uvedeno číslo VLAN a ethernetový port. V~případě \verb|swconfig| switche je potřeba nahlédnou do dokumentace k~zařízení, protože jednotlivé porty jsou na každém zařízení číslovány jinak.
% ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '
\subsubsection{Role k~provedení síťové konfigurace}
% \lstinputlisting[caption={Role network},]{../apLukov/roles/network/tasks/main.yml}
\lstinputlisting[caption={Role network},]{../apLukov/roles/network/tasks/main.yml}
Role \verb|network| nejdříve iteruje sekcí \verb|network_swconfig| a konfiguruje prostřednictvím playbooku \verb|swconfig.yml| switch u~zařízení kde je tato sekce definována. Dále jsou playbookem \verb|device.yml| nastaveny síťové bridge opět iterací přes sekci \verb|network_devices| doplněnou o~VLAN filtrující bridge z~proměnné \verb|network_devices_append| u~zařízení implemntujících DSA. Ve třetím kroku jsou nakonfigurovány VLANy v~případě DSA zařízení pomocí playbooku \verb|vlan_filtering.vlan|. V~posledním kroku jsou vytvořeny síťové rozhraní playbookem \verb|interface.yml|, provedené změny jsou aplikovány a je restarováno síťování na přístupovém bodu. Pro případ změny IP adresy zařízení jsou na konci úkoly měnící IP zařízení v~inventory běžícího playbooku.
% \lstinputlisting[caption={Ukázka swconfig.yml},label={lst:swconfig.yml}]{../apLukov/roles/network/tasks/swconfig.yml}
% \lstinputlisting[caption={Ukázka device.yml},label={lst:device.yml}]{../apLukov/roles/network/tasks/device.yml}
% \lstinputlisting[caption={Ukázka vlan\_filtering.yml},label={lst:vlan_filtering.yml}]{../apLukov/roles/network/tasks/vlan_filtering.yml}
% \lstinputlisting[caption={Ukázka interface.yml},label={lst:interface.yml}]{../apLukov/roles/network/tasks/interface.yml}
\lstinputlisting[caption={Ukázka swconfig.yml},label={lst:swconfig.yml}]{../apLukov/roles/network/tasks/swconfig.yml}
\lstinputlisting[caption={Ukázka device.yml},label={lst:device.yml}]{../apLukov/roles/network/tasks/device.yml}
\lstinputlisting[caption={Ukázka vlan\_filtering.yml},label={lst:vlan_filtering.yml}]{../apLukov/roles/network/tasks/vlan_filtering.yml}
\lstinputlisting[caption={Ukázka interface.yml},label={lst:interface.yml}]{../apLukov/roles/network/tasks/interface.yml}
Ukázky \ref{lst:device.yml}, \ref{lst:vlan_filtering.yml} a \ref{lst:interface.yml} jsou zkráceny o~začátek souboru, který je téměř totožný se začátkem v~\ref{lst:swconfig.yml}. Ve všech případek je použit pro konfigurace přístupových bodů modul \verb|uci| z~role \verb|gekmihesg.openwrt|.
@@ -206,17 +218,17 @@ Role \verb|wireless| provádí konfigurací Wi-Fi rádií a jejich síťí. Role
Následně vytváří wifi sítě tak jak jsou definovány v~\verb|group_vars/accessPoints.yml| pomocí playbooku role \verb|interface.yml|. Při vytváření se zohleďnují individuální nastavení pro jednotlivé přístupové body v~sekci YAML konfigurace \verb|wireless_interfaces_override|.
% \lstinputlisting[caption={Role wireless},]{../apLukov/roles/wireless/tasks/main.yml}
\lstinputlisting[caption={Role wireless},]{../apLukov/roles/wireless/tasks/main.yml}
% \lstinputlisting[caption={Ukázka devices.yml},]{../apLukov/roles/wireless/tasks/device.yml}
% \lstinputlisting[caption={Ukázka interface.yml},]{../apLukov/roles/wireless/tasks/interface.yml}
\lstinputlisting[caption={Ukázka devices.yml},]{../apLukov/roles/wireless/tasks/device.yml}
\lstinputlisting[caption={Ukázka interface.yml},]{../apLukov/roles/wireless/tasks/interface.yml}
Samotná konfigurace opět probíhá module \verb|uci|.
% ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '
\subsubsection{Playbook k~provedení finální konfigurace}
% \lstinputlisting[caption={Ukázka setupAPs.yml},]{../apLukov/setupAPs.yml}
\lstinputlisting[caption={Ukázka setupAPs.yml},]{../apLukov/setupAPs.yml}
Playbook využívá role \verb|system|, \verb|network| a \verb|wireless|, které provedou konfiguraci podle nastavení v~proměnných v~adresářích \verb|group_vars| a \verb|host_vars|. Po nastavení zařízení jsou spuštěny další úkoly v~sekci \verb|post_tasts|. Pomocí modulu \verb|opkg| jsou na všechny přístupové body nainstalován balíčky \verb|prometheus-node-exporter-lua| a \verb|prometheus-node-exporter-lua-hostapd_station|. Tyto balíčky jsou modulem \verb|uci| nakonfigurovány a všechna zařízení jsou restartována.
@@ -225,8 +237,44 @@ Playbook se spouští příkazem \verb|$ ansible-playbook -i inventory.yml setup
% ==================================================================================================================
\section{Nastavení antentizačního serveru}
Národní operátor sítě eduroam v~české republice CESNET z. s. p. o. nabízí Ansible role pro konfiguraci autentizačního serveru freeRADIUS.
Tyto role jsou dostupné v~repozitáři \url{https://github.com/CESNET/ansible-freeradius}. Naklonováním repozitáře přidám role do adresáře \verb|roles/| adresářové struktury Ansible. Budou využity při konfiguraci freeRADIUS serveru v~této modelové implementaci.
Role provádějí kompletní instalaci a konfiguraci freeRADIUS serveru. Předpokládají požití jednoho z~linuxových systémů založených na distribuci Debian (s~balíčkovacím systémem \verb|apt|) nebo CentOS/RHEL (s~balíčkovacím systémem \verb|dnf|) Na autentizačním serveru se musí nakonfigurovat SSH server a přidat autentizační klíče pro přístup Ansible.
Po naklonování role repozitáře je nutné definovat konfiguraci v~adresářích \verb|group_vars|, \verb|host_vars| a přidat certifikáty.
Role je distribuována s~příklady konfigurace. Modelová implementace předpokládá použití lokálních identit uživatelů. Tomu odpovídá příklad konfigurace \verb|semik-dev.cesnet.cz-IdPSP.yml| z~adresáře role \verb|examles/|. Tento příklad nakopirujeme do \verb|host_vars/<realm>.yml|.
V~sekce \verb|ldap| této konfigurace se definuje LDAP server kde budou uloženy identity lokálních uživatelů. V~sekci eduroam se konfigurují parametry pro integraci freeRADUS serveru do federace eduroam a paramety pro fungování ověřování identit uživatelů.
\subsection{LDAP}
...
\subsection{Certifikáty}
freeRADIUS pro zajištění různých typů komunikace potřebu certifikáty. Ty vytváření bezpečnou komunikaci při komunikaci se suplikanty, jinými RADIUS servery nebo LDAP serverem.
\begin{figure}
\centering
\includegraphics[width=1\textwidth]{images/radius_certifikaty.png}
\caption{Porovnání modelu ISO OSI a TCP/IP.\citep{eduroam_certifikaty}}
\label{fig:radius_certifikaty}
\end{figure}
\subsection{Přístupové body}
Přístup přístupových bodů (autentifikátorů) k~freeRADIUS serveru se spravuje v~sekci \verb|radius.NAS|. Zde je definováno heslo použité v~proměnné \verb|auth_secret| v~konfiguraci přístupových bodů. V~modelové implementaci jsou přístupové body na dvou lokacích, přístupové body jsou v~každé lokaci jiné síti, proto jsou zde uvedeny záznamy pro dvě sítě.
\begin{lstlisting}[numbers=none]
radius:
NAS:
- ipaddr: 10.11.99.1/24
secret: Jednokolka123
shortname: SiteA
- ipaddr: 10.22.99.1/24
secret: Jednokolka123
shortname: SiteB
\end{lstlisting}
% ==================================================================================================================
\section{Monitoring a logování}