cs:spravce:pripojovani:radius:freeradius3

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
cs:spravce:pripojovani:radius:freeradius3 [2019/06/13 09:45]
Jan Tomášek [Konfigurace EAP pro ověřování uživatelů]
cs:spravce:pripojovani:radius:freeradius3 [2020/04/15 15:12] (current)
Vít Adámek Doplnění rad_eap_test k Test cizího účtu
Line 6: Line 6:
  
 ===== Debian ===== ===== Debian =====
 +
 +==== Buster ====
 +
 +Buster obsahuje verzi 3.0.17, která trpí [[https://​www.eduroam.cz/​cs/​spravce/​pripojovani/​radius/​freeradius3#​buginbound_radiustls_connection_stalls|
 +chybou]], nicméně na základě [[https://​random.cesnet.cz/​mailman/​private/​eduroam-admin/​2019-July/​002654.html|experimetnů]] se zdá že v Debianu je tato chyba odstraněna.
  
 ==== Stretch ==== ==== Stretch ====
Line 11: Line 16:
 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://​www.eduroam.cz/​cs/​spravce/​pripojovani/​radius/​freeradius3#​bug%EF%BF%BCfail_to_read_multiple_packets_from_an_ssl_session|chybách FreeRADIUSu]]. 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://​www.eduroam.cz/​cs/​spravce/​pripojovani/​radius/​freeradius3#​bug%EF%BF%BCfail_to_read_multiple_packets_from_an_ssl_session|chybách FreeRADIUSu]].
  
-==== Jessie ==== 
- 
-[[http://​freeradius.org|FreeRADIUS 3.x]] není součástí stré stabilní verze Debianu. 
- 
-=== CESNETem udržovaný repozitář === 
- 
-Pokud nechcete překládat vlastní balíčky, můžete použít CESNETem udržovaný repozitář. 
- 
-<​file>​ 
-deb https://​aaiwiki.cesnet.cz/​deb/​jessie ./ 
-</​file>​ 
- 
-=== Kompilace balíčků === 
- 
-Pokud si budete brát zdrojáky z GITu je třeba dát pozor na různé bugy, viz dvě sekce "​Bug:"​ na konci dokumentu. 
- 
-<​file>​ 
-mkdir -p /opt/src 
-cd /opt/src/ 
-wget ftp://​ftp.freeradius.org/​pub/​freeradius/​freeradius-server-3.0.12.tar.gz 
-tar xvzf freeradius-server-3.0.12.tar.gz ​ 
-</​file>​ 
- 
-== Příprava prostředí pro překlad == 
- 
-<​file>​ 
-apt-get install ssl-cert build-essential debhelper ​ quilt autotools-dev libpam0g-dev libmysqlclient-dev libgdbm-dev libldap2-dev libsasl2-dev libiodbc2-dev libkrb5-dev libperl-dev libpcap-dev python-dev libreadline-dev libsnmp-dev libpq-dev libssl-dev libtalloc-dev libyubikey-dev libsqlite3-dev 
-</​file>​ 
- 
-== Vygenerování balíčků == 
- 
-<​file>​ 
-cd freeradius-server-3.0.12 
-fakeroot dpkg-buildpackage -b -uc 
-</​file>​ 
- 
-Vygenerované balíčky najdete v adresáři /opt/src/: 
-<​file>​ 
-freeradius_3.0.12+git_amd64.deb 
-freeradius-common_3.0.12+git_all.deb 
-freeradius-dbg_3.0.12+git_amd64.deb 
-... 
-</​file>​ 
- 
-== Instalace potřebných balíčků == 
- 
-<​file>​ 
-dpkg -i freeradius_3.0.12+git_amd64.deb freeradius-common_3.0.12+git_all.deb freeradius-utils_3.0.12+git_amd64.deb libfreeradius3_3.0.12+git_amd64.deb freeradius-ldap_3.0.12+git_amd64.deb 
-</​file>​ 
  
 ===== CentOS 7 (RHEL 7) ===== ===== CentOS 7 (RHEL 7) =====
Line 68: Line 24:
 </​file>​ </​file>​
  
-Na rozdíl od níže uvedeného návodu, kde jsou konfigurační soubory v adresáři ''/​etc/​freeradius'',​ se konfigurační soubory nacházejí v adresáři ''/​etc/​raddb''​.+Na rozdíl od níže uvedeného návodu, kde jsou konfigurační soubory v adresáři ''/​etc/​freeradius/3.0'',​ se konfigurační soubory nacházejí v adresáři ''/​etc/​raddb''​.
  
 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://​github.com/​FreeRADIUS/​freeradius-server/​blob/​v3.0.x_state_tree/​raddb/​radiusd.conf.in#​L122|změně escapování regulárních výrazů]]. Pokud kopírujete z tohoto návodu tak budete muset tam kde je v regulárním výrazu "​\"​ dát "​\\"​. 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://​github.com/​FreeRADIUS/​freeradius-server/​blob/​v3.0.x_state_tree/​raddb/​radiusd.conf.in#​L122|změně escapování regulárních výrazů]]. Pokud kopírujete z tohoto návodu tak budete muset tam kde je v regulárním výrazu "​\"​ dát "​\\"​.
Line 93: Line 49:
 ===== Hlavní konfigurační soubor ===== ===== Hlavní konfigurační soubor =====
  
-V souboru ''/​etc/​freeradius/​radiusd.conf''​ najděte následující dvě hodnoty a upravte je jak uvádíme:+V souboru ''/​etc/​freeradius/3.0/​radiusd.conf''​ najděte následující dvě hodnoty a upravte je jak uvádíme:
  
 <​file>​ <​file>​
Line 107: Line 63:
  
 ==== Konfigurace realmů ==== ==== Konfigurace realmů ====
-Směrování požadavků se konfiguruje v souboru ''/​etc/​freeradius/​proxy.conf''​. Nastavte tento soubor tak, aby požadavky s vaším realmem považoval za lokální požadavky a aby požadavky bez realmu zamítal. Dále nastavte že všechny požadavky budou směrovány na ''​tls''​ auth_pool který budeme konfigurovat později.+Směrování požadavků se konfiguruje v souboru ''/​etc/​freeradius/3.0/​proxy.conf''​. Nastavte tento soubor tak, aby požadavky s vaším realmem považoval za lokální požadavky a aby požadavky bez realmu zamítal. Dále nastavte že všechny požadavky budou směrovány na ''​tls''​ auth_pool který budeme konfigurovat později.
  
 <​file>​ <​file>​
Line 134: Line 90:
 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 /​etc/​freeradius/​certs/​ a tajnému klíči nastavte vlastníka a skupinu na freerad s právy 0640 (aby nebyl čitelný pro běžné uživatele či programy v systému). Na systéch CetOS/RHEL použijte uživatele radiusd. V případě že certifikát RADIUS serveru vydala mezilehlá CA, která není běžně předinstalována je třeba ji přidat do souboru ''​radius.crt''​ za certifikát RADIUS serveru. To se týká např. TCS certfikátů poskytovaných CESNETem. ​+Privátní klíč a certifikát uložte do /​etc/​freeradius/3.0/certs/ a tajnému klíči nastavte vlastníka a skupinu na freerad s právy 0640 (aby nebyl čitelný pro běžné uživatele či programy v systému). Na systéch CetOS/RHEL použijte uživatele radiusd. V případě že certifikát RADIUS serveru vydala mezilehlá CA, která není běžně předinstalována je třeba ji přidat do souboru ''​radius.crt''​ za certifikát RADIUS serveru. To se týká např. TCS certfikátů poskytovaných CESNETem. ​
  
 <​file>​ <​file>​
Line 141: Line 97:
 </​file>​ </​file>​
  
-V souboru ''/​etc/​freeradius/​mods-available/​eap''​ nastavte vlastní soubory s certifikáty pro PEAP. Zakomentujte ''​ca_file''​ a ''​ca_path''​. Změnte defaultní EAP metodu z MD5 na PEAP, tím přestane FR nabízet MD5 jako první metodu a zabavíte se varování "​server is offering unsafe method MD5-Challenge"​ v monitoringu.+V souboru ''/​etc/​freeradius/3.0/​mods-available/​eap''​ nastavte vlastní soubory s certifikáty pro PEAP. Zakomentujte ''​ca_file''​ a ''​ca_path''​. Změnte defaultní EAP metodu z MD5 na PEAP, tím přestane FR nabízet MD5 jako první metodu a zabavíte se varování "​server is offering unsafe method MD5-Challenge"​ v monitoringu.
  
 +Dále nastavujeme maximální verzi TLS na 1.2, implemetace TLS 1.3 není pro EAP standartizovaná a v některé kombinace klient-server způsobí selhávání v ověřování.
 +
 +Zvažte vypnutí TLS < 1.2, předchozí verze protokolu mají známe bezpečnostní chyby.
  
 <​file>​ <​file>​
Line 159: Line 118:
     ...     ...
     #ca_path = ${cadir}     #ca_path = ${cadir}
 +    ​
 +    #​tls_min_version = "​1.2"​
 +    tls_max_version = "​1.2"​
   }   }
 } }
