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:freeradius3 [2019/11/18 08:56] – uprava odkazu do mailoveho archivu 1141cd825e33f2281fc659232bcf401af2705c39@einfra.cesnet.cz | cs:spravce:pripojovani:radius:freeradius3 [2025/05/05 11:52] (aktuální) – [Konfigurace RadSecu] Jan Čáslavský | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
====== Instalace FreeRADIUSu 3.x.x pro eduroam ====== | ====== Instalace FreeRADIUSu 3.x.x pro eduroam ====== | ||
- | Návod Vás provede instalací RADIUS serveru [[http:// | + | Návod Vás provede instalací RADIUS serveru [[http:// |
- | V případě, že jste zkušený správce linuxových systémů a používáte Debian, můžete využít automatizovanou instalaci pomocí Ansible: [[cs: | + | {{page>[: |
===== Debian ===== | ===== Debian ===== | ||
+ | [[http:// | ||
- | ==== Buster ==== | + | <code bash> |
- | + | apt install freeradius | |
- | Buster obsahuje verzi 3.0.17, která trpí [[https:// | + | </code> |
- | chybou]], nicméně na základě [[https:// | + | |
- | + | ||
- | ==== Stretch ==== | + | |
- | + | ||
- | Stretch obsahuje verzi 3.0.12+dfsg-5+deb9u1 která je použitelná pro malé insituce typu střední školy, pokud zkrátí lifetime jak je popsáno v sekci o [[https:// | + | |
- | + | ||
- | + | ||
- | ===== CentOS 7 (RHEL 7) ===== | + | |
- | [[http:// | + | |
- | + | ||
- | <file> | + | |
- | yum -y install freeradius | + | |
- | </file> | + | |
- | + | ||
- | Na rozdíl od níže uvedeného návodu, kde jsou konfigurační soubory v adresáři ''/ | + | |
- | + | ||
- | V RHEL 7 je FreeRADIUS 3.0.4, tento návod vznikl primárně na verzi 3.0.11. Ve verzi 3.0.5 došlo ke [[https:// | + | |
====== Konfigurace freeRADIUS 3.x ====== | ====== Konfigurace freeRADIUS 3.x ====== | ||
Řádek 37: | Řádek 21: | ||
Oveření načítaných konfiguračních souborů je možné provést příkazem: | Oveření načítaných konfiguračních souborů je možné provést příkazem: | ||
- | <file> | + | <code ini> |
freeradius -XC | grep including | freeradius -XC | grep including | ||
- | </file> | + | </code> |
Všechny soubory z načítaných adresářů z příkazu výše je možné vylistovat pomocí příkazu: | Všechny soubory z načítaných adresářů z příkazu výše je možné vylistovat pomocí příkazu: | ||
- | <file> | + | <code bash> |
ls $(freeradius -XC | grep including | grep 'files in directory' | ls $(freeradius -XC | grep including | grep 'files in directory' | ||
- | </file> | + | </code> |
===== Hlavní konfigurační soubor ===== | ===== Hlavní konfigurační soubor ===== | ||
- | V souboru ''/ | + | V souboru ''/ |
- | <file> | + | <code ini> |
| | ||
auth = yes | auth = yes | ||
- | </file> | + | </code> |
ta první zajistí že že freeRADIUS je schopen zpracovat autentizační požadavky dlouhé i 10s, to pomůže když se vám v logu objevují hlášení '' | ta první zajistí že že freeRADIUS je schopen zpracovat autentizační požadavky dlouhé i 10s, to pomůže když se vám v logu objevují hlášení '' | ||
Řádek 63: | Řádek 47: | ||
==== Konfigurace realmů ==== | ==== Konfigurace realmů ==== | ||
- | Směrování požadavků se konfiguruje v souboru ''/ | + | Směrování požadavků se konfiguruje v souboru ''/ |
- | <file> | + | <code ini> |
realm domaci-realm.cz { | realm domaci-realm.cz { | ||
} | } | ||
Řádek 73: | Řádek 57: | ||
realm NULL { | realm NULL { | ||
- | virtual_server | + | |
} | } | ||
Řádek 81: | Řádek 65: | ||
realm " | realm " | ||
status_check = status-server | status_check = status-server | ||
- | auth_pool = tls | + | auth_pool = flr.eduroam.cz |
nostrip | nostrip | ||
} | } | ||
- | </file> | + | </code> |
==== Konfigurace EAP pro ověřování uživatelů ==== | ==== Konfigurace EAP pro ověřování uživatelů ==== | ||
Řádek 90: | Řádek 74: | ||
Doporučená konfigurace předpokládá použití PEAP-MSCHAPv2. V dalším textu předpokládáme použití stejného certifikátu pro PEAP a pro RadSec (ten se konfiguruje níže), není to ale podmínkou. | Doporučená konfigurace předpokládá použití PEAP-MSCHAPv2. V dalším textu předpokládáme použití stejného certifikátu pro PEAP a pro RadSec (ten se konfiguruje níže), není to ale podmínkou. | ||
- | Privátní klíč a certifikát uložte do / | + | Privátní klíč a certifikát uložte do / |
- | <file> | + | <code bash> |
chown root: | chown root: | ||
chmod 0640 < | chmod 0640 < | ||
- | </file> | + | chown root: |
+ | chmod 0640 < | ||
+ | </code> | ||
+ | |||
+ | V souboru ''/ | ||
- | V souboru ''/ | + | Nastavíme minimální verzi TLS na 1.2, předchozí verze protokolu mají známe bezpečnostní chyby. |
+ | Pokud máte freeradius ve verzi alespoň 3.0.26, můžete nastavit maximální verzi TLS na 1.3. Pokud máte dřívější verzi, nastavte na 1.2. | ||
- | <file> | + | <code ini> |
eap { | eap { | ||
... | ... | ||
Řádek 112: | Řádek 101: | ||
certificate_file = ${certdir}/ | certificate_file = ${certdir}/ | ||
... | ... | ||
- | | + | |
- | ... | + | |
- | #ca_path = ${cadir} | + | |
} | } | ||
} | } | ||
- | </file> | + | </code> |
==== Kontrola shody vnější a vnitřní EAP identity ==== | ==== Kontrola shody vnější a vnitřní EAP identity ==== | ||
- | Ačkoli konfigurace vlastního ověřování je popsána dále, podle použité uživatelské databazáze, | + | Ačkoli konfigurace vlastního ověřování je popsána dále, podle použité uživatelské databazáze, |
- | <file> | + | <code ini> |
... | ... | ||
authorize { | authorize { | ||
Řádek 130: | Řádek 118: | ||
.. | .. | ||
} | } | ||
- | </file> | + | </code> |
- | Následně v souboru ''/ | + | Následně v souboru ''/ |
- | <file> | + | <code ini> |
... | ... | ||
filter_inner_identity { | filter_inner_identity { | ||
Řádek 162: | Řádek 150: | ||
} | } | ||
... | ... | ||
- | </file> | + | </code> |
Celý soubor je k dispozici na adrese [[https:// | Celý soubor je k dispozici na adrese [[https:// | ||
- | == FreeRADIUS 3.0.4 == | + | === Možné problémy s kontrolou shody vnější |
- | + | ||
- | Pokud používáte verzi FR nižší než 3.0.12, tak vám výše uvedené nebude fungovat. Na RHEL 7 a odvozených distribucích máte k dispozici verzi 3.0.4, kde v '' | + | |
- | + | ||
- | Dále je potřeba do lokálního souboru '' | + | |
- | + | ||
- | < | + | |
- | ATTRIBUTE | + | |
- | ATTRIBUTE | + | |
- | </ | + | |
+ | Pokud jste přešli s vaším FreeRADIUSem z předchozí verze, může se stát, že dojde při vytváření konfigurace k záměně souboru ''/ | ||
+ | Projevuje se to tak, že monitoring vykazuje problém s testem FAKE-UID. Pak je nutné **soubor** ''/ | ||
==== Přiřazení VLAN vlastním uživatelům ==== | ==== Přiřazení VLAN vlastním uživatelům ==== | ||
V souboru '' | V souboru '' | ||
- | <file> | + | <code ini> |
post-auth { | post-auth { | ||
... | ... | ||
Řádek 191: | Řádek 172: | ||
... | ... | ||
} | } | ||
- | </file> | + | </code> |
==== Zamítání chybných realmů ==== | ==== Zamítání chybných realmů ==== | ||
- | Často se objevují realmy myabc.com, 3gppnetwork.org, | + | Často se objevují realmy myabc.com, 3gppnetwork.org, |
- | <file> | + | <code ini> |
authorize { | authorize { | ||
filter_eduroam_realms | filter_eduroam_realms | ||
Řádek 202: | Řádek 183: | ||
... | ... | ||
} | } | ||
- | </file> | + | </code> |
Když některé z pravidel požadavek uživatele zamítne, uvidíte to v log souboru. Viz příklad níže kde byl požadavek zamítnut protože realm byl doplněný mezerou.: | Když některé z pravidel požadavek uživatele zamítne, uvidíte to v log souboru. Viz příklad níže kde byl požadavek zamítnut protože realm byl doplněný mezerou.: | ||
- | <file> | + | <code ini> |
Sun Feb 5 17:04:57 2017 : Auth: (2256) Invalid user (Rejected: User-Name contains whitespace): | Sun Feb 5 17:04:57 2017 : Auth: (2256) Invalid user (Rejected: User-Name contains whitespace): | ||
- | </file> | + | </code> |
==== Definice AP klientů ==== | ==== Definice AP klientů ==== | ||
- | RADIUS server důvěřuje pouze klientům uvedeným v souboru ''/ | + | RADIUS server důvěřuje pouze klientům uvedeným v souboru ''/ |
- | <file> | + | <code ini> |
client sit_s_ap { | client sit_s_ap { | ||
secret = < | secret = < | ||
Řádek 221: | Řádek 202: | ||
Operator-Name = 1< | Operator-Name = 1< | ||
} | } | ||
- | </file> | + | </code> |
- | Vždy uveďte znak '' | + | Vždy uveďte znak '' |
Direktiva '' | Direktiva '' | ||
Řádek 232: | Řádek 213: | ||
==== Konfigurace RadSecu ==== | ==== Konfigurace RadSecu ==== | ||
- | Samotný RADIUS protokol se nepovažuje za bezpečný, proto je komunikace mezi RADIUSy transportována RadSec protokolem (TLS tunelem). Všechny požadavky pro cizí realmy jsou pak přesměrovány do tohoto tunelu. Pro samotný tunel zde používáme ten samý certifikát jako pro PEAP protokol, jsou [[cs: | + | Samotný RADIUS protokol se nepovažuje za bezpečný, proto je komunikace mezi RADIUSy transportována RadSec protokolem (TLS tunelem). Všechny požadavky pro cizí realmy jsou pak přesměrovány do tohoto tunelu. Pro samotný tunel zde používáme ten samý certifikát jako pro PEAP protokol, jsou [[cs: |
RadSec tunel používá dvě TCP spojení: | RadSec tunel používá dvě TCP spojení: | ||
- | <file> | + | <code ini> |
< | < | ||
- | < | + | < |
- | </file> | + | </code> |
=== Aktivace radsec protokolu ve FR3 === | === Aktivace radsec protokolu ve FR3 === | ||
- | <file> | + | <code bash> |
- | ln -s / | + | ln -s / |
- | </file> | + | </code> |
- | Upravte soubor ''/ | + | Upravte soubor ''/ |
- | Definice cerifikátů pro naslouchání na lokálním portu 2083: | + | Definice cerifikátů pro naslouchání na lokálním portu 2083:\\ |
- | + | <code ini> | |
- | <file> | + | |
listen { | listen { | ||
+ | #pokud budete chtit pro komunikaci s narodnim RADIUSem pouzit IPv6, zmente ipaddr z " | ||
+ | ipaddr = * | ||
... | ... | ||
- | tls { | + | clients |
- | | + | |
- | | + | |
- | | + | |
- | ... | + | |
- | | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | Nadefinujte klienta národního RADIUS serveru v sekci | + | |
- | < | + | |
- | clients | + | |
- | | + | |
- | ipaddr = 195.113.187.22 | + | |
- | proto = tls | + | |
- | secret = radsec | + | |
- | | + | |
... | ... | ||
- | } | + | limit { |
- | </ | + | |
- | + | | |
- | V této konfiguraci se historicky může vyskytovat sdílené tajemství '' | + | |
- | + | } | |
- | 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í: | + | |
- | < | + | |
- | home_server tls { | + | |
- | | + | |
- | | + | |
- | response_timeouts | + | |
- | | + | |
- | | + | |
- | revive_interval = 60 | + | |
- | + | ||
- | port = 2083 | + | |
- | type = auth | + | |
- | secret = radsec | + | |
- | proto = tcp | + | |
- | status_check = none | + | |
- | tls { | + | |
- | | + | |
- | | + | |
- | | + | |
- | ... | + | |
- | } | + | |
... | ... | ||
+ | tls { | ||
+ | private_key_file = ${cadir}/ | ||
+ | certificate_file = ${cadir}/ | ||
+ | ca_file | ||
+ | ... | ||
+ | tls_min_version = " | ||
+ | tls_max_version = " | ||
+ | } | ||
} | } | ||
- | </file> | + | </code> |
+ | Nadefinujte klienty národních RADIUS serverů: | ||
+ | <code ini> | ||
+ | clients flr.eduroam.cz { | ||
+ | client flr1.eduroam.cz { | ||
+ | ipaddr = 78.128.248.10 | ||
+ | #ipaddr = 2001: | ||
+ | proto = tls | ||
+ | secret = radsec | ||
- | === Bug: Fail to read multiple packets from an SSL session. === | + | limit { |
+ | max_connections | ||
+ | lifetime | ||
+ | idle_timeout | ||
+ | } | ||
+ | } | ||
- | Všechny verze FreeRADIUSu >=3.0 & <3.0.16 mají chybu kdy nejsou schopny přečíst z TCP socketu víc než jeden UDP paket, to vede k tomu že se autentizace roamujících uživatelů zpomalí případně zcela znemožní. Je to dobře vidět na [[https:// | + | client flr2.eduroam.cz { |
+ | ipaddr = 78.128.248.11 | ||
+ | #ipaddr = 2001: | ||
+ | proto = tls | ||
+ | secret = radsec | ||
- | Správným řešením je nasazení patchnuté verze ({{: | + | limit { |
+ | max_connections = 16 | ||
+ | lifetime | ||
+ | idle_timeout | ||
+ | | ||
+ | | ||
- | Malé instituce mohou vystačit se snížením [[https:// | + | client flr3.eduroam.cz { |
+ | ipaddr = 78.128.248.12 | ||
+ | #ipaddr = 2001: | ||
+ | proto = tls | ||
+ | secret = radsec | ||
- | **Debian Stretch**: Vyplněný [[https:// | + | limit { |
+ | max_connections = 16 | ||
+ | lifetime | ||
+ | idle_timeout | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
- | **Debian Jessie**: CESNETem provozovaný [[https://aaiwiki.cesnet.cz/deb/ | + | Na konci souboru nadefinujte servery národního RADIUSu, na které je možné posílat Access-Requesty návštěvníků. |
+ | <code ini> | ||
+ | home_server flr1.eduroam.cz { | ||
+ | ipaddr | ||
+ | # | ||
+ | port = 2083 | ||
+ | type = auth | ||
+ | secret | ||
+ | proto = tcp | ||
+ | status_check = none | ||
+ | tls { | ||
+ | private_key_file = ${cadir}/radius.key | ||
+ | certificate_file = ${cadir}/radius.crt | ||
+ | ca_file | ||
+ | tls_min_version | ||
+ | tls_max_version | ||
+ | fragment_size | ||
+ | } | ||
+ | } | ||
- | **RHEL**: Vyplněný [[https:// | + | home_server flr2.eduroam.cz { |
+ | ipaddr | ||
+ | # | ||
+ | port = 2083 | ||
+ | type = auth | ||
+ | secret | ||
+ | proto = tcp | ||
+ | status_check = none | ||
+ | tls { | ||
+ | private_key_file = ${cadir}/radius.key | ||
+ | certificate_file = ${cadir}/ | ||
+ | ca_file | ||
+ | tls_min_version | ||
+ | tls_max_version | ||
+ | fragment_size | ||
+ | } | ||
+ | } | ||
- | Diskuze v listu [[https:// | + | home_server flr3.eduroam.cz { |
- | + | ipaddr | |
- | === Bug: inbound RADIUS/TLS connection stalls === | + | # |
- | + | | |
- | **Nepoužívejte verzi 3.0.17** má chybu [[https://github.com/ | + | type = auth |
+ | secret | ||
+ | proto | ||
+ | status_check | ||
+ | tls { | ||
+ | | ||
+ | certificate_file = ${cadir}/radius.crt | ||
+ | ca_file | ||
+ | tls_min_version | ||
+ | tls_max_version | ||
+ | fragment_size | ||
+ | } | ||
+ | } | ||
- | < | + | home_server_pool flr.eduroam.cz { |
- | (0) Failed writing 0 bytes to SSL BIO: -1 | + | |
- | (0) Application data status 4 | + | |
+ | home_server = " | ||
+ | home_server = " | ||
+ | } | ||
</ | </ | ||
- | Na základě [[https:// | + | ==== Nastavení Load-Balance-Key ==== |
- | ==== Přiřazení konkrétní VLAN návštěvníkům ==== | + | Možná jste si všimli, že v sekci " |
- | V souboru '' | + | <code ini> |
- | + | authorize | |
- | <file> | + | .. |
- | post-proxy | + | |
- | ... | + | |
- | | + | |
- | | + | |
- | Tunnel-Type | + | |
- | Tunnel-Medium-Type := IEEE-802 | + | |
- | Tunnel-Private-Group-Id := 200 | + | |
- | } | + | |
} | } | ||
- | ... | + | .. |
- | </file> | + | } |
+ | </code> | ||
==== Konfigurace Operator-Name ==== | ==== Konfigurace Operator-Name ==== | ||
Attribut '' | Attribut '' | ||
- | ''/ | + | ''/ |
- | <file> | + | <code ini> |
authorize { | authorize { | ||
.. | .. | ||
Řádek 356: | Řádek 386: | ||
.. | .. | ||
} | } | ||
- | </file> | + | </code> |
Dále je třeba správně nakonfigurovat posílání atributu '' | Dále je třeba správně nakonfigurovat posílání atributu '' | ||
Řádek 363: | Řádek 393: | ||
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 '' | + | V souboru '' |
Aktivujte modul CUI: | Aktivujte modul CUI: | ||
- | <file> | + | <code bash> |
- | cd / | + | cd / |
ln -s ../ | ln -s ../ | ||
- | </file> | + | </code> |
- | V souboru ''/ | + | V souboru ''/ |
- | <file> | + | <code ini> |
post-auth { | post-auth { | ||
cui-inner | cui-inner | ||
... | ... | ||
- | </file> | + | </code> |
- | V souboru ''/ | + | V souboru ''/ |
- | <file> | + | <code ini> |
authorize { | authorize { | ||
... | ... | ||
Řádek 402: | Řádek 432: | ||
cui | cui | ||
... | ... | ||
- | </file> | + | </code> |
- | Pokud máte k dispozici více ruzných realmů (realm1.cz a realm2.cz), které sdílí uživatelské účty, je nutné, aby pro libovolné uživatelské jméno byla hodnota cui stejná pro včechny realmy. Docílíte toho následující konfigurací. V souboru ''/ | + | Pokud máte k dispozici více ruzných realmů (realm1.cz a realm2.cz), které sdílí uživatelské účty, je nutné, aby pro libovolné uživatelské jméno byla hodnota cui stejná pro včechny realmy. Docílíte toho následující konfigurací. V souboru ''/ |
- | <file> | + | <code ini> |
cui.post-auth { | cui.post-auth { | ||
if (!& | if (!& | ||
Řádek 414: | Řádek 444: | ||
} | } | ||
} | } | ||
- | </file> | + | </code> |
- | + | ||
+ | ==== Přiřazení konkrétní VLAN návštěvníkům ==== | ||
+ | |||
+ | V souboru '' | ||
+ | |||
+ | <code ini> | ||
+ | post-proxy { | ||
+ | ... | ||
+ | if (" | ||
+ | update proxy-reply { | ||
+ | Tunnel-Type := VLAN | ||
+ | Tunnel-Medium-Type := IEEE-802 | ||
+ | Tunnel-Private-Group-Id := 200 | ||
+ | } | ||
+ | } | ||
+ | ... | ||
+ | </code> | ||
==== 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 (volání fce '' | + | 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 '' |
- | <file> | + | <code ini> |
authorize { | authorize { | ||
filter_eduroam_realms | filter_eduroam_realms | ||
Řádek 435: | Řádek 482: | ||
... | ... | ||
} | } | ||
- | </file> | + | </code> |
==== Konfigurace F-TICKS ==== | ==== Konfigurace F-TICKS ==== | ||
- | Vytvořte soubor ''/ | + | Vytvořte soubor ''/ |
- | <file> | + | <code ini> |
linelog f_ticks { | linelog f_ticks { | ||
| | ||
Řádek 454: | Řádek 501: | ||
} | } | ||
} | } | ||
- | </file> | + | </code> |
Aktivujte ho: | Aktivujte ho: | ||
- | <file> | + | <code bash> |
- | cd / | + | cd / |
ln -s ../ | ln -s ../ | ||
- | </file> | + | </code> |
- | A začněte ho používat v ''/ | + | A začněte ho používat v ''/ |
- | <file> | + | <code ini> |
post-auth { | post-auth { | ||
.. | .. | ||
Řádek 472: | Řádek 519: | ||
.. | .. | ||
} | } | ||
- | </file> | + | </code> |
==== Vyloučení monitoringu z detailních logů ==== | ==== Vyloučení monitoringu z detailních logů ==== | ||
- | end2end monitoring prováděný nagiosem produkuje relativně dost logů, lze je odfiltrovat v souboru ''/ | + | end2end monitoring prováděný nagiosem produkuje relativně dost logů, lze je odfiltrovat v souboru ''/ |
- | <file> | + | <code ini> |
.. | .. | ||
authorize { | authorize { | ||
Řádek 522: | Řádek 569: | ||
} | } | ||
- | </file> | + | </code> |
==== Lokální testovací účet pro monitoring eduroam ==== | ==== Lokální testovací účet pro monitoring eduroam ==== | ||
- | Přidejte klienta, ze kterého probíhá testování. Do souboru ''/ | + | Přidejte klienta, ze kterého probíhá testování. Do souboru ''/ |
- | <file> | + | <code ini> |
- | client | + | client |
- | ipaddr = 195.113.233.246 | + | ipaddr |
- | secret = < | + | # |
- | shortname = ermon | + | secret |
- | add_cui = no | + | shortname |
+ | add_cui | ||
Operator-Name = 1< | Operator-Name = 1< | ||
} | } | ||
- | </file> | + | </code> |
- | Vždy uveďte znak '' | + | Vždy uveďte znak '' |
- | Správce instituce získá '' | + | Správce instituce získá '' |
- | V souboru ''/ | + | V souboru ''/ |
- | <file> | + | <code ini> |
< | < | ||
Tunnel-Type = VLAN, | Tunnel-Type = VLAN, | ||
Řádek 547: | Řádek 595: | ||
Tunnel-Medium-Type = IEEE-802, | Tunnel-Medium-Type = IEEE-802, | ||
Fall-Through = Yes | Fall-Through = Yes | ||
- | </file> | + | </code> |
Pokud nechcete uložit heslo v nešifrované podobě, tak nahraďte atribut '' | Pokud nechcete uložit heslo v nešifrované podobě, tak nahraďte atribut '' | ||
- | V souvislosti s testovacími účty potřebujete zajistit filtrování VLAN atributů z cizích institucí tak, aby hosté ve vaší síti padali do vámi nastavené VLAN. Následující úprava souboru ''/ | + | V souvislosti s testovacími účty potřebujete zajistit filtrování VLAN atributů z cizích institucí tak, aby hosté ve vaší síti padali do vámi nastavené VLAN. Následující úprava souboru ''/ |
- | <file> | + | <code ini> |
Tunnel-Type == VLAN, | Tunnel-Type == VLAN, | ||
Tunnel-Private-Group-Id == 666, | Tunnel-Private-Group-Id == 666, | ||
Tunnel-Medium-Type == IEEE-802 | Tunnel-Medium-Type == IEEE-802 | ||
- | </file> | + | </code> |
Celý soubor je ke stažení na adrese: [[https:// | Celý soubor je ke stažení na adrese: [[https:// | ||
Řádek 565: | Řádek 613: | ||
Funkci FreeRADIUS serveru lze otestovat nástrojem radtest (v souboru ''/ | Funkci FreeRADIUS serveru lze otestovat nástrojem radtest (v souboru ''/ | ||
- | <file> | + | <code bash> |
radtest < | radtest < | ||
- | </file> | + | </code> |
+ | |||
+ | Tento test zkouší pouze PAP, základní ověření funkce RADIUSu. Kompletní test lze provést pomocí [[https:// | ||
===== Blokování uživatelů ===== | ===== Blokování uživatelů ===== | ||
Řádek 575: | Řádek 625: | ||
==== Blokování podle uživatelského jména ==== | ==== Blokování podle uživatelského jména ==== | ||
- | V souboru ''/ | + | V souboru ''/ |
- | <file> | + | <code ini> |
if(User-Name == " | if(User-Name == " | ||
reject | reject | ||
Řádek 587: | Řádek 637: | ||
ok = return | ok = return | ||
} | } | ||
- | </file> | + | </code> |
==== Blokování celého realmu ==== | ==== Blokování celého realmu ==== | ||
- | V souboru ''/ | + | V souboru ''/ |
- | <file> | + | <code ini> |
if(User-Name == / | if(User-Name == / | ||
reject | reject | ||
Řádek 604: | Řádek 654: | ||
ok = return | ok = return | ||
} | } | ||
- | </file> | + | </code> |
Řádek 610: | Řádek 660: | ||
==== Blokování podle MAC adresy ==== | ==== Blokování podle MAC adresy ==== | ||
- | V souboru ''/ | + | V souboru ''/ |
- | <file> | + | <code ini> |
# blokovani konkretni adresy | # blokovani konkretni adresy | ||
if (Calling-Station-Id == " | if (Calling-Station-Id == " | ||
Řádek 628: | Řádek 678: | ||
ok = return | ok = return | ||
} | } | ||
- | </file> | + | </code> |
==== Blokování podle Chargeable-User-Identity ==== | ==== Blokování podle Chargeable-User-Identity ==== | ||
- | V souboru ''/ | + | V souboru ''/ |
- | <file> | + | <code ini> |
post-proxy { | post-proxy { | ||
if (" | if (" | ||
Řádek 646: | Řádek 696: | ||
... | ... | ||
} | } | ||
- | </file> | + | </code> |
Atribut Chargeable-User-Identity konkrétního uživatele je možné dohledat v generovaném F-TICKS logu (hodnota CUI) nebo v reply-detail log souborech. Soubory jsou uloženy v ''/ | Atribut Chargeable-User-Identity konkrétního uživatele je možné dohledat v generovaném F-TICKS logu (hodnota CUI) nebo v reply-detail log souborech. Soubory jsou uloženy v ''/ | ||
Řádek 655: | Řádek 705: | ||
==== Když je vše v pořádku ==== | ==== Když je vše v pořádku ==== | ||
- | Radius | + | RADIUS |
- | <file> | + | <code ini> |
- | # netstat -ltupn | + | |
Active Internet connections (only servers) | Active Internet connections (only servers) | ||
Proto Recv-Q Send-Q Local Address | Proto Recv-Q Send-Q Local Address | ||
Řádek 669: | Řádek 718: | ||
udp 0 0 127.0.0.1: | udp 0 0 127.0.0.1: | ||
udp 0 0 127.0.0.1: | udp 0 0 127.0.0.1: | ||
- | </file> | + | </code> |
- | V navázaných spojeních jsou dvě RadSec spojení z/na národní radius | + | V navázaných spojeních jsou RadSec |
- | <file> | + | <code ini> |
- | # netstat -t | + | |
Active Internet connections (w/o servers) | Active Internet connections (w/o servers) | ||
Proto Recv-Q Send-Q Local Address | Proto Recv-Q Send-Q Local Address | ||
- | tcp 0 0 radtest.ujep.cz: | + | tcp 0 0 radtest.ujep.cz: |
- | tcp 0 0 radtest.ujep.cz: | + | tcp 0 0 radtest.ujep.cz: |
- | </file> | + | tcp 0 0 radtest.ujep.cz: |
+ | tcp 0 0 radtest.ujep.cz: | ||
+ | tcp 0 0 radtest.ujep.cz: | ||
+ | tcp 0 0 radtest.ujep.cz: | ||
+ | </code> | ||
Přicházejí požadavky a radius vrací "Login OK" | Přicházejí požadavky a radius vrací "Login OK" | ||
- | <file> | + | <code bash> |
# tail -f / | # tail -f / | ||
(69) Thu Dec 5 21:35:38 2013 : Auth: Login OK: [test@vsb.cz] (from client ermon port 0 cli 70-6F-6C-69-73-68) | (69) Thu Dec 5 21:35:38 2013 : Auth: Login OK: [test@vsb.cz] (from client ermon port 0 cli 70-6F-6C-69-73-68) | ||
- | </file> | + | </code> |
=== Test cizího účtu === | === Test cizího účtu === | ||
- | Pokud není vyloučen z logování monitoring, uvidíte v logu průběžné ověřování. Můžete zkusit simulovat dotaz na cizí účet, avšak protože neznáte správné heslo, bude požadavek odmítnut. Akce se hodí pro vyprovokování navázání spojení na národní RADIUS server (např. po restartu lokálního FreeRADIUS serveru): | + | Pokud není vyloučen z logování monitoring, uvidíte v logu průběžné ověřování. Můžete zkusit simulovat dotaz na cizí účet, avšak protože neznáte správné heslo, bude požadavek odmítnut. Se správným heslem bude požadavek akceptován, |
- | <file> | + | <code bash> |
radtest test@vsb.cz HesloNevim 127.0.0.1 1812 testing123 | radtest test@vsb.cz HesloNevim 127.0.0.1 1812 testing123 | ||
- | </file> | + | </code> |
+ | |||
+ | Pro lepší otestování cizího účtu se hodí [[https:// | ||
===== Napojení na systémy správy identit ===== | ===== Napojení na systémy správy identit ===== | ||
Řádek 699: | Řádek 753: | ||
* [[: | * [[: | ||
+ | ===== Dokončení konfigurace ===== | ||
+ | Po dokončení konfigurace je potřeba provést kontrolu syntaxe freeradius | ||
+ | <code bash> | ||
+ | freeradius -XC | ||
+ | </ | ||
+ | Pokud předchozí akce nenahlásí žádnou chybu je potřeba restartovat démona | ||
+ | <code bash> | ||
+ | / | ||
+ | </ | ||
+ | Po těchto krocích by měl fungovat i test účet a po zhruba 10 minutách by se měl rozběhnout i RADSEC | ||
===== Kontrola syntaxe konfiguračních souborů ===== | ===== Kontrola syntaxe konfiguračních souborů ===== | ||
Kontrolu syntaxe můžete vyvolat přímo pomocí: | Kontrolu syntaxe můžete vyvolat přímo pomocí: | ||
- | <file> | + | <code bash> |
- | radiusd | + | freeradius |
- | </file> | + | </code> |
nebo skriptem: | nebo skriptem: | ||
- | <file> | + | <code bash> |
/ | / | ||
- | </file> | + | </code> |
===== Restart démona ===== | ===== Restart démona ===== | ||
- | V systému Debian restartujte | + | Restartujte |
- | <file> | + | <code bash> |
- | / | + | |
- | </ | + | |
- | + | ||
- | V systému CentOS/RHEL restartujte démona příkazem: | + | |
- | + | ||
- | <file> | + | |
systemctl restart radiusd.service | systemctl restart radiusd.service | ||
- | </file> | + | </code> |
<note tip> | <note tip> | ||
Řádek 732: | Řádek 789: | ||
Nejdříve si ověřte, že freeradius neběží, a pak spusťte: | Nejdříve si ověřte, že freeradius neběží, a pak spusťte: | ||
- | <file> | + | <code bash> |
freeradius -fxx -l stdout | freeradius -fxx -l stdout | ||
- | </file> | + | </code> |
V případě, že byste potřebovali k debugu přidat aktuální časové údaje, aby bylo jasné, kdy se co dělo, můžete využít příkaz: | V případě, že byste potřebovali k debugu přidat aktuální časové údaje, aby bylo jasné, kdy se co dělo, můžete využít příkaz: | ||
- | <file> | + | <code bash> |
freeradius -fxxx -l stdout | freeradius -fxxx -l stdout | ||
- | </file> | + | </code> |
Pozn. ''/ | Pozn. ''/ |