Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Následující verze | Předchozí verze | ||
cs:spravce:pripojovani:radius:freeradius [2009/12/02 10:28] 127.0.0.1 upraveno mimo DokuWiki |
— (aktuální) | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
- | <box 50% red> | ||
- | Pro nové instalace používejte výhradně [[cs:spravce:pripojovani:radius:freeradius2|freeRADIUS 2]]. | ||
- | |||
- | </box> | ||
- | |||
- | <box 50% orange> | ||
- | |||
- | Pro korektní podporu uživatelů s MS Windows Vista je nutné provozovat freeRadius o verzi minimálně 1.1.4. | ||
- | |||
- | </box> | ||
- | |||
- | <box 50% orange> | ||
- | Tento dokument je nekompletní, pokud byste chtěli pomoci, tak pomoc je | ||
- | [[:cs:kontakty#Ing. Jan Tomášek| vítána]]. | ||
- | |||
- | Prozatím je k dispozici {{:cs:spravce:pripojovani:radius:freeradius:freeradius-2005.02.27.tgz|konfigurace}} z FEL ČVUT z 27. února 2005. | ||
- | </box> | ||
- | |||
- | ====== Konfigurace FreeRadiusu pro připojení k eduroamu ====== | ||
- | |||
- | K pochopení obsahu tohoto dukumentu byste měli vědět, [[spravce:uvod|jak roaming funguje]], a také byste měli | ||
- | mít základní představu o [[spravce:RADIUS protokol|RADIUS protokolu]]. | ||
- | |||
- | ===== Získání software ===== | ||
- | |||
- | [[http://www.freeradius.org/|FreeRadius]] je k dispozici zdarma jako Open Source software. Je určen primárně pro UNIXové systémy, ale na stránce [[http://www.freeradius.net/|www.freeradius.net]] jsou k dispozici i binárky pro MS Windows. V tomto návodu se budu zabývat Linuxovou verzí. | ||
- | |||
- | Je dost pravděpodobné, že pro Vaši distribuci jsou připraveny předkompilované balíčky, před jejich použitím si ale zkontrolujte, zda máte k dispozici knihovnu rlm_eap_tls.so, ta je k nezbytná pro ověřování klientů pomocí 802.1x. Např. v unstable Debian v balíku verze 1.1.2-2 tuto knihovnu nemají. | ||
- | |||
- | |||
- | ===== Konfigurace ===== | ||
- | |||
- | Konfiguraci FreeRadiusu komplikuje architektura tohoto produktu (např. authorizace se řeší před autentizací), velké množství konfiguračních souborů je nepřehledné díky velkému množství komentářů, které často nahrazují dokumentaci. Konfigurační soubory najdeme v adresáři **/etc/raddb** nebo **/etc/freeradius**. | ||
- | |||
- | Smažte zbytečné soubory: **naslist**, **realms** | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ==== proxy.conf ===== | ||
- | |||
- | Teto soubor definuje, jak se FreeRadius bude chovat k | ||
- | jednotlivým realmům. Nejprve jsou nastaveny parametry | ||
- | samotného proxy serveru. | ||
- | |||
- | <xterm> | ||
- | proxy server { | ||
- | synchronous = no | ||
- | retry_delay = 5 | ||
- | retry_count = 2 | ||
- | dead_time = 0 | ||
- | default_fallback = yes | ||
- | post_proxy_authorize = no | ||
- | } | ||
- | </xterm> | ||
- | |||
- | Někteří uživatelé se přihlašují jen pomocí uživatelského jména bez realmu. To jim sice "doma" může fungovat, ale pokud by chtěli využít roamingu, budou muset měnit konfiguraci svého počítače, na což pravděpodobně nebudou připraveni. Proto důrazně doporučuji uživatelům znemožnit přihlašování bez realmu. K odchycení Access-Requestů bez realmu slouží definice ''realm NULL { ... }''. Dotazy bez realmu se potom zakáží v souboru ''users''. | ||
- | |||
- | <xterm> | ||
- | realm NULL { | ||
- | } | ||
- | </xterm> | ||
- | |||
- | Následuje definice lokálních (domácích realmů). Nahraďte ''example.com'' Vaším realmem. V případě, že Váš server má obsluhovat několik realmů, tak tuto sekci několikrát zopakujte. | ||
- | |||
- | <xterm> | ||
- | realm **example.com** { | ||
- | type = radius | ||
- | authhost = LOCAL | ||
- | accthost = LOCAL | ||
- | } | ||
- | </xterm> | ||
- | |||
- | Definice ''realm DEFAULT { ... }'' zajištují předání Access-Request paketů návštěvníků na národní RADIUS servery. Nahraďte **xxx** u parametru ''secret'' hodnotami, které Vám byly přiděleny. | ||
- | |||
- | <xterm> | ||
- | realm DEFAULT { | ||
- | type = radius | ||
- | authhost = radius1.eduroam.cz:1812 | ||
- | accthost = radius1.eduroam.cz:1813 | ||
- | secret = **xxx** | ||
- | nostrip | ||
- | } | ||
- | </xterm> | ||
- | |||
- | ==== clients.conf ===== | ||
- | V tomto souboru definujete klienty, kteří se mohou k Vašemu RADIUSu připojit. | ||
- | |||
- | <xterm> | ||
- | client **ap1.example.com** { | ||
- | secret = **secret4ap1** | ||
- | shortname = **ap1** | ||
- | } | ||
- | . | ||
- | . | ||
- | client **apN.example.com** { | ||
- | secret = **secret4apN** | ||
- | shortname = **apN** | ||
- | } | ||
- | </xterm> | ||
- | |||
- | V okamžiku, kdy Vaši uživatelé využijí roamingu, stanou se klienty NREN RADIUS serverů. | ||
- | |||
- | <xterm> | ||
- | client radius1.eduroam.cz { | ||
- | secret = **xxx** | ||
- | shortname = radius1edu | ||
- | } | ||
- | </xterm> | ||
- | |||
- | Dalším speciálním klientem je monitoring. | ||
- | |||
- | <xterm> | ||
- | client ermon.cesnet.cz { | ||
- | secret = **xxx** | ||
- | shortname = ermon | ||
- | } | ||
- | </xterm> | ||
- | |||
- | ====users==== | ||
- | Tento soubor definuje staticky konfigurované uživatele. Dále např. specifikuje jak zacházet s jednotlivými realmy. Obecně mění hodnoty jednotlivých atributů na základě vstupních hodnot jiných atributů, nebo svých vlastních. | ||
- | Nejprve odmítneme uživatelé bez realmu. | ||
- | <xterm> | ||
- | DEFAULT Realm == NULL, Auth-Type := Reject | ||
- | </xterm> | ||
- | |||
- | Tohle by mělo zabezpečit, aby se v účtování objevilo skutečné uživatelské jméno, a ne třeba anonymous@myabc.com | ||
- | <xterm> | ||
- | DEFAULT Freeradius-Proxied-To == 127.0.0.1 | ||
- | User-Name = `%{User-Name}`, | ||
- | Fall-Through = Yes | ||
- | </xterm> | ||
- | |||
- | Nyní definujeme staticky konfigurované uživatele. Můžou to být testovací uživatelé, nebo třeba speciální konta pro jednorázové akce, např. konference. | ||
- | <xterm> | ||
- | user1 User-Password == "password1" | ||
- | user2 User-Password == "password2" | ||
- | </xterm> | ||
- | |||
- | Testovací účet je směrován do neexistující VLAN, aby se dal ověřit bez možnosti dostat se do sítě. Pokud by měl být konfigurován staticky, vyměníme | ||
- | ''Auth-Type = Local'' za ''User-Password == "password"''. Obecně by ale měl testovací učet používat stejný typ autentizace jako reálné účty uživatelů, | ||
- | aby se otestovaly všechny články AA řetězce. | ||
- | <xterm> | ||
- | eduroam-test Auth-Type = Local | ||
- | Tunnel-Type = VLAN, | ||
- | Tunnel-Private-Group-ID = 666, | ||
- | Tunnel-Medium-Type = IEEE-802, | ||
- | Fall-Through = Yes | ||
- | </xterm> | ||
- | |||
- | Uživatelé, kteří prošli předchozímy filtry, pokračují do dalšího zpracování | ||
- | <xterm> | ||
- | DEFAULT Auth-Type = Local | ||
- | Fall-Through = 1 | ||
- | </xterm> | ||
- | |||
- | ====attrs==== | ||
- | Tento soubor definuje zpracování paketů vrátivších přes proxy z cizích organizací. Do paketu posílaného zpět přístupovému bodu projdou pouze atributy vyjmenované v tomto souboru, popřípadě atributy s určitou hodnotou. Některé cizí organizace přidávají do Access-Accept paketu svého uživatele, který se chce připojit do naší sítě, atribut Tunnel-Private-Group-Id s hodnotou např. 200. Ten určuje, do které VLAN | ||
- | se má uživatel dostat v domácí síti. My ale máme pouze VLAN 100, proto povolujeme jen tuto hodnotu a dále 666 pro testovací uživatele. Atribut s jinou hodnotou se "zahodí" a AP potom uživateli přiřadí implicitní VLAN. | ||
- | <xterm> | ||
- | DEFAULT | ||
- | User-Name =* ANY, | ||
- | Called-Station-Id =* ANY, | ||
- | Calling-Station-Id =* ANY, | ||
- | Message-Authenticator =* ANY, | ||
- | EAP-Message =* ANY, | ||
- | NAS-Port-Type =* ANY, | ||
- | NAS-Port =* ANY, | ||
- | Service-Type =* ANY, | ||
- | NAS-IP-Address =* ANY, | ||
- | NAS-Identifier =* ANY, | ||
- | Proxy-State =* ANY, | ||
- | Framed-MTU >= 576, | ||
- | Framed-Filter-ID =* ANY, | ||
- | Reply-Message =* ANY, | ||
- | Proxy-State =* ANY, | ||
- | Session-Timeout <= 28800, | ||
- | Idle-Timeout <= 600, | ||
- | Port-Limit <= 2, | ||
- | Tunnel-Type == VLAN, | ||
- | Tunnel-Private-Group-Id == 100, | ||
- | Tunnel-Private-Group-Id == 666, | ||
- | Tunnel-Medium-Type == IEEE-802, | ||
- | MS-MPPE-Send-Key =* ANY, | ||
- | MS-MPPE-Recv-Key =* ANY, | ||
- | cisco-avpair =* ANY, | ||
- | WISPr-Location-ID =* ANY, | ||
- | Cisco-NAS-Port =* ANY, | ||
- | State =* ANY | ||
- | </xterm> | ||
- | |||
- | ====radiusd.conf==== | ||
- | Jedná se o hlavní konfigurační soubor. | ||
- | |||
- | Konfigurace jednotlivých modulů | ||
- | <xterm> | ||
- | modules { | ||
- | # PAP module to authenticate users based on their stored password | ||
- | pap { | ||
- | encryption_scheme = crypt | ||
- | } | ||
- | |||
- | # Extensible Authentication Protocol | ||
- | $INCLUDE ${confdir}/eap.conf | ||
- | |||
- | # Microsoft CHAP authentication | ||
- | mschap { | ||
- | authtype = MS-CHAP | ||
- | } | ||
- | # Lightweight Directory Access Protocol (LDAP) | ||
- | ldap { | ||
- | server = "ldapserver.feld.cvut.cz" | ||
- | port = 636 | ||
- | identity = "uid=radius,ou=Special Users,o=feld.cvut.cz" | ||
- | password = ***************** | ||
- | basedn = "ou=People,o=feld.cvut.cz" | ||
- | filter = "(uid=%{Stripped-User-Name:-%{User-Name}})" | ||
- | start_tls = no | ||
- | dictionary_mapping = ${raddbdir}/ldap.attrmap | ||
- | |||
- | ldap_connections_number = 5 | ||
- | password_attribute = mobilitypassword | ||
- | timeout = 8 | ||
- | timelimit = 3 | ||
- | net_timeout = 1 | ||
- | } | ||
- | |||
- | realm suffix { | ||
- | format = suffix | ||
- | delimiter = "@" | ||
- | ignore_default = no | ||
- | ignore_null = no | ||
- | } | ||
- | |||
- | preprocess { | ||
- | huntgroups = ${confdir}/huntgroups | ||
- | hints = ${confdir}/hints | ||
- | with_ascend_hack = no | ||
- | ascend_channels_per_line = 23 | ||
- | with_ntdomain_hack = yes | ||
- | with_specialix_jetstream_hack = no | ||
- | with_cisco_vsa_hack = no | ||
- | } | ||
- | |||
- | files { | ||
- | usersfile = ${confdir}/users | ||
- | acctusersfile = ${confdir}/acct_users | ||
- | compat = no | ||
- | } | ||
- | |||
- | detail { | ||
- | detailfile = ${radacctdir}/%{Client-IP-Address}/detail-%Y%m%d | ||
- | detailperm = 0600 | ||
- | } | ||
- | |||
- | | ||
- | acct_unique { | ||
- | key = "User-Name, Acct-Session-Id, NAS-IP-Address, Client-IP-Address, NAS-Port" } | ||
- | |||
- | |||
- | # $INCLUDE ${confdir}/sql.conf | ||
- | } | ||
- | </xterm> | ||
- | |||
- | Autorizace | ||
- | <xterm> | ||
- | authorize { | ||
- | preprocess | ||
- | mschap | ||
- | suffix | ||
- | eap | ||
- | files | ||
- | ldap | ||
- | } | ||
- | </xterm> | ||
- | |||
- | Autentizace | ||
- | <xterm> | ||
- | authenticate { | ||
- | Auth-Type PAP { | ||
- | pap | ||
- | } | ||
- | Auth-Type MS-CHAP { | ||
- | mschap | ||
- | } | ||
- | Auth-Type LDAP { | ||
- | ldap | ||
- | } | ||
- | eap | ||
- | } | ||
- | </xterm> | ||
- | |||
- | <xterm> | ||
- | preacct { | ||
- | preprocess | ||
- | acct_unique | ||
- | files | ||
- | } | ||
- | |||
- | </xterm> | ||
- | |||
- | <xterm> | ||
- | accounting { | ||
- | detail | ||
- | # sql | ||
- | } | ||
- | |||
- | </xterm> | ||
- | <xterm> | ||
- | post-proxy { | ||
- | attr_filter | ||
- | eap | ||
- | } | ||
- | </xterm> | ||
- | |||
- | ====eap.conf==== | ||
- | V souboru jsou uvedeny povolené metody EAP. Modul ''tls'' musí být zkonfigurován, i když TLS metodu nepoužíváme. Tento modul totiž využívají | ||
- | moduly ''peap'' a ''ttls''. | ||
- | <xterm> | ||
- | eap { | ||
- | default_eap_type = peap | ||
- | timer_expire = 60 | ||
- | ignore_unknown_eap_types = no | ||
- | cisco_accounting_username_bug = no | ||
- | md5 { | ||
- | } | ||
- | leap { | ||
- | } | ||
- | tls { | ||
- | private_key_file = /etc/ssl/private/radius.pem.key | ||
- | certificate_file = /etc/ssl/certs/radius.pem.crt | ||
- | CA_file = /etc/ssl/certs/cacert.pem | ||
- | dh_file = ${raddbdir}/certs/dh | ||
- | random_file = ${raddbdir}/certs/random | ||
- | fragment_size = 1024 | ||
- | include_length = yes | ||
- | } | ||
- | peap { | ||
- | default_eap_type = mschapv2 | ||
- | use_tunneled_reply = yes | ||
- | } | ||
- | ttls { | ||
- | default_eap_type = md5 | ||
- | use_tunneled_reply = yes | ||
- | |||
- | } | ||
- | mschapv2 { | ||
- | } | ||
- | } | ||
- | |||
- | </xterm> |