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 Následující verze Obě strany příští revize | ||
cs:spravce:pripojovani:radius:freeradius3 [2018/03/14 12:21] jan.tomasek@cesnet.cz [Lokální testovací účet pro monitoring eduroam] |
cs:spravce:pripojovani:radius:freeradius3 [2018/09/23 08:33] jan.tomasek@cesnet.cz [Normalizace MAC adres] |
||
---|---|---|---|
Řádek 172: | Řádek 172: | ||
filter_inner_identity { | filter_inner_identity { | ||
... | ... | ||
- | if (&outer.request:User-Name =~ /@([^@]+)$/) { | + | if (&outer.request:User-Name != &User-Name) { |
- | update request { | + | # |
- | Outer-Realm-Name = "%{1}" | + | # Get the outer realm. |
- | } | + | # |
+ | if (&outer.request:User-Name =~ /@([^@]+)$/) { | ||
+ | update request { | ||
+ | Outer-Realm-Name = "%{1}" | ||
+ | } | ||
- | # | + | # |
- | # When we have an outer realm name, the user portion | + | # When we have an outer realm name, the user portion |
- | # MUST either be empty, or begin with "anon". | + | # MUST either be empty, or begin with "anon". |
- | # | + | # |
- | # We don't check for the full "anonymous", because | + | # We don't check for the full "anonymous", because |
- | # some vendors don't follow the standards. | + | # some vendors don't follow the standards. |
- | # | + | # |
- | + | if (&outer.request:User-Name !~ /^anonymous@/) { | |
- | # eduroam.cz: What vendors? | + | update request { |
- | + | Module-Failure-Message = "User-Name is not anonymized" | |
- | if (&outer.request:User-Name !~ /^anonymous@/) { | + | } |
- | update request { | + | reject |
- | Module-Failure-Message = "User-Name is not anonymized" | + | } |
- | } | + | } |
- | reject | + | |
- | } | + | |
... | ... | ||
</file> | </file> | ||
Řádek 226: | Řádek 228: | ||
==== Zamítání chybných realmů ==== | ==== Zamítání chybných realmů ==== | ||
- | Často se objevují realmy myabc.com, 3gppnetwork.org, ... také se objevuje mezera za realmem (androidí klávesnice a doplňování). Uživatele kteří udělají takovou chybu není možné ověřit a je lepší je odfiltrovat co nejdříve. Stáhněte si soubor [[https://github.com/CESNET/ansible-freeradius/blob/master/files/eduroam-realm-checks|eduroam-realm-checks]] do ''/etc/freeradius/policy.d/'' a potom v ''/etc/freeradius/sites-enabled/defaults'': | + | Často se objevují realmy myabc.com, 3gppnetwork.org, ... také se objevuje mezera za realmem (androidí klávesnice a doplňování). Uživatele kteří udělají takovou chybu není možné ověřit a je lepší je odfiltrovat co nejdříve. Stáhněte si soubor [[https://github.com/CESNET/ansible-freeradius/blob/master/files/eduroam-realm-checks|eduroam-realm-checks]] do ''/etc/freeradius/policy.d/'' a potom v ''/etc/freeradius/sites-enabled/default'': |
<file> | <file> | ||
Řádek 305: | Řádek 307: | ||
</file> | </file> | ||
- | V této konfiguraci se historicky může vyskytovat sdílené tajemství ''secret = mysecret''. Veškeré nové instalace používají ''secret = radsec''. Správné tajemství pro váš server naleznete v [[https://caas.cesnet.cz/caas|CAAS]]. V případě, že provádíte rekonfiguraci starší instalace RADIUS serveru se sdíleným tajemstvím ''secret = mysecret'', požádejte o změnu sdíleného tajemství v naší konfiguraci na novější variantu. | + | V této konfiguraci se historicky může vyskytovat sdílené tajemství ''secret = mysecret''. Veškeré nové instalace používají ''secret = radsec''. Správné tajemství pro váš server naleznete v [[https://caas.cesnet.cz/caas|CAAS]] (položka "Inf. RADIUS1 secret"). V případě, že provádíte rekonfiguraci starší instalace RADIUS serveru se sdíleným tajemstvím ''secret = mysecret'', požádejte o změnu sdíleného tajemství v naší konfiguraci na novější variantu. |
Definice certifikátů pro klienta národního RADIUS serveru, kterého přiřaďte k RadSec tunelu (podruhé použití zmíněných klíčů a ca_file) a upravte parametry tak aby nadřazený RADIUS nemohl být označen jako nefunkční: | Definice certifikátů pro klienta národního RADIUS serveru, kterého přiřaďte k RadSec tunelu (podruhé použití zmíněných klíčů a ca_file) a upravte parametry tak aby nadřazený RADIUS nemohl být označen jako nefunkční: | ||
Řádek 339: | Řádek 341: | ||
Správným řešením je nasazení patchnuté verze ({{:cs:spravce:pripojovani:radius:read-multiple-packet-from-radsec.patch.zip|}}). | Správným řešením je nasazení patchnuté verze ({{:cs:spravce:pripojovani:radius:read-multiple-packet-from-radsec.patch.zip|}}). | ||
- | Malé instituce mohou vystačit se snížením [[https://github.com/CESNET/ansible-freeradius/blob/master/templates/tls.j2#L49|lifetime]] z nekonečna na 600s. | + | Malé instituce mohou vystačit se snížením [[https://github.com/CESNET/ansible-freeradius/blob/master/templates/tls.j2#L49|lifetime]] z nekonečna na 600s v souboru ''sites-enabled/tls.conf''. |
**Debian Stretch**: Vyplněný [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=880913|bugreport #880913]], čeká na vydání verze 3.0.16. | **Debian Stretch**: Vyplněný [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=880913|bugreport #880913]], čeká na vydání verze 3.0.16. | ||
Řádek 348: | Řádek 350: | ||
Diskuze v listu [[https://random.cesnet.cz/pipermail/eduroam-admin/2017-November/001382.html|eduroam-admin]]. | Diskuze v listu [[https://random.cesnet.cz/pipermail/eduroam-admin/2017-November/001382.html|eduroam-admin]]. | ||
+ | |||
+ | === Bug: inbound RADIUS/TLS connection stalls === | ||
+ | |||
+ | **Nepoužívejte verzi 3.0.17** má chybu [[https://github.com/FreeRADIUS/freeradius-server/issues/2270|inbound RADIUS/TLS connection stalls]] projevuje se to hláškami v logu: | ||
+ | |||
+ | <code> | ||
+ | (0) Failed writing 0 bytes to SSL BIO: -1 | ||
+ | (0) Application data status 4 | ||
+ | </code> | ||
==== Přiřazení konkrétní VLAN návštěvníkům ==== | ==== Přiřazení konkrétní VLAN návštěvníkům ==== | ||
Řádek 383: | Řádek 394: | ||
Chargeable-User-Identity (CUI) je vypočítaný atribut, který se počítá jako SHA1 hash z vnitřní EAP identity, hodnoty atributu Operator-Name který posílá SP a soli. Uživatel nedovede hodnotu CUI změnit a tak má SP k dispozici unikátní identitikátor pro případné blokování uživatele. Současně ale SP různých organizací (podle hodnoty Operator-Name) dostávají různé hodnoty CUI pro jednoho uživatele a není tak narušeno soukromí uživatele. | Chargeable-User-Identity (CUI) je vypočítaný atribut, který se počítá jako SHA1 hash z vnitřní EAP identity, hodnoty atributu Operator-Name který posílá SP a soli. Uživatel nedovede hodnotu CUI změnit a tak má SP k dispozici unikátní identitikátor pro případné blokování uživatele. Současně ale SP různých organizací (podle hodnoty Operator-Name) dostávají různé hodnoty CUI pro jednoho uživatele a není tak narušeno soukromí uživatele. | ||
- | V souboru ''policy.d/cui'' zvolte náhodný řetězec ''cui_hash_key'' - pokud provozujete v organizaci víc než jeden RADIUS server, tak musí mít oba shodnout hodnotu tak aby oba vaše RADIUS servery poskytovali pro jednoho uživatele tu samou hodnotu CUI. Dále v tom samém souboru nastavte ''cui_require_operator_name = "yes"'' tím zajistíte že CUI bude váš RADIUS posílat pouze těm SP kteří vyplňují Operator-Name. | + | V souboru ''policy.d/cui'' zvolte náhodný řetězec ''cui_hash_key'' - pokud provozujete v organizaci víc než jeden RADIUS server, tak musí mít oba shodnout hodnotu tak aby oba vaše RADIUS servery poskytovali pro jednoho uživatele tu samou hodnotu CUI. Dále v tom samém souboru nastavte ''cui_require_operator_name = yes'', tím zajistíte že CUI bude váš RADIUS posílat pouze těm SP, kteří vyplňují Operator-Name. |
Aktivujte modul CUI: | Aktivujte modul CUI: | ||
Řádek 438: | Řádek 449: | ||
==== Normalizace MAC adres ==== | ==== Normalizace MAC adres ==== | ||
- | Formáty adres můžou být různé - pro zjednodušení můžeme využít normalizaci MAC adres na jediný formát, se kterým budeme následně adresy porovnávat. Přidáme definici normalizace do souboru ''/etc/freeradius/sites-enabled/default'' do sekcí authorize a preacct: | + | Formáty adres můžou být různé - pro zjednodušení můžeme využít normalizaci MAC adres na jediný formát, se kterým budeme následně adresy porovnávat. Přidáme definici normalizace (volání fce ''rewrite_calling_station_id'') do souboru ''/etc/freeradius/sites-enabled/default'' do sekcí authorize a preacct: |
<file> | <file> | ||
Řádek 558: | Řádek 569: | ||
Vždy uveďte znak ''1'' před vaším realmem, více informací viz [[https://tools.ietf.org/html/rfc5580#page-12|RFC5580]]. Uvádějte váš realm, ermon simuluje další z AP ve vaší WiFi síti. | Vždy uveďte znak ''1'' před vaším realmem, více informací viz [[https://tools.ietf.org/html/rfc5580#page-12|RFC5580]]. Uvádějte váš realm, ermon simuluje další z AP ve vaší WiFi síti. | ||
- | Správce instituce získá ''sdilene_heslo'' po přihlášení do [[https://caas2.cesnet.cz/caas/hradmin|CAAS:hradmin]] vyhledáním svého RADIUS serveru. | + | Správce instituce získá ''sdilene_heslo'' po přihlášení do [[https://caas2.cesnet.cz/caas/hradmin|CAAS:hradmin]] vyhledáním svého RADIUS serveru (položka "Mon. RADIUS1 secret"). |
V souboru ''/etc/freeradius/users'' vytvořte lokální testovací účet. U tohoto účtu nastavte atributy tak, aby síťový prvek (bezdrátový bod, přepínač) nasměroval klienta do VLAN 666. Ta by v české části eduroam neměla nikam vést, tudíž nejsou testovací účty zneužitelné pro běžné připojení: | V souboru ''/etc/freeradius/users'' vytvořte lokální testovací účet. U tohoto účtu nastavte atributy tak, aby síťový prvek (bezdrátový bod, přepínač) nasměroval klienta do VLAN 666. Ta by v české části eduroam neměla nikam vést, tudíž nejsou testovací účty zneužitelné pro běžné připojení: | ||
Řádek 648: | Řádek 659: | ||
ok = return | ok = return | ||
} | } | ||
- | </file> | ||
- | |||
- | Formáty adres můžou být různé - pro zjednodušení můžeme využít normalizaci MAC adres na jediný formát, se kterým budeme následně adresy porovnávat. Přidáme definici normalizace do souboru ''/etc/freeradius/sites-enabled/default'' do sekcí authorize a preacct: | ||
- | |||
- | <file> | ||
- | authorize { | ||
- | filter_eduroam_realms | ||
- | filter_username | ||
- | rewrite_calling_station_id | ||
- | ... | ||
- | } | ||
- | |||
- | ... | ||
- | |||
- | preacct { | ||
- | preprocess | ||
- | rewrite_calling_station_id | ||
- | ... | ||
- | } | ||
</file> | </file> | ||