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 Následující verze | Předchozí verze | ||
| cs:spravce:pripojovani:radius:radiator [2018/09/20 15:15] – [Ověření identity uživatele a jeho oprávnění používat eduroam] semik@cesnet.cz | cs:spravce:pripojovani:radius:radiator [2024/08/26 07:57] (aktuální) – [SP role] Jan Čáslavský | ||
|---|---|---|---|
| Řádek 11: | Řádek 11: | ||
| platforem. | platforem. | ||
| - | =====Úvod ===== | + | ===== Návrh nastavení radiatoru pro novou generaci eduroam |
| - | Konfigurace, | + | ==== IdP role ==== |
| - | serveru, který slouží k ověřování uživatelů. Narozdíl od [[cs: | + | |
| - | Kompletní konfigurace je uvedena v přílohách. V textu jsou uvedeny | + | < |
| - | jen části nutné pro objasnění funkce. | + | ... |
| - | + | ||
| - | =====Definice klientů ===== | + | |
| - | + | ||
| - | V konfiguraci je třeba uvést definici klientů, se kterými bude RADIUS | + | |
| - | server komunikovat: | + | |
| - | + | ||
| - | < | + | |
| - | StartupHook sub { require "/ | + | |
| - | include %D/cui.cfg | + | |
| - | + | ||
| - | <Client DEFAULT> | + | |
| - | Secret tajemstvi | + | |
| - | </ | + | |
| - | + | ||
| - | <Client **10.0.1.1**> #AP01 | + | |
| - | Secret | + | |
| - | </ | + | |
| - | <Client **10.0.1.2**> | + | |
| - | Secret | + | |
| - | </ | + | |
| - | <Client **10.0.1.3**> | + | |
| - | Secret | + | |
| - | </ | + | |
| - | # . | + | |
| - | # . | + | |
| - | # . | + | |
| - | + | ||
| - | <Client radius1.eduroam.cz> | + | |
| - | Secret | + | |
| - | // | + | |
| - | </ | + | |
| - | + | ||
| - | <Client ermon.cesnet.cz> | + | |
| - | Secret **tajemstvi132** | + | |
| - | // | + | |
| - | </ | + | |
| - | + | ||
| - | <Client **accounting.cesnet.cz**> | + | |
| - | Secret **TAJEMSTVI** | + | |
| - | </ | + | |
| - | </ | + | |
| - | + | ||
| - | Je třeba uvést nejen AP, která jsou přirozeným klientem pro server, ale | + | |
| - | i národní RADIUS servery, které vystupují v roli klienta, když některý z | + | |
| - | Vašich uživatelů využije roamingu. | + | |
| - | + | ||
| - | Klienty lze vyjmenovat jejich DNS jménem, IP adresou, rozsahem IP | + | |
| - | adres, případně lze také použít řetězec " | + | |
| - | bude použita pro všechny klienty, pro něž nebude k dispozici jiná | + | |
| - | přesnější. | + | |
| - | + | ||
| - | Aby bez problémů fungoval monitoring je třeba pro radius1.eduroam.cz a ermon.cesnet.cz nastavit '' | + | |
| - | + | ||
| - | =====Definice RadSec serveru===== | + | |
| - | + | ||
| - | RadSec otevírá dvě TCP spojení. Jedno je realizováno z národního RADIUS serveru na RADIUS server instituce a druhé ze serveru instituce na národní server. Komunikace probíhá na port TCP/2083. Zde se definuje port na kterém bude očekáváno spojení z národního RADIUS serveru. | + | |
| - | + | ||
| - | < | + | |
| < | < | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | TLS_CertificateFile |
| - | | + | |
| - | | + | |
| - | + | | |
| - | | + | |
| + | | ||
| - | TLS_CRLCheck | + | Clients |
| - | TLS_CRLFile / | + | |
| - | TLS_ExpectedPeerName radius1.eduroam.cz | + | |
| + | # | ||
| + | # | ||
| + | # | ||
| </ | </ | ||
| - | </ | + | ... |
| - | + | <Handler | |
| - | =====Roztřídění požadavků podle typu a realmu ===== | + | ... |
| - | + | ||
| - | Radiator má možnost zpracovávat požadavky podle realmu díky | + | |
| - | konstrukci: | + | |
| - | + | ||
| - | < | + | |
| - | <Realm cesnet.cz> | + | |
| - | . | + | |
| - | . | + | |
| - | . | + | |
| - | </Realm> | + | |
| - | </ | + | |
| - | + | ||
| - | Anebo podle jakékoliv hodnoty z požadavku konstrukcí: | + | |
| - | + | ||
| - | < | + | |
| - | <Handler attribute=value, | + | |
| - | . | + | |
| - | . | + | |
| - | . | + | |
| </ | </ | ||
| + | ... | ||
| </ | </ | ||
| - | Druhá alternativa je podstatně flexibilnější, | ||
| - | zde prezentované konfiguraci. | ||
| - | ==== Požadavky bez realmu | + | ==== SP role ==== |
| - | Požadavky o autentizaci bez realmu je vhodné zamítat s Access-Reject aby si domací uživatelé zvykali i v domácí síti používat realm a něměli tak zbytečně potíže když budou chtít //eduroam// použít jinde. | + | <code ini> |
| + | ... | ||
| + | <Client 78.128.248.234> | ||
| + | Identifier | ||
| - | <code> | + | DupInterval |
| - | <Handler Realm=/^$/> | + | Secret |
| - | < | + | </Client> |
| - | DefaultResult REJECT | + | ... |
| - | </ | + | < |
| - | </ | + | |
| - | </ | + | |
| + | |||
| + | | ||
| + | MaxFailedGraceTime | ||
| + | NoreplyTimeout | ||
| + | KeepaliveTimeout | ||
| + | KeepaliveNoreplyTimeout | ||
| + | UseStatusServerForFailureDetect | ||
| - | ==== Požadavky domácích uživatelů ==== | + | TLS_Protocols |
| + | TLS_CertificateType | ||
| + | TLS_CertificateFile | ||
| + | TLS_PrivateKeyFile | ||
| + | TLS_CAFile | ||
| + | # | ||
| + | # | ||
| + | TLS_ExpectedPeerName | ||
| - | Accounting týkající se našich domácích uživatelů může přijít nejen z našich AP, ale | + | Host 78.128.248.10 |
| - | teoreticky také z národního RADIUSu. V současnosti ale platí, že hostitelské organizace | + | |
| - | by neměli accounting posílat s ohledem na soukromí uživatelů. | + | |
| - | + | # | |
| - | Veškerý acounting ukládáme do lokálního souboru na každém jednom lokálním RADIUS | + | # |
| - | serveru, ale také ho přeposíláme na stroj se jménem '' | + | # |
| - | ke spojování dat z druhého RADIUS servereru a DHCP serveru, abychom v případě problémů | + | </AuthBy> |
| - | byli schopni uživatele identifikovat na základě IP adresy která mu byla přidělena. | + | ... |
| - | + | <Handler> | |
| - | <code> | + | ... |
| - | < | + | |
| - | Realm=/ | + | ... |
| - | + | | |
| - | AcctLogFileName / | + | |
| - | + | ... | |
| - | <AuthBy RADIUS> | + | |
| - | <Host **accounting.cesnet.cz**> | + | |
| - | AuthPort | + | |
| - | | + | |
| - | | + | |
| - | </ | + | |
| - | </ | + | |
| - | + | ||
| - | PreProcessingHook sub { CUI:: | + | |
| - | # | + | |
| </ | </ | ||
| + | ... | ||
| </ | </ | ||
| - | |||
| - | Ověření identity a hesla uživatelů s realmem **cesnet.cz**, | ||
| - | **radius1.cesnet.cz** se děje v sekci '' | ||
| - | '' | ||
| - | zpracovávány **bez ohledu na velikost písmen**, jinak to vede zmatení | ||
| - | uživatelů. | ||
| - | |||
| - | < | ||
| - | <Handler Realm=/ | ||
| - | AuthBy CheckLDAP | ||
| - | AuthLog authlogger | ||
| - | PostProcessingHook | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | Následující dva handlery jsou pro požadavky tunelované skrz TTLS | ||
| - | respektive PEAP, tato konstrukce je vynucena vnitřní architekturou | ||
| - | Radiatoru. Volání skriptu [[cs: | ||
| - | slouží k tomu, aby se v '' | ||
| - | neobjevovala vnější anonymní identita. | ||
| - | |||
| - | < | ||
| - | <Handler TunnelledByTTLS=1> | ||
| - | AuthBy CheckLDAP | ||
| - | AuthLog authlogger | ||
| - | |||
| - | PostProcessingHook file:"/ | ||
| - | PostAuthHook | ||
| - | </ | ||
| - | |||
| - | <Handler TunnelledByPEAP=1> | ||
| - | AuthBy CheckLDAP | ||
| - | AuthLog authlogger | ||
| - | |||
| - | PostProcessingHook file:"/ | ||
| - | PostAuthHook | ||
| - | </ | ||
| - | |||
| - | </ | ||
| - | |||
| - | ==== Požadavky návštěvníků ==== | ||
| - | |||
| - | |||
| - | Accouting týkající se našich návštěvníků může přijít jen z našich | ||
| - | AP. Opět ho ukládáme lokálně, jen do jiného souboru: | ||
| - | |||
| - | < | ||
| - | <Handler Request-Type=Accounting-Request> | ||
| - | AcctLogFileName / | ||
| - | </ | ||
| - | |||
| - | a také ho posíláme našemu centrálnímu accounting systému: | ||
| - | < | ||
| - | <AuthBy RADIUS> | ||
| - | <Host **accounting.cesnet.cz**> | ||
| - | | ||
| - | | ||
| - | | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | PreProcessingHook sub { CUI:: | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | Než k nám může od našich AP doputovat nějaký accounting o | ||
| - | návštěvníkovi, | ||
| - | |||
| - | < | ||
| - | <Handler Realm=/ | ||
| - | <AuthBy RADSEC> | ||
| - | Host radius1.eduroam.cz | ||
| - | Secret | ||
| - | |||
| - | MaxFailedRequests | ||
| - | MaxFailedGraceTime | ||
| - | FailureBackoffTime | ||
| - | |||
| - | UseTLS | ||
| - | |||
| - | TLS_CAPath | ||
| - | TLS_CertificateFile | ||
| - | TLS_CertificateType | ||
| - | TLS_PrivateKeyFile | ||
| - | |||
| - | TLS_CRLCheck | ||
| - | TLS_CRLFile / | ||
| - | TLS_ExpectedPeerName radius1.eduroam.cz | ||
| - | </ | ||
| - | |||
| - | Odpověď na ověření návštěvníkovy identity ale musí být zkontrolována, | ||
| - | AV páry od návštěvníkova domovského RADIUS serveru, také jestli se | ||
| - | nejedná o testovací účet. Jde tedy o kontrolu a úpravu AV párů, o to se stará [[cs: | ||
| - | check_reply.pl]]. | ||
| - | |||
| - | < | ||
| - | ReplyHook file:"/ | ||
| - | </ | ||
| - | |||
| - | AddToReplyIfNotExist | ||
| - | AddToReply | ||
| - | Tunnel-Medium-Type=1: | ||
| - | AddToRequestIfNotExists Operator-Name=1**cesnet.cz** | ||
| - | AddToRequest | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | ===== Ověření identity uživatele a jeho oprávnění používat eduroam ===== | ||
| - | |||
| - | Uživatelské účty jsou ukládány v LDAPu. Každý uživatel si musí před | ||
| - | tím, než může //eduroam// používat, nastavit sekundární heslo určené | ||
| - | jen pro tento účel. To, že tak může učinit, společně s tím, že nemá | ||
| - | nastaven specielní atribut '' | ||
| - | oprávnění //eduroam// používat. | ||
| - | |||
| - | < | ||
| - | <AuthBy LDAP2> | ||
| - | Identifier | ||
| - | </ | ||
| - | |||
| - | Radiator má implementovány dva mechanizmy, pomocí kterých se vyrovnává | ||
| - | s tím, že uživatelské jméno obsahuje realm. Prvním je příkaz | ||
| - | '' | ||
| - | určený k přepisu uživatelského jména. To bohužel působí problémy | ||
| - | autentikačním mechanizmům jako je MSCHAP, které uživatelské jméno | ||
| - | používají v chalenge-response mechanizmu při výpočtu otisku hesla. | ||
| - | |||
| - | Druhou možností je příkaz '' | ||
| - | který způsobí, že se hledá uživatel jen na základě uživatelského | ||
| - | jména, ale informace o realmu se neztrácí. Toto je správná funkce pro použití v // | ||
| - | |||
| - | < | ||
| - | UsernameMatchesWithoutRealm yes | ||
| - | </ | ||
| - | |||
| - | LDAP je provozován na tom samém počítači jako RADIUS server. Má | ||
| - | dedikovaného uživatele, který má oprávnění číst sekundární uživatelská | ||
| - | hesla (uložená v atributu '' | ||
| - | //eduroam// zablokován atributem '' | ||
| - | děje na straně LDAP serveru prostřednictvím ACL). | ||
| - | |||
| - | Každý uživatel dále může mít definován atribut | ||
| - | '' | ||
| - | specifické VLAN. Tato funkce se používá pouze pro testovací účty. | ||
| - | |||
| - | < | ||
| - | Host | ||
| - | |||
| - | AuthDN | ||
| - | AuthPassword | ||
| - | |||
| - | BaseDN | ||
| - | UsernameAttr | ||
| - | PasswordAttr | ||
| - | AuthAttrDef | ||
| - | Tunnel-Private-Group-ID, | ||
| - | </ | ||
| - | |||
| - | Jsou podporovány různé typy EAP metod. S ohledem na chybu v software | ||
| - | bezdrátových telefonů Cisco... musí být LEAP uveden jako první, protože | ||
| - | jinak tyto nejsou schopny se ověřit. | ||
| - | |||
| - | V případě, že nechcete používate EAP-TLS tak je dobré nastavit EAPTLS_CAPath tak aby ukazoval na prázdný adreář. Uživatelům je pak znemožněno experimentovat s ověřovaním pomocí certifikátů. | ||
| - | |||
| - | Pokud používáte SureServer EDU, CESNET TCS anebo jinou CA která používá několik mezilehlých CA, tak místo EAPTLS_CertificateFile použijte EAPTLS_CertificateChainFile který musí obsahovat certifikát certifikátu následovaný řetězem mezilehlých CA. Viz diskuze v listu [[https:// | ||
| - | |||
| - | < | ||
| - | EAPType | ||
| - | EAPTLS_CAPath | ||
| - | EAPTLS_CertificateFile | ||
| - | EAPTLS_CertificateType | ||
| - | EAPTLS_PrivateKeyFile | ||
| - | EAPTLS_MaxFragmentSize | ||
| - | EAPTLS_CRLCheck | ||
| - | EAPTLS_CRLFile | ||
| - | AutoMPPEKeys | ||
| - | EAPTLS_PEAPVersion | ||
| - | // | ||
| - | SSLeayTrace | ||
| - | </ | ||
| - | |||
| - | [[cs: | ||
| - | |||
| - | < | ||
| - | PostSearchHook | ||
| - | </ | ||
| - | |||
| - | V případě, že uživatel nemá nadefinován atribut | ||
| - | '' | ||
| - | |||
| - | je do odpovědi přidán AV pár | ||
| - | '' | ||
| - | hodnota je '' | ||
| - | Další atributy jsou k odpovědi přidány vždy. | ||
| - | |||
| - | < | ||
| - | AddToReplyIfNotExist | ||
| - | AddToReply | ||
| - | Tunnel-Medium-Type=1: | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | ===== Konfigurace CUI ===== | ||
| - | |||
| - | Chargeable-User-Identity (CUI) je unikátní identifikátor uživatele který IdP počítá pro každé SP. Pro výpočet se používá hash funkce, jejím vstupem je atribut Operator-Name, | ||
| - | |||
| - | Krom volání funkce CUI::add() pomocí správných hooků, jak je uvedeno výše. Je ještě třeba připravit mysql databázi a uvést její konfiguraci v souboru [[https:// | ||
| - | |||
| - | Databáze je využívána k dočasnému ukládání CUI a jejich doplňování do accounting paketů. | ||
| - | |||
| - | ===== Přílohy ===== | ||
| - | |||
| - | Kompletni konfigurace z tohoto clanku pro Raditator: [[cs: | ||
| - | |||
| - | Konfigurace Radiatoru používaná na TUL: {{: | ||
| - | |||
| - | Implemnetace [[https:// | ||
| - | |||
| - | Skript [[cs: | ||
| - | |||
| - | Skript [[cs: | ||
| - | |||
| - | Skript [[cs: | ||
| - | |||
| - | Skript [[cs: | ||
| - | |||
| - | |||