cs:spravce:pripojovani:radius:freeradius

Toto je starší verze dokumentu!


Pro nové instalace používejte výhradně freeRADIUS 2.
Pro korektní podporu uživatelů s MS Windows Vista je nutné provozovat freeRadius o verzi minimálně 1.1.4.
Tento dokument je nekompletní, pokud byste chtěli pomoci, tak pomoc je vítána.

Prozatím je k dispozici konfigurace z FEL ČVUT z 27. února 2005.

Konfigurace FreeRadiusu pro připojení k eduroamu

K pochopení obsahu tohoto dukumentu byste měli vědět, jak roaming funguje, a také byste měli mít základní představu o RADIUS protokolu.

Získání software

FreeRadius je k dispozici zdarma jako Open Source software. Je určen primárně pro UNIXové systémy, ale na stránce 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>

Poslední úprava:: 2009/12/02 10:28