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.

proxy server {
	synchronous 	 	= no
	retry_delay	 	= 5
	retry_count 	 	= 2
	dead_time  	 	= 0
	default_fallback 	= yes
	post_proxy_authorize	= no
}

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.

realm NULL {
	}

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.

realm example.com {
	type			= radius
	authhost		= LOCAL
	accthost		= LOCAL
}

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.

realm DEFAULT {
        type            	= radius
        authhost        	= radius1.eduroam.cz:1812
        accthost        	= radius1.eduroam.cz:1813
        secret          	= xxx
        nostrip
}

clients.conf

V tomto souboru definujete klienty, kteří se mohou k Vašemu RADIUSu připojit.

client ap1.example.com {
	secret          = secret4ap1
	shortname       = ap1
}
.
.
client apN.example.com {
	secret          = secret4apN
	shortname       = apN
}

V okamžiku, kdy Vaši uživatelé využijí roamingu, stanou se klienty NREN RADIUS serverů.

client radius1.eduroam.cz {
	secret 		= xxx
	shortname	= radius1edu
}

Dalším speciálním klientem je monitoring.

client ermon.cesnet.cz {
	secret 		= xxx
	shortname	= ermon
}

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.

DEFAULT Realm == NULL, Auth-Type := Reject

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

DEFAULT  Freeradius-Proxied-To == 127.0.0.1
   User-Name = `%{User-Name}`,
   Fall-Through = Yes

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.

user1     User-Password == "password1"
user2     User-Password == "password2"

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.

eduroam-test    Auth-Type = Local
                Tunnel-Type = VLAN,
                Tunnel-Private-Group-ID = 666,
                Tunnel-Medium-Type = IEEE-802,
                Fall-Through = Yes

Uživatelé, kteří prošli předchozímy filtry, pokračují do dalšího zpracování

DEFAULT Auth-Type = Local
        Fall-Through = 1

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.

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

radiusd.conf

Jedná se o hlavní konfigurační soubor.

Konfigurace jednotlivých modulů

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
}

Autorizace

authorize {
        preprocess
        mschap
        suffix
        eap
        files
        ldap
}

Autentizace

authenticate {
        Auth-Type PAP {
                pap
        }
        Auth-Type MS-CHAP {
                mschap
        }
        Auth-Type LDAP {
                ldap
        }
        eap
}
preacct {
        preprocess
        acct_unique
        files
}
accounting {
        detail
#        sql
}
post-proxy {
        attr_filter
        eap
}

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.

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 {
 }
}
Poslední úprava:: 2022/01/20 14:19