Difference between revisions of "Registrace MAC"
(→Uživatelsky definované příznaky "Flags") |
|||
(36 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
=Popis řešení= | =Popis řešení= | ||
− | Povinné registrace síťových zařízení jsou na FJFI (v Trojance) řešeny (primitivně) na úrovni přidělování různých adres DHCP serverem. Sice se toto řešení dá lehce obejít, ale primárním účelem není zabezpečit síť proti neoprávněnému používání | + | Povinné registrace síťových zařízení jsou na FJFI (v Trojance) řešeny (primitivně) na úrovni přidělování různých adres DHCP serverem. Sice se toto řešení dá lehce obejít, ale primárním účelem není zabezpečit síť proti neoprávněnému používání (možnosti zabezpečení jsou uvedeny na konci) nýbrž možnost jednoduše dohledat správce zařízení v případě podivného chování na síti nebo přímo stížností. |
− | Stroje, které nejsou v databázi dostávají | + | Stroje, které nejsou zaregistrovány v databázi dostávají pouze IPv4 adresy ze [[Network|Privátní adresy na default VLAN fjfi-*-def|speciálního rozsahu]], který není normálně routován do internetu. S touto adresou se uživatel dostane pouze na web stránku s [https://nms.fjfi.cvut.cz/user/register.php registračním formulářem] (a pár základních informačních stránek ČVUT/FJFI). Po vyplnění tohoto formuláře s ověřením identity je ihned povolen přístup "ven". Uživatel má sice stále privátní adresu (změnu adresy totiž nelze vynutit a dojde k ní do 10 minut expirací DHCP leasu), ale na nms.fjfi.cvut.cz je přidáno pravidlo povolující NAT do internetu pro danou IP a MAC. Toto pravidlo je automaticky smazáno, když dané zařízení není delší dobu (hodinu) dostupné pomoci ARPingu. |
− | Konfigurace DHCP serveru se (zatím) updatuje každých 5 minut na základě informací o zaregistrovaných zařízení. Po update DHCP bude dostávat každé zaregistrované zařízení IP adresy z | + | Konfigurace DHCP/DHCPv6 serveru se (zatím) updatuje každých 5 minut na základě informací o zaregistrovaných zařízení. Po update DHCP bude dostávat každé zaregistrované zařízení IP adresy z vyhrazeného rozsahu rozsahu (např. veřejné adresy 147.32.7.0/24 v Trojance). Výhledově je v plánu dynamická konfigurace DHCP serveru, takže se změny v konfiguraci projeví okamžitě (tedy z pohledu klienta samozřejmě až po nejbližší žádosti o DHCP adresu). Standardní doba platnosti pro dynamicky přidělované adresy je jedna hodina. |
− | + | Administrátor může zlobivá zařízení "[https://nms.fjfi.cvut.cz/user/?p=admin&sp=mac zablokovat]" a takové zařízení bude dostávat stejné adresy jako neregistrovaná (smazaná) zařízení. Narozdíl od neregistrovaných (smazaných) zařízení ale uživatel nemá možnost provést novou registraci a bude pouze informován o blokaci s kontakty na správce. Pokud má zařizení zkonfigurovanou statickou adresu, potom tento způsob blokace není funkční a je potřeba IP resp MAC adresu nechat zablokovat přímo na switch (disablovat port) nebo na routeru. | |
− | Registrace se samozřejmě "netýkají" WiFi sítí (Eduroam, WiFiFJFI), protože tam je zařízení automaticky zaregistrováné při přihlášení uživatele k této síti. Z tohoto důvodu je také potřeba mít WiFi sítě na zvláštních VLANách (pro Eduroam by se to ještě dalo vyřešit bez VLAN, ale u WiFiFJFI to bez VLAN nejde). Vzhledem k samostatně routovaným VLANám pak mají tyto sítě i vlastní IP rozsahy - | + | Registrace se samozřejmě "netýkají" WiFi sítí (Eduroam, WiFiFJFI), protože tam je zařízení automaticky zaregistrováné při přihlášení uživatele k této síti. Z tohoto důvodu je také potřeba mít WiFi sítě na zvláštních VLANách (pro Eduroam by se to ještě dalo vyřešit bez VLAN, ale u WiFiFJFI to bez VLAN nejde). Vzhledem k samostatně routovaným VLANám pak mají tyto sítě i vlastní IP rozsahy ([[Network#Privátní adresy na eduroam VLAN fjfi-*-eduroam|Eduroam]], [[Network#Privátní adresy na wififjfi VLAN fjfi-*-wififjfi|WiFiFJFI]], [[Network|...]]). |
− | Ještě je nutné zajistit, aby blokovaná resp. smazaná zařízení něměla přístup ani přes WiFiFJFI a Eduroam sít. | + | Ještě je nutné zajistit, aby blokovaná resp. smazaná zařízení něměla přístup ani přes WiFiFJFI a Eduroam sít. K tomu je vyhrazen rozsah privátních adres z nichž opět nelze komunikovat do internetu a zobrazí se captive portál s informací o blokaci zařízení + kontakty na správce. Stejně jako při registracích ani v tomto případě klientovi nepřidělí DHCPv6 žádnou IPv6 adres, takže stačí mít registrační procesy zkonfigurované a funkční pouze pro IPv4. Samozřemě, že až se rozšíří IPv6-only zařízení bude nutné provést revizi aktuálního přístupu, který taková zařízení přímo nepodporuje. |
=Použité komponenty= | =Použité komponenty= | ||
− | *[https:// | + | *[https://gitlab.fjfi.cvut.cz/comp/nmsui rozhraní pro uživatelské konfigurace] |
**[https://nms.fjfi.cvut.cz/user/register.php registrační formulář] | **[https://nms.fjfi.cvut.cz/user/register.php registrační formulář] | ||
**[https://nms.fjfi.cvut.cz/user/?p=admin&sp=mac úpravy registrovaných zařízení] | **[https://nms.fjfi.cvut.cz/user/?p=admin&sp=mac úpravy registrovaných zařízení] | ||
**[https://nms.fjfi.cvut.cz/user/?p=admin&sp=ip_rules pravidla pro přidělování rezervovaných IP adres] | **[https://nms.fjfi.cvut.cz/user/?p=admin&sp=ip_rules pravidla pro přidělování rezervovaných IP adres] | ||
− | *[https:// | + | *[https://gitlab.fjfi.cvut.cz/comp/dinfo daemon měnící konfiguraci iptables / ipset] |
− | *[https:// | + | *[https://gitlab.fjfi.cvut.cz/comp/scripts/UpdateNAT.py skript pro odmazávání starých záznamů z iptables / ipset] (spouštěný pravidelně z cronu) |
− | *DHCP server | + | *[[nms.fjfi.cvut.cz#DHCP|DHCP server]] |
− | *HTTP server | + | **přidělování různých adres pro (ne)registrovaná zařízení |
− | *VLAN pro oddělení samostatně autentizovaných | + | **lokální statické konfigurace DHCP a DHCPv6 v <tt>/etc/dhcp/dhcp[6]*.conf</tt> |
+ | **[https://gitlab.fjfi.cvut.cz/comp/scripts/DhcpUpdate.py konfigurace generovány skriptem] z registrační databáze | ||
+ | *[[nms.fjfi.cvut.cz#HTTP|HTTP server]] | ||
+ | **konfigurace redirectu s IP adresou klienta na stránku registrací (captive portal) | ||
+ | **konfigurace virtualhosta na privátní adrese + redirect v index.php pro lokace mimo Trojanku | ||
+ | *VLAN pro oddělení samostatně autentizovaných WiFiFJFI zařízení | ||
− | =Registrace | + | =Registrace= |
− | + | Registruje-li zařízení běžný uživatel přes rozhraní [https://nms.fjfi.cvut.cz/user/?p=mac&sp=add nmsui] nebo libovolný uživatel přes [https://nms.fjfi.cvut.cz/user/register.php captive portál], potom je možné nastavit pouze základní parametry. Bez speciálních práv tak nelze provádět rezervaci vlastní IP adresy nebo například automatické přidání jména zařízení do DNS. Pro běžného uživatele se registrace chová tak, jako kdyby požadoval IP adresu "auto" a ta je vyhodnocena na základě [https://nms.fjfi.cvut.cz/user/?p=admin&sp=ip_rules pravidel] zajišťujících přiřazení konkrétních rezervovaných IP adres. Použité pravidlo pro přiřazení IPv4/IPv6 adres může být i prázdné a v takovém případě bude zařízení přidělována adresa z dynamického DHCP poolu (pokud je pro daný subnet podporován). Při uživatelské registraci také nedochází k žádným modifikacím záznamů v DNS. | |
− | + | {| | |
+ | |[[Image:register-captive.png|captive portal registration|thumb|200px]] | ||
+ | |[[Image:register-user.png|user registration|thumb|250px]] | ||
+ | |[[Image:register-admin.png|admin registration|thumb|250px]] | ||
+ | |} | ||
+ | |||
+ | Oprávnění správcí mohou na [https://nms.fjfi.cvut.cz/user/?p=mac&sp=add stránce s registracemi] přímo přesně specifikovat IPv4/IPv6 adresy a VLANy (standardně je správna VLAN přiřazena automaticky a není doporučeno specifikovat vlastní jména). Jako IP adresu lze tedy zvolit: | ||
+ | |||
+ | * auto - defaultní volba, která vybere automaticky adresy dle [https://nms.fjfi.cvut.cz/user/?p=admin&sp=ip_rules pravidel] (je možné vytvářet nová pravidla s novými jmény a různými filtry) | ||
+ | * auto@vlan - vybere automaticky adresy, ale pouze z VLAN daného jména | ||
+ | * 192.0.2.123 - přiřazení konkrétní IP adresy s automatickým výběrem VLAN (adresa musí být ze známého rozsahu) | ||
+ | * 192.0.2.123@VLAN - přiřazení konkrétní IP adresy na VLAN daného jména | ||
+ | * 2001:DB8::123 - přiřazení konkrétní IP adresy s automatickým výběrem VLAN (adresa musí být ze známého rozsahu) | ||
+ | * 2001:DB8::123@VLAN - přiřazení konkrétní IP adresy na VLAN daného jména | ||
+ | * 192.0.2.123,2001:DB8::123 - přiřazení více adres jednomu rozhraní (nebo v případě více rozhraní/MAC bude první adresa přidělena prvnímu rozhraní/MAC, ...) | ||
+ | * auto,192.0.2.123,2001:DB8::123 - kombinace "auto" pravidla + přidání dalších dvou specifických adres | ||
+ | * "prázdné pole" - zařízení nebude mít rezervovanou žádnou adresu a bude dostávat dynamicky přidelované adresy | ||
+ | |||
+ | ==Pravidla pro automatické vytváření rezervovaných adres== | ||
+ | |||
+ | Pokud uživatel registruje zařízení pomocí [https://nms.fjfi.cvut.cz/user/register.php captive portálu] nebo administrátor [https://nms.fjfi.cvut.cz/user/?p=mac&sp=add při ruční registraci] zvolí jako IP adresu klíčové slovo "auto" (resp. libovolný [https://nms.fjfi.cvut.cz/user/?p=admin&sp=ip_rules název pravidla ze seznamu]) dojde k automatickému výběru rezervované IPv4/IPv6 adresy. Aktivní [https://nms.fjfi.cvut.cz/user/?p=admin&sp=ip_rules pravidla] s odpovídajícím jménem jsou vyfiltrována podle zadefinovaných vlastností zařízení (vlastníka, typu zařízení, umístění, ...) a seřazena sestupně podle váhy. Pravidlo s největší vahou je následně použito pro automatický výběr volných IPv4/IPv6 adres z uvedených rozsahů. | ||
+ | |||
+ | Jedním pravidlem můžeme zařízení přiřadit libovolný počet IPv4/IPv6 adres z různých VLAN. Při aplikaci konkrétního pravidla se postupně zpracují všechny zadefinované IPv4/IPv6 rozsahy a pro každou VLAN se vybere první volná adresa z uvedeného rozsahu. Pokud je již přidělený rozsah plně obsazen (resp. jsou plně obsazeny všechny rozsah na dané VLAN), zařízení nezíská žádnou rezervovanou adresu. Při vytváření pravidel není nutné uvádet z jaké VLAN je konkrétní IP rozsah a v takovém případě se vybere správná VLAN odpovídající IP rozsahu. | ||
+ | |||
+ | Filter u pravidel může obsahovat jak základní vlastnosti zařízení (vlastníka, typ, umístění, status), tak i položky nepřímo související s registovaným zařízením: | ||
+ | |||
+ | * VLAN - administrátor může jako IP adresu zařizení zvolit nejen "auto", ale i adresu z konkrétní vlany jako například "auto@fjfi-tr-def" a pomocí VLAN filtru pak můžeme přiřazovat různé adresy v závislosti na požadavku na konkrétní VLAN | ||
+ | * users - tento filtr může obsahovat seznam uživatelských jmen oddělených čárkou a uživatel registrující zařízení musí být v seznamu uveden, aby se na něj toto pravidlo aplikovalo (např.: "vokacpet,keroupav,schlopet") | ||
+ | * groups - podobně jako filtr users může obsahovat seznam skupin a uživatel registrující zařízení musí být členem jedné z uvedených skupin (např.: "km_all,kf_all") | ||
+ | * priv - tento filtr lze aplikovat na [https://nms.fjfi.cvut.cz/user/?p=admin&sp=info práva přidělená správcům] přímo pro toto web rozhraní (např. "mac_ro") | ||
+ | |||
+ | ==Dohledání speciálních zařízení== | ||
+ | |||
+ | U počítačů, notebooků, PDA, ... by neměla registrace dělat problém, protože tyto zařízení obsahují web browser přesměrovaný automaticky na captive portál (některé adresy/porty jsou dostupné i pro neregistrovaná zařízení - informační weby ČVUT/FJFI, služby FJFI AD pro joinutí stroje do domény, ...). Jiné je to pro ostatní zařízení jako jsou například síťové tiskárny, VoIP telefony, ... Ty je potřeba registrovat předem (MAC adresa bývá většinou u síťového rozhraní uvedena) nebo je potřeba nastavit statickou IP adresu z [[IP rozsahy|přiděleného rozsahu]]. | ||
+ | |||
+ | Není-li MAC adresa známa a nelze-li nakonfigurovat ručně statickou IP adresu (dohledatelnou přes [https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping online historii]), potom pro zjištění MAC může posloužit [https://nms.fjfi.cvut.cz/user/?p=admin&sp=fingerprint online přístup k informacím o DHCP požadavcích]. V horším případě mohou posloužit [https://nms.fjfi.cvut.cz/user/?p=admin&sp=mac&sp=dhcp logy DHCP serveru] nebo by hledání mohl usnadnit [https://nms.fjfi.cvut.cz/user/?p=ipstat&view=vendor seznam zařízení podle typu výrobce] nebo nakonec [https://nms.fjfi.cvut.cz/user/?p=ipstat&view=arping běžící zařízení] v rozsahu neregistrovaných zařízení (tyto rozsahy lze dohledat na stránce s informacemi o [[Network|využití IP adres]] pro neregistrovaná/blokovaná/smazaná zařízení). | ||
+ | |||
+ | ==Zaregistrované adresy== | ||
+ | |||
+ | Zaregistovat je nutné nejen všechny MAC adresy objevující se na FJFI síti (optimálně všechny MAC jednoho zařízení přidat k jedné registraci), ale také všechny používané IPv4/IPv6 adresy a to i pro zařízení, které mají IPv4/IPv6 adresy zkonfigurovány staticky lokálně a nevyužívají DHCP (např. servery). Pokud zařízení nevyžaduje stálou IP adresu, nemusí být pro dané síťové rozhraní (MAC) zaregistrována žádná adresa a v takovém případě bude zařízení dostávat adresu z rozsahu vyhrazeného pro dynamickou alokaci IP adres (některé speciální VLAN nemusí dynamickou alokaci podporovat). Dynamická alokace IPv4 adres je vhodná zvláště pro zařízení, která nejsou připojena do síťě pernamentně (notebooky studentů, ...), jelikož těchto adres není neomezené množství. U kancelářských počítačů používaných denně je doporučeno využívat rezervované (stálé) adresy. Stejně tak na IPv6 je vzhledem k prakticky neomezenému množství adres doporučeno používat/rezerovat konkrétní adresu (minimálně pro VLAN/budovu, kde se zařízení často vyskytuje). | ||
+ | |||
+ | Součástí registrace konkrétní adresy je i VLAN na níž se bude adresa používat. Standardně ji při registraci není potřeba uvádět, protože se automaticky vybere správná VLAN dle hodnoty IPv4 resp. IPv6 adresy (IP rozsahy pro různé VLAN mají prázdný průnik a VLAN tak lze jednoznačně určit). Uživatel má ale možnost specifikovat uvést libovolné jmeno VLAN bez ohledu na to jestli vůbec existuje nebo odpovídá hodnotě IP adresy (nedoporučeno - opravdu musíte vědět co děláte) a aplikace využívající data z registrací si s tim musí nějak rozumně poradit (např. takové "nesprávné" záznamy adres/VLAN ignorovat). | ||
+ | |||
+ | <strike>Toto není dostatečně dokončno/otestováno - pokud chcete tuto vlastnost využívat kontaktujte [http://nms.fjfi.cvut.cz/user/who.php?uid=vokacpet|správce]. Existuje také možnost zakázat přidělování IPv4 resp. IPv6 adres a to buď globálně na všech VLAN nebo pro konkrétní VLAN. K tomu slouží speciální klíčové slovo "disabled4" resp. "disabled6", které se uvede místo IP adresy u registrovaného zařízení. Dále máte možnost specifikovat pomocí klíčových slov "nat4" a "nat6", že si přejete dostávat privátní NATované adresy z dynamicky přidělovaného rozsahu.</strike> | ||
+ | |||
+ | Registrované adresy jsou používány nejen ke konfiguraci DHCP, ale také k [[arpmon|monitorování]], jestli dané zařízení není chybně zkonfigurováno a nevyužívá náhodou cizí adresu. To by mohlo potenciálně vést k problémům se síťovým připojením a proto je na takovou situaci upozorněn správce zařízení a daného subnetu. Více informací je na stránce týkající se [[arpmon|monitoringu]]. | ||
+ | |||
+ | Podporované hodnoty pro zaregistrovanou adresu: | ||
+ | |||
+ | * IPv4 adresa - rezervovaná IPv4 adresa pro zařízení / interface | ||
+ | * IPv6 adresa - rezervovaná IPv6 adresa pro zařízení / interface | ||
+ | * <strike>disabled4 - nepřidělovat IPv4 adresu, viz. výše</strike> | ||
+ | * <strike>disabled6 - nepřidělovat IPv6 adresu, viz. výše</strike> | ||
+ | * <strike>nat4 - používat privátní IPv4 adresu, viz. výše</strike> | ||
+ | * <strike>nat6 - používat privátní IPv6 adresu, viz. výše</strike> | ||
+ | |||
+ | ==Registrační data - detaily== | ||
+ | |||
+ | ===Uživatelsky definované příznaky "Flags"=== | ||
+ | |||
+ | Tyto položky mohou obsahovat libovolná uživatelská data sloužící dalším aplikacím využívajícím registrace (např. PXE bootovací volby aplikované na konfiguraci DHCP serveru). Jedná se v podstatě o key/value seznam, kde klíč určuje typ záznamu a hodnota může obsahovat libovolná data využívaná cílovou aplikací. Pro každý typ záznamu je možné nadefinovat přístupová práva (aktuálně jsou uložena přímo v konfiguračním souboru RESTful API) pomocí nichž lze specifikovat kdo má mít přístup pro čtení/zápis (god/admin/user/anonym). | ||
+ | |||
+ | {|class="wikitable" | ||
+ | !colspan="6"|Device registration Flags | ||
+ | |- | ||
+ | !rowspan="2"|name | ||
+ | !scope | ||
+ | !acl (read/write) | ||
+ | !owner | ||
+ | !date | ||
+ | !data | ||
+ | |- | ||
+ | |colspan="5"|description | ||
+ | |- | ||
+ | |colspan="6"| | ||
+ | |- | ||
+ | !rowspan="2"|notify | ||
+ | !device | ||
+ | !admin/admin | ||
+ | !vokacpet | ||
+ | !2010 | ||
+ | ! - | ||
+ | |- | ||
+ | |colspan="5"|pošli mail správci subnetu (případně na zadanou adresu) pokud se toto zařízení objeví na síti | ||
+ | |- | ||
+ | !rowspan="2"|ad | ||
+ | !device | ||
+ | !admin/god | ||
+ | !vokacpet | ||
+ | ! - | ||
+ | !DN | ||
+ | |- | ||
+ | |colspan="5"|automaticky nastavovaný příznak podle zařazení počítače joinutého do AD | ||
+ | |- | ||
+ | !rowspan="2"|gateway | ||
+ | !device | ||
+ | !admin/admin | ||
+ | !vokacpet | ||
+ | !2024 | ||
+ | !172.17.12.2 [172.17.12.3 [...]] | ||
+ | |- | ||
+ | |colspan="5"|umožní zadat vlastní gateway | ||
+ | |- | ||
+ | !rowspan="2"|pxe | ||
+ | !device | ||
+ | !admin/admin | ||
+ | !vokacpet | ||
+ | !2010 | ||
+ | ![147.32.9.2 [/gpxelinux.0 [xx:xx:xx:xx:xx:xx]]] | ||
+ | |- | ||
+ | |colspan="5"|zkonfiguruj DHCP server, aby posílal informace o síťovém bootování ze serveru 147.32.9.2 (default) a jeho souboru /gpxelinux.0 (default) přístupném přes TFTP protokol (pří existencí více síťových rozhraní lze specifikovat konkrétní MAC adresu rozhraní, které má použít tuto konfiguraci) | ||
+ | |- | ||
+ | !rowspan="2"|pxe | ||
+ | !device | ||
+ | !admin/admin | ||
+ | !vokacpet | ||
+ | !2010 | ||
+ | !template_name [xx:xx:xx:xx:xx:xx] | ||
+ | |- | ||
+ | |colspan="5"|zkonfiguruj DHCP server, aby posílal informace o síťovém bootování podle předdefinovaných šablon s volitelným výběrem konkrétního síťového rozhraní | ||
+ | dostpné šablony: | ||
+ | * default ('147.32.9.2', '2001:718:2:1900::2', None) - automatický boot UEFI nebo legacy dle informací z DHCP dotazu | ||
+ | * legacy ('147.32.9.2', '2001:718:2:1900::2', '/gpxelinux.0') - vynucený legacy boot | ||
+ | * efi ('147.32.9.2', '2001:718:2:1900::2', '/shim.efi') - vynucený UEFI boot | ||
+ | * secure_boot_almalinux ('147.32.9.2', '2001:718:2:1900::2', '/EFI/almalinux/shimx64.efi') - UEFI boot přes shim z Almalinuxu | ||
+ | * secure_boot_centos ('147.32.9.2', '2001:718:2:1900::2', '/EFI/centos/shimx64.efi') - UEFI boot přes shim z CentOS | ||
+ | * secure_boot_fedora ('147.32.9.2', '2001:718:2:1900::2', '/EFI/fedora/shimx64.efi') - UEFI boot přes shim z Fedory | ||
+ | * secure_boot_clonezilla ('147.32.9.2', '2001:718:2:1900::2', '/EFI/clonezilla/shimx64.efi') - UEFI boot přes shim z Ubuntu | ||
+ | |- | ||
+ | !rowspan="2"|voip | ||
+ | !device | ||
+ | !admin/admin | ||
+ | !vokacpet | ||
+ | !2016 | ||
+ | !"nothing"|template_name|address1 [address2 [...]] | ||
+ | |- | ||
+ | |colspan="5"|specifikace TFTP serveru pro IP telefony odkud budou stahovat konfiguraci Cisco Call Manager (CCM), nespecifikujete-li žádnou hodnotu pak se použije standardní "default" šablona s IPv4 a IPv6 adresami ČVUT CCM. Můžete také uvést více IPv4 resp. IPv6 adres oddělených mezerami. Pokud u registrovaného zařízení nastavíte více příznaků "voip" potom bude výsledný seznam obsahovat sjednocení všech zadaných adres. Pro IP telefony od Cisco identifikující se jako "Cisco Systems, Inc. IP Phone" resp. "Cisco IP Phone" bude i bez konfigurace příznaku "voip" automaticky posílán seznam ČVUT CCM TFTP adres. | ||
+ | dostupné šablony: | ||
+ | * default [ '147.32.240.199', '147.32.240.200', '2001:718:2:2201::199', '2001:718:2:2201::200' ] | ||
+ | |- | ||
+ | !rowspan="2"|wpad | ||
+ | !device | ||
+ | !admin/admin | ||
+ | !vokacpet | ||
+ | !2024 | ||
+ | !"nothing"|template_name|URL | ||
+ | |- | ||
+ | |colspan="5"|specifikace URL s konfigurací HTTP proxy serveru | ||
+ | dostupné šablony: | ||
+ | * default: http://nms.fjfi.cvut.cz/wpad.dat | ||
+ | |} | ||
=Řešení stížnosti / blokací= | =Řešení stížnosti / blokací= | ||
− | *neplatné údaje | + | * neplatné údaje |
− | *IDS detekce | + | * IDS detekce |
− | *stížnost od abuse@cvut.cz | + | * stížnost od abuse@cvut.cz |
− | *odblokování zařízení | + | ** přichází do konference <tt>nightwatch@lists.fjfi.cvut.cz</tt> |
+ | ** podle informací o [https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=arping běžících] ([https://nms.fjfi.cvut.cz/user/?p=ipstat&sp=ulog NATovaných]) a [https://nms.fjfi.cvut.cz/user/?p=admin&sp=mac registrovaných] zařízení je potřeba dohledat viníka | ||
+ | *** u problémů se zařízeními ze sítě Eduroam řešíme incidenty pouze pro uživatele z <tt>@fjfi.cvut.cz</tt> realm | ||
+ | *** u ostatních realm totiž nemáme (spolehlivou) informaci o pravé vnitřní identitě | ||
+ | *** pro realmy z domény <tt>cz</tt> správce Eduroam pošle incident přímo na správce dané real podle informací z [http://caas.cesnet.cz CAAS] | ||
+ | *** pro uživatele z ciziny lze je možné odpovědět pouze zpět CESNETu, at jako správce národního Eduroamu vykomunikuje daný incident s cizinou (je potřeba přiložit příslušné logy lokálního Eduroam RADIUS serveru vztahující se k IP problematického zařízení) | ||
+ | ** přeposlat došlou stížnost viníkovi s požadavkem na nápravu a do kopie vždy dát <tt>nightwatch@lists.fjfi.cvut.cz</tt>, aby byla dohledatelná informace, že se incident řeší | ||
+ | ** v případě stížností, které mají přiřazený CESNET ticket je potřeba neprodleně informovat i <tt>certs@cesnet.cz</tt> o řešení incidentu (max 1-2 dny) | ||
+ | ** uživatelská zařízení s CESNET ticketem blokovat (a tak si vynutit reakci uživatele) | ||
+ | ** informaci o incidentu případně datum zablokování/odblokování poznamenat do poznámky v registraci zařízení | ||
=Možnosti zabezpečení proti neoprávněnému přístupu= | =Možnosti zabezpečení proti neoprávněnému přístupu= | ||
− | *současné řešení + informace o problematických registrací z [[arpmon|monitorovacího daemona]] [https:// | + | *současné řešení + informace o problematických registrací z [[arpmon|monitorovacího daemona]] [https://gitlab.fjfi.cvut.cz/comp/arpmon arpmon] |
*povolení routovaní na CISCO pouze adres přidělených od DHCP (nutné precizní zařazení do VLAN - netriviální resp. trošku pracné, ale možné realizovat) | *povolení routovaní na CISCO pouze adres přidělených od DHCP (nutné precizní zařazení do VLAN - netriviální resp. trošku pracné, ale možné realizovat) | ||
*autentizace LAN klientů přes RADIUS (nemožné realizovat bez switchů s podporou RADIUS autentizace) | *autentizace LAN klientů přes RADIUS (nemožné realizovat bez switchů s podporou RADIUS autentizace) |
Latest revision as of 09:33, 7 September 2024
Contents
Popis řešení
Povinné registrace síťových zařízení jsou na FJFI (v Trojance) řešeny (primitivně) na úrovni přidělování různých adres DHCP serverem. Sice se toto řešení dá lehce obejít, ale primárním účelem není zabezpečit síť proti neoprávněnému používání (možnosti zabezpečení jsou uvedeny na konci) nýbrž možnost jednoduše dohledat správce zařízení v případě podivného chování na síti nebo přímo stížností.
Stroje, které nejsou zaregistrovány v databázi dostávají pouze IPv4 adresy ze Privátní adresy na default VLAN fjfi-*-def|speciálního rozsahu, který není normálně routován do internetu. S touto adresou se uživatel dostane pouze na web stránku s registračním formulářem (a pár základních informačních stránek ČVUT/FJFI). Po vyplnění tohoto formuláře s ověřením identity je ihned povolen přístup "ven". Uživatel má sice stále privátní adresu (změnu adresy totiž nelze vynutit a dojde k ní do 10 minut expirací DHCP leasu), ale na nms.fjfi.cvut.cz je přidáno pravidlo povolující NAT do internetu pro danou IP a MAC. Toto pravidlo je automaticky smazáno, když dané zařízení není delší dobu (hodinu) dostupné pomoci ARPingu.
Konfigurace DHCP/DHCPv6 serveru se (zatím) updatuje každých 5 minut na základě informací o zaregistrovaných zařízení. Po update DHCP bude dostávat každé zaregistrované zařízení IP adresy z vyhrazeného rozsahu rozsahu (např. veřejné adresy 147.32.7.0/24 v Trojance). Výhledově je v plánu dynamická konfigurace DHCP serveru, takže se změny v konfiguraci projeví okamžitě (tedy z pohledu klienta samozřejmě až po nejbližší žádosti o DHCP adresu). Standardní doba platnosti pro dynamicky přidělované adresy je jedna hodina.
Administrátor může zlobivá zařízení "zablokovat" a takové zařízení bude dostávat stejné adresy jako neregistrovaná (smazaná) zařízení. Narozdíl od neregistrovaných (smazaných) zařízení ale uživatel nemá možnost provést novou registraci a bude pouze informován o blokaci s kontakty na správce. Pokud má zařizení zkonfigurovanou statickou adresu, potom tento způsob blokace není funkční a je potřeba IP resp MAC adresu nechat zablokovat přímo na switch (disablovat port) nebo na routeru.
Registrace se samozřejmě "netýkají" WiFi sítí (Eduroam, WiFiFJFI), protože tam je zařízení automaticky zaregistrováné při přihlášení uživatele k této síti. Z tohoto důvodu je také potřeba mít WiFi sítě na zvláštních VLANách (pro Eduroam by se to ještě dalo vyřešit bez VLAN, ale u WiFiFJFI to bez VLAN nejde). Vzhledem k samostatně routovaným VLANám pak mají tyto sítě i vlastní IP rozsahy (Eduroam, WiFiFJFI, ...).
Ještě je nutné zajistit, aby blokovaná resp. smazaná zařízení něměla přístup ani přes WiFiFJFI a Eduroam sít. K tomu je vyhrazen rozsah privátních adres z nichž opět nelze komunikovat do internetu a zobrazí se captive portál s informací o blokaci zařízení + kontakty na správce. Stejně jako při registracích ani v tomto případě klientovi nepřidělí DHCPv6 žádnou IPv6 adres, takže stačí mít registrační procesy zkonfigurované a funkční pouze pro IPv4. Samozřemě, že až se rozšíří IPv6-only zařízení bude nutné provést revizi aktuálního přístupu, který taková zařízení přímo nepodporuje.
Použité komponenty
- rozhraní pro uživatelské konfigurace
- daemon měnící konfiguraci iptables / ipset
- skript pro odmazávání starých záznamů z iptables / ipset (spouštěný pravidelně z cronu)
- DHCP server
- přidělování různých adres pro (ne)registrovaná zařízení
- lokální statické konfigurace DHCP a DHCPv6 v /etc/dhcp/dhcp[6]*.conf
- konfigurace generovány skriptem z registrační databáze
- HTTP server
- konfigurace redirectu s IP adresou klienta na stránku registrací (captive portal)
- konfigurace virtualhosta na privátní adrese + redirect v index.php pro lokace mimo Trojanku
- VLAN pro oddělení samostatně autentizovaných WiFiFJFI zařízení
Registrace
Registruje-li zařízení běžný uživatel přes rozhraní nmsui nebo libovolný uživatel přes captive portál, potom je možné nastavit pouze základní parametry. Bez speciálních práv tak nelze provádět rezervaci vlastní IP adresy nebo například automatické přidání jména zařízení do DNS. Pro běžného uživatele se registrace chová tak, jako kdyby požadoval IP adresu "auto" a ta je vyhodnocena na základě pravidel zajišťujících přiřazení konkrétních rezervovaných IP adres. Použité pravidlo pro přiřazení IPv4/IPv6 adres může být i prázdné a v takovém případě bude zařízení přidělována adresa z dynamického DHCP poolu (pokud je pro daný subnet podporován). Při uživatelské registraci také nedochází k žádným modifikacím záznamů v DNS.
Oprávnění správcí mohou na stránce s registracemi přímo přesně specifikovat IPv4/IPv6 adresy a VLANy (standardně je správna VLAN přiřazena automaticky a není doporučeno specifikovat vlastní jména). Jako IP adresu lze tedy zvolit:
- auto - defaultní volba, která vybere automaticky adresy dle pravidel (je možné vytvářet nová pravidla s novými jmény a různými filtry)
- auto@vlan - vybere automaticky adresy, ale pouze z VLAN daného jména
- 192.0.2.123 - přiřazení konkrétní IP adresy s automatickým výběrem VLAN (adresa musí být ze známého rozsahu)
- 192.0.2.123@VLAN - přiřazení konkrétní IP adresy na VLAN daného jména
- 2001:DB8::123 - přiřazení konkrétní IP adresy s automatickým výběrem VLAN (adresa musí být ze známého rozsahu)
- 2001:DB8::123@VLAN - přiřazení konkrétní IP adresy na VLAN daného jména
- 192.0.2.123,2001:DB8::123 - přiřazení více adres jednomu rozhraní (nebo v případě více rozhraní/MAC bude první adresa přidělena prvnímu rozhraní/MAC, ...)
- auto,192.0.2.123,2001:DB8::123 - kombinace "auto" pravidla + přidání dalších dvou specifických adres
- "prázdné pole" - zařízení nebude mít rezervovanou žádnou adresu a bude dostávat dynamicky přidelované adresy
Pravidla pro automatické vytváření rezervovaných adres
Pokud uživatel registruje zařízení pomocí captive portálu nebo administrátor při ruční registraci zvolí jako IP adresu klíčové slovo "auto" (resp. libovolný název pravidla ze seznamu) dojde k automatickému výběru rezervované IPv4/IPv6 adresy. Aktivní pravidla s odpovídajícím jménem jsou vyfiltrována podle zadefinovaných vlastností zařízení (vlastníka, typu zařízení, umístění, ...) a seřazena sestupně podle váhy. Pravidlo s největší vahou je následně použito pro automatický výběr volných IPv4/IPv6 adres z uvedených rozsahů.
Jedním pravidlem můžeme zařízení přiřadit libovolný počet IPv4/IPv6 adres z různých VLAN. Při aplikaci konkrétního pravidla se postupně zpracují všechny zadefinované IPv4/IPv6 rozsahy a pro každou VLAN se vybere první volná adresa z uvedeného rozsahu. Pokud je již přidělený rozsah plně obsazen (resp. jsou plně obsazeny všechny rozsah na dané VLAN), zařízení nezíská žádnou rezervovanou adresu. Při vytváření pravidel není nutné uvádet z jaké VLAN je konkrétní IP rozsah a v takovém případě se vybere správná VLAN odpovídající IP rozsahu.
Filter u pravidel může obsahovat jak základní vlastnosti zařízení (vlastníka, typ, umístění, status), tak i položky nepřímo související s registovaným zařízením:
- VLAN - administrátor může jako IP adresu zařizení zvolit nejen "auto", ale i adresu z konkrétní vlany jako například "auto@fjfi-tr-def" a pomocí VLAN filtru pak můžeme přiřazovat různé adresy v závislosti na požadavku na konkrétní VLAN
- users - tento filtr může obsahovat seznam uživatelských jmen oddělených čárkou a uživatel registrující zařízení musí být v seznamu uveden, aby se na něj toto pravidlo aplikovalo (např.: "vokacpet,keroupav,schlopet")
- groups - podobně jako filtr users může obsahovat seznam skupin a uživatel registrující zařízení musí být členem jedné z uvedených skupin (např.: "km_all,kf_all")
- priv - tento filtr lze aplikovat na práva přidělená správcům přímo pro toto web rozhraní (např. "mac_ro")
Dohledání speciálních zařízení
U počítačů, notebooků, PDA, ... by neměla registrace dělat problém, protože tyto zařízení obsahují web browser přesměrovaný automaticky na captive portál (některé adresy/porty jsou dostupné i pro neregistrovaná zařízení - informační weby ČVUT/FJFI, služby FJFI AD pro joinutí stroje do domény, ...). Jiné je to pro ostatní zařízení jako jsou například síťové tiskárny, VoIP telefony, ... Ty je potřeba registrovat předem (MAC adresa bývá většinou u síťového rozhraní uvedena) nebo je potřeba nastavit statickou IP adresu z přiděleného rozsahu.
Není-li MAC adresa známa a nelze-li nakonfigurovat ručně statickou IP adresu (dohledatelnou přes online historii), potom pro zjištění MAC může posloužit online přístup k informacím o DHCP požadavcích. V horším případě mohou posloužit logy DHCP serveru nebo by hledání mohl usnadnit seznam zařízení podle typu výrobce nebo nakonec běžící zařízení v rozsahu neregistrovaných zařízení (tyto rozsahy lze dohledat na stránce s informacemi o využití IP adres pro neregistrovaná/blokovaná/smazaná zařízení).
Zaregistrované adresy
Zaregistovat je nutné nejen všechny MAC adresy objevující se na FJFI síti (optimálně všechny MAC jednoho zařízení přidat k jedné registraci), ale také všechny používané IPv4/IPv6 adresy a to i pro zařízení, které mají IPv4/IPv6 adresy zkonfigurovány staticky lokálně a nevyužívají DHCP (např. servery). Pokud zařízení nevyžaduje stálou IP adresu, nemusí být pro dané síťové rozhraní (MAC) zaregistrována žádná adresa a v takovém případě bude zařízení dostávat adresu z rozsahu vyhrazeného pro dynamickou alokaci IP adres (některé speciální VLAN nemusí dynamickou alokaci podporovat). Dynamická alokace IPv4 adres je vhodná zvláště pro zařízení, která nejsou připojena do síťě pernamentně (notebooky studentů, ...), jelikož těchto adres není neomezené množství. U kancelářských počítačů používaných denně je doporučeno využívat rezervované (stálé) adresy. Stejně tak na IPv6 je vzhledem k prakticky neomezenému množství adres doporučeno používat/rezerovat konkrétní adresu (minimálně pro VLAN/budovu, kde se zařízení často vyskytuje).
Součástí registrace konkrétní adresy je i VLAN na níž se bude adresa používat. Standardně ji při registraci není potřeba uvádět, protože se automaticky vybere správná VLAN dle hodnoty IPv4 resp. IPv6 adresy (IP rozsahy pro různé VLAN mají prázdný průnik a VLAN tak lze jednoznačně určit). Uživatel má ale možnost specifikovat uvést libovolné jmeno VLAN bez ohledu na to jestli vůbec existuje nebo odpovídá hodnotě IP adresy (nedoporučeno - opravdu musíte vědět co děláte) a aplikace využívající data z registrací si s tim musí nějak rozumně poradit (např. takové "nesprávné" záznamy adres/VLAN ignorovat).
Toto není dostatečně dokončno/otestováno - pokud chcete tuto vlastnost využívat kontaktujte [1]. Existuje také možnost zakázat přidělování IPv4 resp. IPv6 adres a to buď globálně na všech VLAN nebo pro konkrétní VLAN. K tomu slouží speciální klíčové slovo "disabled4" resp. "disabled6", které se uvede místo IP adresy u registrovaného zařízení. Dále máte možnost specifikovat pomocí klíčových slov "nat4" a "nat6", že si přejete dostávat privátní NATované adresy z dynamicky přidělovaného rozsahu.
Registrované adresy jsou používány nejen ke konfiguraci DHCP, ale také k monitorování, jestli dané zařízení není chybně zkonfigurováno a nevyužívá náhodou cizí adresu. To by mohlo potenciálně vést k problémům se síťovým připojením a proto je na takovou situaci upozorněn správce zařízení a daného subnetu. Více informací je na stránce týkající se monitoringu.
Podporované hodnoty pro zaregistrovanou adresu:
- IPv4 adresa - rezervovaná IPv4 adresa pro zařízení / interface
- IPv6 adresa - rezervovaná IPv6 adresa pro zařízení / interface
-
disabled4 - nepřidělovat IPv4 adresu, viz. výše -
disabled6 - nepřidělovat IPv6 adresu, viz. výše -
nat4 - používat privátní IPv4 adresu, viz. výše -
nat6 - používat privátní IPv6 adresu, viz. výše
Registrační data - detaily
Uživatelsky definované příznaky "Flags"
Tyto položky mohou obsahovat libovolná uživatelská data sloužící dalším aplikacím využívajícím registrace (např. PXE bootovací volby aplikované na konfiguraci DHCP serveru). Jedná se v podstatě o key/value seznam, kde klíč určuje typ záznamu a hodnota může obsahovat libovolná data využívaná cílovou aplikací. Pro každý typ záznamu je možné nadefinovat přístupová práva (aktuálně jsou uložena přímo v konfiguračním souboru RESTful API) pomocí nichž lze specifikovat kdo má mít přístup pro čtení/zápis (god/admin/user/anonym).
Device registration Flags | |||||
---|---|---|---|---|---|
name | scope | acl (read/write) | owner | date | data |
description | |||||
notify | device | admin/admin | vokacpet | 2010 | - |
pošli mail správci subnetu (případně na zadanou adresu) pokud se toto zařízení objeví na síti | |||||
ad | device | admin/god | vokacpet | - | DN |
automaticky nastavovaný příznak podle zařazení počítače joinutého do AD | |||||
gateway | device | admin/admin | vokacpet | 2024 | 172.17.12.2 [172.17.12.3 [...]] |
umožní zadat vlastní gateway | |||||
pxe | device | admin/admin | vokacpet | 2010 | [147.32.9.2 [/gpxelinux.0 [xx:xx:xx:xx:xx:xx]]] |
zkonfiguruj DHCP server, aby posílal informace o síťovém bootování ze serveru 147.32.9.2 (default) a jeho souboru /gpxelinux.0 (default) přístupném přes TFTP protokol (pří existencí více síťových rozhraní lze specifikovat konkrétní MAC adresu rozhraní, které má použít tuto konfiguraci) | |||||
pxe | device | admin/admin | vokacpet | 2010 | template_name [xx:xx:xx:xx:xx:xx] |
zkonfiguruj DHCP server, aby posílal informace o síťovém bootování podle předdefinovaných šablon s volitelným výběrem konkrétního síťového rozhraní
dostpné šablony:
| |||||
voip | device | admin/admin | vokacpet | 2016 | template_name|address1 [address2 [...]] |
specifikace TFTP serveru pro IP telefony odkud budou stahovat konfiguraci Cisco Call Manager (CCM), nespecifikujete-li žádnou hodnotu pak se použije standardní "default" šablona s IPv4 a IPv6 adresami ČVUT CCM. Můžete také uvést více IPv4 resp. IPv6 adres oddělených mezerami. Pokud u registrovaného zařízení nastavíte více příznaků "voip" potom bude výsledný seznam obsahovat sjednocení všech zadaných adres. Pro IP telefony od Cisco identifikující se jako "Cisco Systems, Inc. IP Phone" resp. "Cisco IP Phone" bude i bez konfigurace příznaku "voip" automaticky posílán seznam ČVUT CCM TFTP adres.
dostupné šablony:
| |||||
wpad | device | admin/admin | vokacpet | 2024 | template_name|URL |
specifikace URL s konfigurací HTTP proxy serveru
dostupné šablony:
|
Řešení stížnosti / blokací
- neplatné údaje
- IDS detekce
- stížnost od abuse@cvut.cz
- přichází do konference nightwatch@lists.fjfi.cvut.cz
- podle informací o běžících (NATovaných) a registrovaných zařízení je potřeba dohledat viníka
- u problémů se zařízeními ze sítě Eduroam řešíme incidenty pouze pro uživatele z @fjfi.cvut.cz realm
- u ostatních realm totiž nemáme (spolehlivou) informaci o pravé vnitřní identitě
- pro realmy z domény cz správce Eduroam pošle incident přímo na správce dané real podle informací z CAAS
- pro uživatele z ciziny lze je možné odpovědět pouze zpět CESNETu, at jako správce národního Eduroamu vykomunikuje daný incident s cizinou (je potřeba přiložit příslušné logy lokálního Eduroam RADIUS serveru vztahující se k IP problematického zařízení)
- přeposlat došlou stížnost viníkovi s požadavkem na nápravu a do kopie vždy dát nightwatch@lists.fjfi.cvut.cz, aby byla dohledatelná informace, že se incident řeší
- v případě stížností, které mají přiřazený CESNET ticket je potřeba neprodleně informovat i certs@cesnet.cz o řešení incidentu (max 1-2 dny)
- uživatelská zařízení s CESNET ticketem blokovat (a tak si vynutit reakci uživatele)
- informaci o incidentu případně datum zablokování/odblokování poznamenat do poznámky v registraci zařízení
Možnosti zabezpečení proti neoprávněnému přístupu
- současné řešení + informace o problematických registrací z monitorovacího daemona arpmon
- povolení routovaní na CISCO pouze adres přidělených od DHCP (nutné precizní zařazení do VLAN - netriviální resp. trošku pracné, ale možné realizovat)
- autentizace LAN klientů přes RADIUS (nemožné realizovat bez switchů s podporou RADIUS autentizace)