Line 165: Line 127:
 ==== 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,​ tak kontrolu shody vnější a vnitřní EAP identity konfigurujeme shodně. V souboru ''/​etc/​freeradius/​sites-enabled/​inner-tunnel''​ odkomentujte řádek s ''​filter_inner_identity'':​+Ačkoli konfigurace vlastního ověřování je popsána dále, podle použité uživatelské databazáze,​ tak kontrolu shody vnější a vnitřní EAP identity konfigurujeme shodně. V souboru ''/​etc/​freeradius/3.0/​sites-enabled/​inner-tunnel''​ odkomentujte řádek s ''​filter_inner_identity'':​
  
 <​file>​ <​file>​
Line 176: Line 138:
 </​file>​ </​file>​
  
-Následně v souboru ''/​etc/​freeradius/​policy.d/​filter''​ ve funkci ''​filter_inner_identity''​ upravte kontrolu anonymí identity. V defaultu freeRadius má uvedeno ''​if (&​outer.request:​User-Name !~ /​^(anon|@)/​)''​ to znamená že akceptuje uživatelská jména s prefixem anon a uživatelům to skýtá jistou volnost, např. anon1@realm.cz,​ anon2@realm.cz,​ ... a @realm.cz. To komplikuje ​ blokování v případě bezpečnostních incidentů. Umožněte pouze anonymous@realm.cz:​+Následně v souboru ''/​etc/​freeradius/3.0/​policy.d/​filter''​ ve funkci ''​filter_inner_identity''​ upravte kontrolu anonymí identity. V defaultu freeRadius má uvedeno ''​if (&​outer.request:​User-Name !~ /​^(anon|@)/​)''​ to znamená že akceptuje uživatelská jména s prefixem anon a uživatelům to skýtá jistou volnost, např. anon1@realm.cz,​ anon2@realm.cz,​ ... a @realm.cz. To komplikuje ​ blokování v případě bezpečnostních incidentů. Umožněte pouze anonymous@realm.cz:​
  
 <​file>​ <​file>​
