Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze | |||
cs:spravce:monitoring:ermon2 [2018/08/15 10:52] – [Dokumentace k implementaci noveho ermona] machv@cesnet.cz | cs:spravce:monitoring:ermon2 [2024/05/17 10:38] (aktuální) – odstraněno Jan Čáslavský | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
- | ====== Dokumentace k implementaci noveho ermona ====== | ||
- | |||
- | Většina testů se provádí na hostname RADIUSu. Některý by ale měly lepší smysl dělat na realm / respektive instituci, například to že dodali institution.xml. | ||
- | |||
- | |||
- | |||
- | ====== Zdroje dat o objektech pro Icingu ====== | ||
- | |||
- | **RADIUS servery** jsou to o kolo čeho se vše točí. | ||
- | |||
- | **Realmy** představují instituci připojenou k eduroamu. | ||
- | |||
- | **Admini** jsou zodpovědni za Realm nebo RADIUS server. | ||
- | |||
- | ===== RADIUS servery ===== | ||
- | |||
- | Jsou evidovány v LDAPu | ||
- | |||
- | ??baseDN | ||
- | :: '' | ||
- | !! | ||
- | ??filter | ||
- | :: '' | ||
- | !! | ||
- | |||
- | ??cn | ||
- | ::hostname RADIUS serveru | ||
- | !! | ||
- | |||
- | ?? | ||
- | ::RADSEC anebo IPSEC | ||
- | !! | ||
- | |||
- | ?? | ||
- | :: sdílené tajemství pro komunikaci na UDP/1812 při testování RADIUS protokolem | ||
- | !! | ||
- | |||
- | ??manager | ||
- | :: více hodnotové pole odkazující na entry adminů. | ||
- | !! | ||
- | |||
- | ===== Realmy ===== | ||
- | |||
- | Jsou evidovány v LDAPu. | ||
- | |||
- | ??baseDN | ||
- | :: '' | ||
- | !! | ||
- | ??filter | ||
- | :: '' | ||
- | !! | ||
- | ??cn | ||
- | :: **vícehodnotové** pole obsahující všechny realmy příslušící jedné organizaci (např. cesnet.cz, cesnet.eu a guest.cesnet.cz). | ||
- | !! | ||
- | ?? | ||
- | :: uživatelské jméno testovacího uživatele obvykle asi s realmem který je RDN tohoto záznamu | ||
- | |||
- | tohle může být nedefinováno pro instituce co se připojují a zatím nedodali a nebo jsou SP only | ||
- | !! | ||
- | ?? | ||
- | :: heslo k testovacímu účtu | ||
- | !! | ||
- | ?? | ||
- | :: typ připojení '' | ||
- | !! | ||
- | ?? | ||
- | :: stav připojení '' | ||
- | !! | ||
- | ?? | ||
- | :: odkaz na XML dokumnet s informacemi o pokrytí | ||
- | !! | ||
- | ??manager | ||
- | :: více hodnotové pole odkazující na entry adminů, trochu pitomé je že to mohou být jiní lidé než ti u realmu | ||
- | !! | ||
- | |||
- | |||
- | ===== Admini ===== | ||
- | |||
- | Jsou evidovány v LDAPu. | ||
- | |||
- | ??baseDN | ||
- | :: '' | ||
- | !! | ||
- | ??filter | ||
- | :: '' | ||
- | !! | ||
- | |||
- | Narozdíl od Serverů a Realmů tady nedostáváme přímo entry admina ale pouze její DN v attributu '' | ||
- | |||
- | Následně se provede čtení dotyčné entry a tím se zjistí potřebné informace. | ||
- | |||
- | ??uid | ||
- | :: uživatelské jméno pro admina v CESNETím LDAPu, ePPN se pak tvoří jako ''< | ||
- | |||
- | |||
- | :: email admina, pokud jich je víc, tak se bere ten první. CESNETí LDAP má sice položku prefferedMail, | ||
- | |||
- | ??cn | ||
- | :: jméno admina, pracuje vůbec Icinga se jménem? Nagiosu to bylo buřt. | ||
- | |||
- | ?? | ||
- | :: pouze u entry z podstromu '' | ||
- | |||
- | Pro účely řízení práv bude třeba aby dotyčnému objektu měli přístup všichni kteří se přihlásí pomocí některého z '' | ||
- | !! | ||
- | |||
- | Možná bude možné si tuhle komplikaci zjednodušit tím že nový ermon schováme za proxyIdP. Tím bychom dostali vždy jen jedno jedné ePPN. Když bychom se vykašlali na nějaké přechodné období, tak bychom si taky mohli zjednodušit vyhledávaní uživatelů takto: | ||
- | |||
- | ??baseDN | ||
- | :: '' | ||
- | |||
- | ??filter | ||
- | :: '' | ||
- | !! | ||
- | |||
- | A všechna data o uživatelích by byla okamžitě k dispozici, trochu to degraduje na praci s LDAPem jako SQL, ale přijde mi že by to za to stálo. | ||
- | |||
- | Podle této zjednodušené logiky by pak eduroam admini ze stávajícího LDAPu dolováni takto (není to uplně přesné, stává se mi že admina zapomenu přidat do skupiny): | ||
- | |||
- | ??baseDN | ||
- | :: '' | ||
- | !! | ||
- | ??filter | ||
- | :: '' | ||
- | !! | ||
- | |||
- | [[https:// | ||
- | na Peruna ktera nebrala v potaz proxyIdP]]. | ||
- | |||
- | TODO OBA: Prodiskutovat to a rozhodnout se. | ||
- | |||
- | ====== Prováděné testy ====== | ||
- | |||
- | ===== PING ===== | ||
- | |||
- | Test jestli je RADIUS server dosažitelný, | ||
- | |||
- | ??LDAP filter | ||
- | :: | ||
- | |||
- | ?? | ||
- | :: ne | ||
- | |||
- | ?? | ||
- | :: ANO, 960 (u,c,r) | ||
- | |||
- | ??RW oprávnění | ||
- | :: admini serveru | ||
- | |||
- | ??frekvence testů [běžný, fail, HARD] | ||
- | :: 5min, 1min, 10x | ||
- | !! | ||
- | |||
- | ===== IPSEC ===== | ||
- | |||
- | Test jestli má RADIUS navázané IPSec spojení na národní RADIUS, má smysl pouze u těch RADIUS serverů které jsou infrastrukturní a jsou připojeny pomocí IPSec. | ||
- | |||
- | ??LDAP filter | ||
- | :: (& | ||
- | |||
- | ?? | ||
- | :: PING | ||
- | |||
- | ?? | ||
- | :: ANO, 960 (u,c,r) | ||
- | |||
- | ??RW oprávnění | ||
- | :: admini serveru | ||
- | |||
- | ??frekvence testů [běžný, fail, HARD] | ||
- | :: 5min, 1min, 10x | ||
- | |||
- | !! | ||
- | |||
- | Test je realizovan na národním RADIUSu, pomocí parametrizovaného pingu kterému se předává IPčko serveru na který se má pingnout, když pingnout jde tak se předpokládá že je sestaven IPSec. Předpkládá se že národní RADIUS má v kernelu politiky které znemožnují pingnout bez sestaveného tunelu. Důkladnější by bylo kontrolovat že je dohodnuté SA a následně pingnout, ale nemyslím že je třeba to dále komplikovat. | ||
- | |||
- | < | ||
- | command[check_ping]=/ | ||
- | </ | ||
- | |||
- | ===== RADSEC ===== | ||
- | |||
- | Test zda má RADIUS navázané RadSec spojení na národní RADIUS, má smysl pouze u těch RADIUS serverů které jsou infrastrukturní a jsou připojeny pomocí RadSec. | ||
- | |||
- | ??LDAP filter | ||
- | :: '' | ||
- | |||
- | ?? | ||
- | :: PING | ||
- | |||
- | ?? | ||
- | :: ANO, 960 (u,c,r) | ||
- | |||
- | ??RW oprávnění | ||
- | :: admini serveru | ||
- | |||
- | ??frekvence testů [běžný, fail, HARD] | ||
- | :: 5min, 1min, 10x | ||
- | |||
- | !! | ||
- | |||
- | Test je realizovan na národním RADIUSu, tak že se v navazaných spojeních hledají ta která odpovídají IP adrese testovaného serveru. Pro server který pracuje v roli IdP+SP musí být navázáno alespoň jedno spojení k serveru a jedno od serveru ktery je v SP modu. IdP v soucasnosti vubec neumime. | ||
- | |||
- | Problem je s tim jak FR aktivne zavira spojeni, takze kdyz poklesne aktivita ermonu tak muze i falesne hlasit ze radsec spojeni neni v poradku navazano. Tohle by chtelo nejak vyresit. Ale nenapada me zadne snadne reseni, asi napsat neco sofistikovanejsiho a drzet si informaci ze posledni hodinu ci dve bylo nejaky spojeni navazano a tak to povazovat za OK? Nebo si proste vynutit navazani spojeni? To se mi asi libi vic. Ale ... | ||
- | |||
- | < | ||
- | command[check_radsec]=/ | ||
- | command[check_radsec_SP]=/ | ||
- | </ | ||
- | |||
- | |||
- | |||
- | ===== Domácí realm ===== | ||
- | |||
- | Realm který RADIUS server obsluhuje. Domácí realmy jsou odkazovány v entry RADIUS serveru přes atribut '' | ||
- | |||
- | ??LDAP filter | ||
- | :: (& | ||
- | |||
- | ?? | ||
- | :: (PING @ $mon_server) | ||
- | |||
- | ?? | ||
- | :: ANO, 960 (w,u,c,r) | ||
- | |||
- | ??RW oprávnění | ||
- | :: admini realmu a admini serveru | ||
- | |||
- | ??frekvence testů [běžný, fail, HARD] | ||
- | :: 5min, 10min, 3x | ||
- | |||
- | !! | ||
- | |||
- | Test se provádí pomocí [[https:// | ||
- | |||
- | ===== Návštěvnické realmy ===== | ||
- | |||
- | Realmy ostatních organizací, | ||
- | |||
- | ??LDAP filter | ||
- | :: (& | ||
- | |||
- | ?? | ||
- | :: ( (RADSEC|IPSEC) @ $server) & ($visit_realm @ $homeservers) | ||
- | |||
- | ?? | ||
- | :: NE | ||
- | |||
- | ??RW oprávnění | ||
- | :: admini serveru a admini realmu | ||
- | |||
- | ??frekvence testů [běžný, fail, HARD] | ||
- | :: 180min, 120min, 3x | ||
- | !! | ||
- | |||
- | Platí totéž o CSI jako u domácích realmů. | ||
- | |||
- | |||
- | ===== VISITORS / Agregované realmy ===== | ||
- | |||
- | Nový test. Jde o to vytvořit nějaký test který bude informovat že na instituci mají návštěvníci problém. Potíž spočívá v tom že vždy existuje několik realmů které na serveru nefungují. Pěkné by bylo když by 80% - OK, 70% - WARNING a méně critical. | ||
- | |||
- | ??LDAP filter | ||
- | :: (& | ||
- | |||
- | ?? | ||
- | :: ( (RADSEC|IPSEC) @ $server) & ($realm @ $server) | ||
- | |||
- | ?? | ||
- | :: ANO, 960 (w,u,c,r) | ||
- | |||
- | ??RW oprávnění | ||
- | :: admini serveru | ||
- | |||
- | ??frekvence testů [běžný, fail, HARD] | ||
- | :: ??min, ??min, ??x - odvodit podle náročnosti & dopadu na infrastrukturu | ||
- | !! | ||
- | |||
- | ===== BIG-PACKET ===== | ||
- | |||
- | Test přenosu velkého paketu - sem tam se objevují instituce které zahazují fragmentované UDP pakety. Test je udělán tak, že na každém RADIUS serveru se testuje pomocí uživatele big-test@cesnet.cz, | ||
- | |||
- | Otázka je jestli je třeba to zachovávat, | ||
- | |||
- | Tak jak je test udělán testujeme cestu buď národní //RADIUS -> RADIUS instituce -> AP// (pokud jedou IPsec) a nebo //RADIUS instituce -> AP// (pokud jedou RADSEC) tj. směr odpovědi od CENSETího RADIUSu. A potom směr //RADIUS instituce -> ermon// pro odpověď která místo k AP putuje na ermon, což se dá považovat za test schopnosti odeslat fragmentovaný paket přes velkou část Internetu. | ||
- | |||
- | ??LDAP filter | ||
- | :: (& | ||
- | |||
- | ?? | ||
- | :: (RADSEC|IPSEC) @ $server & (cesnet.cz @ $homeservers) | ||
- | |||
- | ?? | ||
- | :: ANO, 2880 (c,r) | ||
- | |||
- | ??RW oprávnění | ||
- | :: admini serveru | ||
- | |||
- | ??frekvence testů [běžný, fail, HARD] | ||
- | :: 1440min, 720min, 3x | ||
- | !! | ||
- | |||
- | ===== CALLING-STATION-ID ===== | ||
- | |||
- | Kontrola že server posílá attribut Calling-Station-ID, | ||
- | |||
- | ??LDAP filter | ||
- | :: (radiusDisabled=true) | ||
- | |||
- | ?? | ||
- | :: PING @ $server | ||
- | |||
- | ?? | ||
- | :: ANO, 2880min (c,r) | ||
- | |||
- | ??RW oprávnění | ||
- | :: admini serveru | ||
- | |||
- | ??frekvence testů [běžný, fail, HARD] | ||
- | :: 1440min, 720min, 3x | ||
- | !! | ||
- | |||
- | Implementace na národním RADIUS serveru: | ||
- | < | ||
- | command[check_CSI]=/ | ||
- | </ | ||
- | |||
- | Další detaily u [[# | ||
- | ===== CHARGEABLE-USER-IDENTITY ===== | ||
- | |||
- | Test že IdP implementuje fci Chargeable-User-Identity. | ||
- | |||
- | ??LDAP filter | ||
- | :: (& | ||
- | |||
- | ?? | ||
- | :: $home_realm @ $server | ||
- | |||
- | ?? | ||
- | :: ANO, 2880min (c,r) | ||
- | |||
- | ??RW oprávnění | ||
- | :: admini serveru | ||
- | |||
- | ??frekvence testů [běžný, fail, HARD] | ||
- | :: 2880min, 180min, 3x | ||
- | !! | ||
- | |||
- | Implementováno pomocí skriptu ''/ | ||
- | ===== CVE-2017-9148 ===== | ||
- | |||
- | Test na [[https:// | ||
- | |||
- | ??LDAP filter | ||
- | :: (& | ||
- | |||
- | ?? | ||
- | :: $home_realm @ $server | ||
- | |||
- | ?? | ||
- | :: ANO, 2880min (c,r) | ||
- | |||
- | ??RW oprávnění | ||
- | :: admini serveru | ||
- | |||
- | ??frekvence testů [běžný, fail, HARD] | ||
- | :: 2880min, 180min, 3x | ||
- | !! | ||
- | |||
- | ===== FAKE-UID ===== | ||
- | |||
- | Test jestli domácí RADIUS server vynucuje shodu vnější a vnitřní identity s vyjimkou anonymous@$realm. Testuje se pomocí anonymní identity anonXXXX@$realm a reálného testovacího účtu pro domácí realm. XXXX by mělo být proměnné aby si to některý z adminů nezjednodušil tak že začne zamítat konkrétní účet. Stávající implementace XXXX generuje náhodně při generování statické konfigurace pro nagios. | ||
- | |||
- | Test se provádí pomocí ''/ | ||
- | |||
- | ??LDAP filter | ||
- | :: (& | ||
- | |||
- | ?? | ||
- | :: $home_realm @ $server | ||
- | |||
- | ?? | ||
- | :: ANO, 2880min (c,r) | ||
- | |||
- | ??RW oprávnění | ||
- | :: admini serveru | ||
- | |||
- | ??frekvence testů [běžný, fail, HARD] | ||
- | :: 2880min, 180min, 3x | ||
- | !! | ||
- | |||
- | ===== OPERATOR-NAME ===== | ||
- | |||
- | Kontrola že server posílá attribut Operator-Name, | ||
- | |||
- | ??LDAP filter | ||
- | :: (radiusDisabled=true) | ||
- | |||
- | ?? | ||
- | :: PING @ $server | ||
- | |||
- | ?? | ||
- | :: ANO, 2880min (c,r) | ||
- | |||
- | ??RW oprávnění | ||
- | :: admini serveru | ||
- | |||
- | ??frekvence testů [běžný, fail, HARD] | ||
- | :: 1440min, 720min, 3x | ||
- | !! | ||
- | |||
- | Implementace na národním RADIUS serveru: | ||
- | < | ||
- | command[check_operator_name]=/ | ||
- | </ | ||
- | Soubor ''/ | ||
- | |||
- | Chtělo by to zvážit frekvenci testů, stávající frekvence pravděpodobně vychází z toho že jsem v minulosti zkoušel parsovat log rovnou? A opakované čtení národní R. server přetěžovalo. Teď když je to podstatné vytaženo do malého souboru: | ||
- | < | ||
- | root@radius1mng5: | ||
- | lrwxrwxrwx 1 root root 52 Apr 6 13:07 / | ||
- | root@radius1mng5: | ||
- | -rw-r--r-- 1 root root 19621 Apr 6 13:07 / | ||
- | </ | ||
- | tak pro to není důvod. | ||
- | |||
- | |||
- | ===== VCELKA-MAJA ===== | ||
- | |||
- | Test že nedochází k přeposílání vnitřní identity. Vnější identita je vcelka-maja@tul.cz, | ||
- | |||
- | ??LDAP filter | ||
- | :: (& | ||
- | |||
- | ?? | ||
- | :: $home_realm @ $server | ||
- | |||
- | ?? | ||
- | :: ANO, 2880min (c,r) | ||
- | |||
- | ??RW oprávnění | ||
- | :: admini serveru | ||
- | |||
- | ??frekvence testů [běžný, fail, HARD] | ||
- | :: 2880min, 180min, 3x | ||
- | !! | ||
- | |||
- | ===== INSTITUTION-XML ===== | ||
- | |||
- | dokumentace je na githubu | ||
- | |||
- | ??LDAP filter | ||
- | :: ? | ||
- | |||
- | ?? | ||
- | :: PING @ $server | ||
- | |||
- | ?? | ||
- | :: ANO, 2880min (c,r) | ||
- | |||
- | ??RW oprávnění | ||
- | :: admini serveru | ||
- | |||
- | ??frekvence testů [běžný, fail, HARD] | ||
- | :: 2880min, 180min, 3x | ||
- | !! | ||
- | |||
- | ===== kompromitovany identity ===== | ||
- | |||
- | Test hleda uzivatele se jmenem obsahujicim realm, kteri se uspesne overili s jinymi MAC adresami behem 60 sekund v ruznych realmech. | ||
- | TBD | ||
- | |||
- | ===== soubezne se vyskytujici instituce ===== | ||
- | |||
- | TBD | ||
- | Test hleda uzivatele, kteri se uspesne overili se stejnymi mac adresami behem 20 sekund s tim, ze navstivena instituce1 nebo navstivena instituce2 odpovida realmu. | ||
- | |||
- | ===== toplevel veci na ermonu ===== | ||
- | |||
- | TODO | ||
- | |||
- | zachovat? | ||
- | |||
- | definovano v / | ||
- | |||
- | ====== RADIUSy s povolenym pristupem ====== | ||
- | |||
- | @ujop.cuni.cz @lf1.cuni.cz @troja.mff.cuni.cz radius[12].karlov.mff.cuni.cz | ||
- | |||
- | ====== Rúzné typy RADIUSu ====== | ||
- | |||
- | ??SP & IDP | ||
- | :: | ||
- | !! | ||
- | |||
- | ?? SP & IdP schovaný za proxy | ||
- | :: edukrvy.kr-vysocina.cz (realm kr-vysocina.cz) | ||
- | !! | ||
- | |||
- | ?? Pouze SP | ||
- | :: | ||
- | !! | ||
- | |||
- | ?? Pouze SP schovaný za proxy | ||
- | :: eduroamproxy.ssstavji.cz (realm ssstavji.cz) | ||
- | !! | ||
- | |||
- | ?? Pouze proxy server | ||
- | :: | ||
- | !! | ||
- | |||