Line 238: Line 200:
 ==== 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/​default'':​+Č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/3.0/​policy.d/''​ a potom v ''/​etc/​freeradius/3.0/​sites-enabled/​default'':​
  
 <​file>​ <​file>​
Line 255: Line 217:
 ==== Definice AP klientů ==== ==== Definice AP klientů ====
  
-RADIUS server důvěřuje pouze klientům uvedeným v souboru ''/​etc/​freeradius/​clients.conf'',​ kteří znají sdílené heslo. Neopoužívejte krátké sdílené heslo, zajištuje integritu RADIUS požadavků mezi AP a RADIUS serverem. RADIUS protokol není šifrovaný. V případě použití Cisco WLC stačí povolit jen jednu IP adresu pro managment interface.+RADIUS server důvěřuje pouze klientům uvedeným v souboru ''/​etc/​freeradius/3.0/​clients.conf'',​ kteří znají sdílené heslo. Neopoužívejte krátké sdílené heslo, zajištuje integritu RADIUS požadavků mezi AP a RADIUS serverem. RADIUS protokol není šifrovaný. V případě použití Cisco WLC stačí povolit jen jednu IP adresu pro managment interface.
  
 <​file>​ <​file>​
Line 276: Line 238:
  
 ==== 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:​spravce:​pripojovani:​serverove_certifikaty|akceptovány certifikáty]] od různých ​CA.+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:​spravce:​pripojovani:​serverove_certifikaty|akceptovány certifikáty]] od několika málo CA.
  
 RadSec tunel používá dvě TCP spojení: RadSec tunel používá dvě TCP spojení:
Line 286: Line 248:
 === Aktivace radsec protokolu ve FR3 === === Aktivace radsec protokolu ve FR3 ===
 <​file>​ <​file>​
-ln -s /​etc/​freeradius/​sites-available/​tls /​etc/​freeradius/​sites-enabled/​tls+ln -s /​etc/​freeradius/3.0/​sites-available/​tls /​etc/​freeradius/3.0/​sites-enabled/​tls
 </​file>​ </​file>​
  
-Upravte soubor ''/​etc/​freeradius/​sites-available/​tls''​ pro komunikaci mezi naším a národním RADIUS serverem. Pro obě výše zmíněná TCP spojení použijeme stejný certifikát,​ a proto bude certifikát v souboru zmíněn dvakrát. Poprvé v sekci ''​listen''​ (příchozí spojení od národního serveru) a podruhé v sekci ''​home_server tls''​. Na rozdíl od PEAP (zmíně výše) je zde potřeba pro ''​ca_file''​ uvést soubor [[https://​pki.cesnet.cz/​certs/​chain_CESNET_CA3.pem|chain_CESNET_CA3.pem]], který získáte na adrese [[https://​pki.cesnet.cz/​cs/​ch-cca-crt-crl.html|https://​pki.cesnet.cz/​]],​ protože obsahuje veřejné klíče, pomocí kterých bude náš server ověřovat certifikát protistrany (tj. národního RADIUS serveru), který je podepsán právě autoritou ​CESNET_CA3.+Upravte soubor ''/​etc/​freeradius/3.0/​sites-available/​tls''​ pro komunikaci mezi naším a národním RADIUS serverem. Pro obě výše zmíněná TCP spojení použijeme stejný certifikát,​ a proto bude certifikát v souboru zmíněn dvakrát. Poprvé v sekci ''​listen''​ (příchozí spojení od národního serveru) a podruhé v sekci ''​home_server tls''​. Na rozdíl od PEAP (zmíně výše) je zde potřeba pro ''​ca_file''​ uvést soubor [[https://​pki.cesnet.cz/​certs/​chain_CESNET_CA4.pem|chain_CESNET_CA4.pem]], který získáte na adrese [[https://​pki.cesnet.cz/​cs/​ch-cca-crt-crl.html|https://​pki.cesnet.cz/​]],​ protože obsahuje veřejné klíče, pomocí kterých bude náš server ověřovat certifikát protistrany (tj. národního RADIUS serveru), který je podepsán právě autoritou ​CESNET_CA4.
  
 Definice cerifikátů pro naslouchání na lokálním portu 2083: Definice cerifikátů pro naslouchání na lokálním portu 2083:
Line 295: Line 257:
 <​file>​ <​file>​
 listen { listen {
 +...
 +         # redukce casteho navazovani a ukoncovani spojeni z/na narodni RADIUS
 +         ​lifetime ​    = 0
 +         ​idle_timeout = 600
 ... ...
          tls {          tls {
                    ​private_key_file = <​soubor_klicem>​                    ​private_key_file = <​soubor_klicem>​
                    ​certificate_file = <​soubor_s_certifikatem>​                    ​certificate_file = <​soubor_s_certifikatem>​
-                   ​ca_file ​         = ${cadir}/chain_CESNET_CA3.pem+                   ​ca_file ​         = ${cadir}/chain_CESNET_CA4.pem
                    ...                    ...
          }          }
Line 309: Line 275:
 clients radsec {  ​ clients radsec {  ​
          ​client radius1.eduroam.cz {             ​client radius1.eduroam.cz {   
-                  ipaddr = 195.113.187.22  +                  ipaddr = 195.113.187.22 
-                  proto = tls             ​ +                  proto = tls 
-                  secret = radsec ​      +                  secret = radsec 
-         ​} ​                  ​+                   
 +                  # redukce casteho navazovani a ukoncovani spojeni z/na narodni RADIUS 
 +                  limit { 
 +                         ​max_connections = 16 
 +                         ​lifetime = 0 
 +                         ​idle_timeout = 600 
 +                  } 
 +         }
 ... ...
 } }
Line 337: Line 310:
                    ​private_key_file = <​soubor_klicem>​                    ​private_key_file = <​soubor_klicem>​
                    ​certificate_file = <​soubor_s_certifikatem>​                    ​certificate_file = <​soubor_s_certifikatem>​
-                   ​ca_file ​         = ${cadir}/chain_CESNET_CA3.pem+                   ​ca_file ​         = ${cadir}/chain_CESNET_CA4.pem
                    ...                    ...
          }          }
Line 359: Line 332:
 **RHEL**: Vyplněný [[https://​bugzilla.redhat.com/​show_bug.cgi?​id=1630684|bug 1630684]]. Je k dispozici balíček od Petra Vaníčka: 2e4897aabc0cce34f8ad5bda53f974149c08bc3d1ea6c9c8b05c9e59143a0878 [[http://​pva.utia.cas.cz/​freeradius-3.0.13tlspatch.tar.gz|freeradius-3.0.13tlspatch.tar.gz]] **RHEL**: Vyplněný [[https://​bugzilla.redhat.com/​show_bug.cgi?​id=1630684|bug 1630684]]. Je k dispozici balíček od Petra Vaníčka: 2e4897aabc0cce34f8ad5bda53f974149c08bc3d1ea6c9c8b05c9e59143a0878 [[http://​pva.utia.cas.cz/​freeradius-3.0.13tlspatch.tar.gz|freeradius-3.0.13tlspatch.tar.gz]]
  
-Diskuze v listu [[https://​random.cesnet.cz/​pipermail/​eduroam-admin/​2017-November/​001382.html|eduroam-admin]].+Diskuze v listu [[https://​random.cesnet.cz/​mailman/​private/​eduroam-admin/​2017-November/​001382.html|eduroam-admin]].
  
 === Bug: inbound RADIUS/TLS connection stalls ===  === Bug: inbound RADIUS/TLS connection stalls === 
Line 369: Line 342:
 (0) Application data status 4 (0) Application data status 4
 </​code>​ </​code>​
 +
 +Na základě [[https://​random.cesnet.cz/​mailman/​private/​eduroam-admin/​2019-July/​002654.html|experimetnů]] se zdá že Debian Buster má upravenou verzi, která tímto problémem netrpí.
 +
 ==== Přiřazení konkrétní VLAN návštěvníkům ==== ==== Přiřazení konkrétní VLAN návštěvníkům ====
  
Line 389: Line 365:
  
 Attribut ''​Operator-Name''​ slouží k indentifikaci SP odkud pochází požadavky na autentizaci uživatelů. V souboru ​ Attribut ''​Operator-Name''​ slouží k indentifikaci SP odkud pochází požadavky na autentizaci uživatelů. V souboru ​
-''/​etc/​freeradius/​sites-available/​default''​ odkomentujte volání funkce ''​operator-name'':​+''/​etc/​freeradius/3.0/​sites-available/​default''​ odkomentujte volání funkce ''​operator-name'':​
    
 <​file>​ <​file>​
Line 409: Line 385:
  
 <​file>​ <​file>​
-cd /​etc/​freeradius/​mods-enabled+cd /​etc/​freeradius/3.0/​mods-enabled
 ln -s ../​mods-available/​cui . ln -s ../​mods-available/​cui .
 </​file>​ </​file>​
  
-V souboru ''/​etc/​freeradius/​sites-enabled/​inner-tunnel''​ aktivujte ''​cui-inner'':​+V souboru ''/​etc/​freeradius/3.0/​sites-enabled/​inner-tunnel''​ aktivujte ''​cui-inner'':​
  
 <​file>​ <​file>​
Line 421: Line 397:
 </​file>​ </​file>​
  
-V souboru ''/​etc/​freeradius/​sites-enabled/​default''​ aktivujte ''​cui'':​+V souboru ''/​etc/​freeradius/3.0/​sites-enabled/​default''​ aktivujte ''​cui'':​
  
 <​file>​ <​file>​
Line 445: Line 421:
 </​file>​ </​file>​
  
-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 ''/​etc/​freeradius/​policy.d/​cui''​ změňte definici proměnné ''&​Chargeable-User-Identity''​ v bloku ''​cui.post-auth'':​+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 ''/​etc/​freeradius/3.0/​policy.d/​cui''​ změňte definici proměnné ''&​Chargeable-User-Identity''​ v bloku ''​cui.post-auth'':​
  
 <​file>​ <​file>​
Line 459: Line 435:
 ==== 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 ''​rewrite_calling_station_id''​) 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/3.0/​sites-enabled/​default''​ do sekcí authorize a preacct:
  
 <​file>​ <​file>​
Line 481: Line 457:
 ==== Konfigurace F-TICKS ====  ==== Konfigurace F-TICKS ==== 
  
-Vytvořte soubor ''/​etc/​freeradius/​mods-available/​f_ticks''​ s obsahem:+Vytvořte soubor ''/​etc/​freeradius/3.0/​mods-available/​f_ticks''​ s obsahem:
  
 <​file>​ <​file>​
Line 500: Line 476:
  
 <​file>​ <​file>​
- cd /​etc/​freeradius/​mods-enabled+ cd /​etc/​freeradius/3.0/​mods-enabled
  ln -s ../​mods-available/​f_ticks  ln -s ../​mods-available/​f_ticks
 </​file>​ </​file>​
  
-A začněte ho používat v ''/​etc/​freeradius/​sites-available/​default'',​ pokud budete chtít odfiltrovat monitoring tak volejte ''​reply_log''​ a ''​f_ticks''​ podmíněně,​ viz následující sekce.+A začněte ho používat v ''/​etc/​freeradius/3.0/​sites-available/​default'',​ pokud budete chtít odfiltrovat monitoring tak volejte ''​reply_log''​ a ''​f_ticks''​ podmíněně,​ viz následující sekce.
  
 <​file>​ <​file>​
Line 517: Line 493:
 ==== 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 ''/​etc/​freeradius/​sites-available/​default''​. V sekcích authorize, authenticate,​ pre-proxy a post-proxy přidejte podmínku, která ermon odfiltruje na základě prefixu MAC adresy kterou používá. Tj. z explicitního logování se stane logování podmíněné v případě že se jedná o monitoring, např:+end2end monitoring prováděný nagiosem produkuje relativně dost logů, lze je odfiltrovat v souboru ''/​etc/​freeradius/3.0/​sites-available/​default''​. V sekcích authorize, authenticate,​ pre-proxy a post-proxy přidejte podmínku, která ermon odfiltruje na základě prefixu MAC adresy kterou používá. Tj. z explicitního logování se stane logování podmíněné v případě že se jedná o monitoring, např:
  
 <​file>​ <​file>​
Line 566: Line 542:
 ==== 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 ''/​etc/​freeradius/​clients.conf''​ přidejte sekci:+Přidejte klienta, ze kterého probíhá testování. Do souboru ''/​etc/​freeradius/3.0/​clients.conf''​ přidejte sekci:
 <​file>​ <​file>​
 client ermon.cesnet.cz { client ermon.cesnet.cz {
Line 581: Line 557:
 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"​). 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/3.0/​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í:​
 <​file>​ <​file>​
 <​test_ucet>​ Cleartext-Password := "​test_heslo"​ <​test_ucet>​ Cleartext-Password := "​test_heslo"​
Line 592: Line 568:
 Pokud nechcete uložit heslo v nešifrované podobě, tak nahraďte atribut ''​Cleartext-Password''​ atributem ''​NT-Password''​ a heslo zašifrujte příkazem ''​smbencrypt''​ (na Debianu je součástí freeradius-utils). Pokud nechcete uložit heslo v nešifrované podobě, tak nahraďte atribut ''​Cleartext-Password''​ atributem ''​NT-Password''​ a heslo zašifrujte příkazem ''​smbencrypt''​ (na Debianu je součástí freeradius-utils).
  
-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 ''/​etc/​freeradius/​mods-config/​attr_filter/​post-proxy''​ zajistí, že atribut s VLAN 666 bude propuštěn a ostatní VLANy budou odfiltrovány. V sekci DEFAULT na konci souboru přidejte:+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 ''/​etc/​freeradius/3.0/​mods-config/​attr_filter/​post-proxy''​ zajistí, že atribut s VLAN 666 bude propuštěn a ostatní VLANy budou odfiltrovány. V sekci DEFAULT na konci souboru přidejte:
 <​file>​ <​file>​
         Tunnel-Type == VLAN,         Tunnel-Type == VLAN,
Line 609: Line 585:
 radtest <​test_ucet>​@domaci-realm.cz test_heslo 127.0.0.1 1812 testing123 radtest <​test_ucet>​@domaci-realm.cz test_heslo 127.0.0.1 1812 testing123
 </​file>​ </​file>​
 +
 +Tento test zkouší pouze PAP, základní ověření funkce RADIUSu. Kompletní test lze provést pomocí [[https://​www.eduroam.cz/​cs/​spravce/​rad_eap_test|rad_eap_test]].
  
 ===== Blokování uživatelů ===== ===== Blokování uživatelů =====
Line 616: Line 594:
 ==== Blokování podle uživatelského jména ==== ==== Blokování podle uživatelského jména ====
  
-V souboru ''/​etc/​freeradius/​sites-enabled/​default''​ přidáme do sekce authorize podmínku blokující uživatele. Definice adres musí být umísťena **před** volání modulu eap!+V souboru ''/​etc/​freeradius/3.0/​sites-enabled/​default''​ přidáme do sekce authorize podmínku blokující uživatele. Definice adres musí být umísťena **před** volání modulu eap!
  
 <​file>​ <​file>​
Line 633: Line 611:
 ==== Blokování celého realmu ==== ==== Blokování celého realmu ====
  
-V souboru ''/​etc/​freeradius/​sites-enabled/​default''​ přidáme do sekce authorize podmínku blokující uživatele konkrétního realmu. Definice adres musí být umísťena **před** volání modulu eap!+V souboru ''/​etc/​freeradius/3.0/​sites-enabled/​default''​ přidáme do sekce authorize podmínku blokující uživatele konkrétního realmu. Definice adres musí být umísťena **před** volání modulu eap!
  
 <​file>​ <​file>​
Line 651: Line 629:
 ==== Blokování podle MAC adresy ==== ==== Blokování podle MAC adresy ====
  
-V souboru ''/​etc/​freeradius/​sites-enabled/​default''​ přidáme do sekce authorize podmínku blokující adresu(y). Definice adres musí být umísťena **před** volání modulu eap! Můžeme blokovat jednu nebo více konkrétních adres, lze využít i regulární výrazy:+V souboru ''/​etc/​freeradius/3.0/​sites-enabled/​default''​ přidáme do sekce authorize podmínku blokující adresu(y). Definice adres musí být umísťena **před** volání modulu eap! Můžeme blokovat jednu nebo více konkrétních adres, lze využít i regulární výrazy:
  
 <​file>​ <​file>​
Line 674: Line 652:
 ==== Blokování podle Chargeable-User-Identity ====  ==== Blokování podle Chargeable-User-Identity ==== 
  
-V souboru ''/​etc/​freeradius/​sites-enabled/​default''​ přidáme do sekce post-proxy podmínku blokující identitu(y). ​+V souboru ''/​etc/​freeradius/3.0/​sites-enabled/​default''​ přidáme do sekce post-proxy podmínku blokující identitu(y). ​
  
 <​file>​ <​file>​
Line 728: Line 706:
  
 === 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,​ ale národní RADIUS tento test zablokuje vyfiltrováním hesla z access-requestu. Akce se hodí pro vyprovokování navázání spojení na národní RADIUS server (např. po restartu lokálního FreeRADIUS serveru):
  
 <​file>​ <​file>​
 radtest test@vsb.cz HesloNevim 127.0.0.1 1812 testing123 radtest test@vsb.cz HesloNevim 127.0.0.1 1812 testing123
 </​file>​ </​file>​
 +
 +Pro lepší otestování cizího účtu se hodí [[https://​www.eduroam.cz/​cs/​spravce/​rad_eap_test#​testovani_na_lokalnim_radius_serveru_s_cizim_uctem_testovacim_uctem|rad_eap_test]].
  
 ===== Napojení na systémy správy identit ===== ===== Napojení na systémy správy identit =====
Last modified:: 2019/06/13 09:45