Uputstvo za instalaciju i konfiguraciju FreeRADIUS softvera za potrebe Davaoca Identiteta¶
- Verzija FreeRadius softvera: 3.2.1
- Operativni sistem: Debian 12
FreeRADIUS (www.freeradius.org) predstavlja softversku platformu za RADIUS server. Aktuelne verzije možete da pogledate na starnici http://freeradius.org/download.html. U ovom uputstvu prikazana je instalacija FreeRADIUS servera za potrebe institucije (Davaoca Identiteta) u okviru AMRES eduroam servisa.
Pre same instalacije FreeRADIUS softvera potrebno je instalirati određene softverske pakete i biblioteke, koje su neophodne za pravilno funkcionisanje servera. U nastavku su, po sekcijama, predstavljeni ovi paketi i komande za instalaciju.
Priprema pred instalaciju¶
Podesiti hosta¶
U okviru čitavog uputstva smatraće se da je domen VM radius.institucija.ac.rs, tako da na svim mestima umesto ovog naziva domena potrebno je da unesete naziv po vašem izboru.
Veoma je važno da FQDN (Fully Qualified Domain Name) i pun hostname (# hostname -f) ove VM, npr. radius.institucija.ac.rs, koji se podešava u okviru ove sekcije bude isti kao i domen koji je adekvatno podešen na DNS serveru, a taj domen će se takođe kasnije koristiti za kreiranje sertifikata.
Podešavanje host podataka
Dat je primer postavljanja radius.institucija.ac.rs kao FQDN podatka, koji je potrebno zameniti FQDN podatkom Vašeg Davaoca Identiteta, kao i postavljanja HOSTNAME podatka: radius, koji je potrebno zameniti HOSTNAME podatkom Vašeg Davaoca Identiteta.
Na kraju fajla se unosi linija u formi: IP ADRESA FQDN HOSTNAME:
Postaviti hostname
Koristi se komanda sledeće forme: hostnamectl set-hostname HOSTNAME
Sačuvati izmene:
Podesiti IPTABLES¶
Najpre je potrebno instalirati iptables softverski paket i izvršiti početna podešavanja ukoliko već niste.
Otvoriti portove 1812, 1813 i 1814 prema FTLR serverima i monitorima.
To se može uraditi na sledeći način:
Otvoriti navedene portove dodavanjem sledećih linija u fajl:
#147.91.4.204 (ftlr1.ac.rs)
-A INPUT -m state -s 147.91.4.204/32 --state NEW -m udp -p udp --dport 1812 -j ACCEPT
-A INPUT -m state -s 147.91.4.204/32 --state NEW -m udp -p udp --dport 1813 -j ACCEPT
-A INPUT -m state -s 147.91.4.204/32 --state NEW -m udp -p udp --dport 1814 -j ACCEPT
#147.91.1.101(ftlr2.ac.rs)
-A INPUT -m state -s 147.91.1.101/32 --state NEW -m udp -p udp --dport 1812 -j ACCEPT
-A INPUT -m state -s 147.91.1.101/32 --state NEW -m udp -p udp --dport 1813 -j ACCEPT
-A INPUT -m state -s 147.91.1.101/32 --state NEW -m udp -p udp --dport 1814 -j ACCEPT
#147.91.3.12 (monitor.eduroam.ac.rs)
-A INPUT -m state -s 147.91.3.12/32 --state NEW -m udp -p udp --dport 1812 -j ACCEPT
-A INPUT -m state -s 147.91.3.12/32 --state NEW -m udp -p udp --dport 1813 -j ACCEPT
-A INPUT -m state -s 147.91.3.12/32 --state NEW -m udp -p udp --dport 1814 -j ACCEPT
#147.91.56.177 (monitor2.eduroam.ac.rs)
-A INPUT -m state -s 147.91.56.177/32 --state NEW -m udp -p udp --dport 1812 -j ACCEPT
-A INPUT -m state -s 147.91.56.177/32 --state NEW -m udp -p udp --dport 1813 -j ACCEPT
-A INPUT -m state -s 147.91.56.177/32 --state NEW -m udp -p udp --dport 1814 -j ACCEPT
Napomena: Navedene linije je potrebno uneti bavezno iznad linije: -A INPUT -j REJECT --reject-with icmp-host-prohibited
Instalacija neophodnih softverskih paketa i biblioteka¶
Ažurirati instalirane pakete:
Instalirati FreeRADIUS softver:
Proveriti verziju instaliranog paketa:
radiusd: FreeRADIUS Version 3.2.1, for host x86_64-pc-linux-gnu, built on Aug 18 2023 at 22:26:34
FreeRADIUS Version 3.2.1
Copyright (C) 1999-2022 The FreeRADIUS server project and contributors
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE
You may redistribute copies of FreeRADIUS under the terms of the
GNU General Public License
For more information about these matters, see the file named COPYRIGHT
Konfiguracioni fajlovi se nalaze na putanji: /etc/freeradius/3.0
Konfiguracija FreeRADIUS servera i integracija sa OpenLDAP bazom podataka¶
Komercijalni SSL sertifikat¶
Kreiranje komercijalnog SSL sertifikata i ključa:
Komercijalni sertifikat i ključ treba da budu vrste GÉANT OV SSL koje kreirate po uputstvu:
- HTTPS Server Certificate (Public Key) - (institucija.ac.rs.crt) u /etc/freeradius/3.0/certs
- HTTPS Server Key (Private Key) - (institucija.ac.rs.key) u /etc/freeradius/3.0/certs
To se može uraditi na sledeći način:
Preuzme se fajl SCSreq.cnf na lokaciju /etc/freeradius/3.0/certs/SCSreq.cnf
wget https://docs.amres.ac.rs/download/shibboleth/SCSreq.cnf -O /etc/freeradius/3.0/certs/SCSreq.cnf
Generisati privatni ključ (.key) i zahtev (.csr):
openssl req -new -sha256 -config /etc/freeradius/3.0/certs/SCSreq.cnf -utf8 -keyout /etc/freeradius/3.0/certs/$(hostname -f).key -out /etc/freeradius/3.0/certs/$(hostname -f).csr
Primer postupka kreiranja privatnog ključa i zahteva (koristitli biste drugačiji naziv sertifikata i uneli biste odgovarajuće podatke):
openssl req -new -sha256 -config /etc/freeradius/3.0/certs/SCSreq.cnf -utf8 -keyout /etc/freeradius/3.0/certs/$(hostname -f).key -out /etc/freeradius/3.0/certs/$(hostname -f).csr
Generating a 2048 bit RSA private key
....................+++
....................+++
writing new private key to '/usr/local/etc/raddb/certs/institucija.ac.rs.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Oznaka zemlje (2 znaka) [RS]: Klik Enter
Pun naziv drzave []: Klik Enter
Lokacija (mesto) []: Naziv grada
Postanski broj []: 11000
Ulica i broj []: Adresa institucije
Zvanični naziv institucije []: Naziv institucije
FQDN adresa servera []: radius.institucija.ac.rs
Zatim generisani zahtev iskoristiti za kreiranje sertifikata (javnog ključa) na SCM portalu, koji treba da bude tipa GÉANT OV SSL:
Na kraju, kreiran komercijalni sertifikat se unosi na lokaciju /etc/freeradius/3.0/certs.
Preuzimanje CA Cert (GEANT_OV_RSA_CA_4.crt) sertifikata:
wget https://docs.amres.ac.rs/download/shibboleth/GEANT_OV_RSA_CA_4.crt -O /etc/freeradius/3.0/certs/GEANT_OV_RSA_CA_4.crt
Potrebno je definisati korisnika i grupu sertifikata i ključa da budu freerad:
eduroam virtuelni tunel¶
Virtuelni tuneli omogućavaju konfiguraciju većeg broja nezavnisnih servisa na FreeRADIUS platformi. Za potrebe eduroam sevisa, kreira se novi virtuelni tunel koji će obrađivati autentifikacione zahteve:
- Preći u poddirektorijum /etc/freeradius/3.0/sites-available/
- Kreirati eduroam virtuelni tunel kopiranjem default virtuelnog tunela u novi fajl
- Izmeniti kreirani fajl.
Sledi detaljan prikaz svih izmena fajla eduroam po koracima.
Sledeći koraci se odnose na authorize sekciju.
- Prvo je potrebno otkomentarisati liniju
#auth_log
- Zatim treba zakomentarisati linije
chap
,mschap
idigest
- Nakon toga treba zakomentarisati liniju
-sql
ukoliko se SQL baza ne koristi. To nije neophodno, ali je dobra praksa. - Zatim treba zakomentarisati linije
-ldap
ipap
- Na kraju zakomentarisati linije:
Pre izmena sekcija authorize izgleda ovako:
Sledeći koraci se odnose na accounting sekciju.
Sledeći koraci se odnose na session sekciju.
Sledeći koraci se odnose na post-auth sekciju.
Pre izmena sekcija post-auth izgleda ovako:
Potrebno je:
- Zakomentarisati liniju
-sql
ukoliko se SQL baza ne koristi. - Dodati sledeće linije nakon linije remove_reply_message_if_eap, a pre podsekcije Post-Auth-Type REJECT:
if (Client-IP-Address != 147.91.3.12) {
reply_log
}
if (Client-IP-Address != 147.91.56.177) {
reply_log
}
- Zakomentarisati liniju
-sql
ukoliko se SQL baza ne koristi u okviru Post-Auth-Type REJECT podsekcije
Prikaz fajla eduroam sa svim potrebnim izmenama:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
|
Zatim, potrebno je preći u poddirektorijum /etc/freeradius/3.0/sites-enabled i napraviti soft link ka eduroam virtuelnom tunelu iz poddirektorijuma /etc/freeradius/3.0/sites-available:
eduroam-inner virtuelni tunel¶
Potrebno je formirati eduroam-inner-tunnel virtuelni server, koji u svojoj konfiguraciji poziva određene module koji su odgovorni za komunikaciju sa LDAP bazom :
- Preći u poddirektorijum /etc/freeradius/3.0/sites-available/
- Napraviti kopiju fajla inner-tunnel virtuelnog tunela, čije će ime biti eduroam-inner-tunnel
- Izmeniti kreirani fajl.
Sledi detaljan prikaz svih izmena fajla eduroam-inner-tunnel po koracima.
Sledeći koraci se odnose na authorize sekciju.
Pre izmena sekcija authorize izgleda ovako:
Potrebno je:
- Zakomentarisati linije
filter_username
,chap
imschap
- Zakomentarisati liniju
-sql
ukoliko se SQL baza ne koristi. - Zakomentarisati liniju
-ldap
- Omogućiti logovanje autentifikacionih zahteva za sve klijete osim za monitore, dodavanjem sledećih linija nakon linije
-ldap
:
Sledi postupak dodele domena na radiusu konektoru/konektorima LDAP baze podataka
- Napomena: Parametar konektor je LDAP konektor konfigurisan u fajlu /etc/freeradius/3.0/mods-available/ldap.
- Postupak konfiguracije fajla ldap će biti prikazan u nastavku uputstva.
- U zavisnosti od toga da li posedujete jednostavan ili složeniji oblik LDAP baze potrebno je da se opredelite da li se koristi jedan ili više konektora, a samim tim u ovom fajlu je potrebno svakom konektoru dodeliti adekvatan domen.
Za jednostavan oblik LDAP baze, gde se svi korisnički nalozi nalaze u jednoj organizacionoj jedinici koristi se jedan LDAP konektor.
Napomena: Deo test\.institucija\.ac\.rs
treba zameniti domenom na radiusu koji se vezuje za tu grupu korisnika (npr. rgf\.bg\.ac\.rs
).
-
Voditi računa o formatu domena.
-
Dodati sledeće linije nakon linije (# -ldap), a pre linije (expiration).
Ukoliko LDAP baza ima nekoliko organizacionih jedinica ili grana u kojima su korisnički nalozi razdvojeni po grupama
- Ukoliko vaša LDAP baza ima korisničke naloge u nekoliko organizacionih jedinica ili grana, tako da se razdvoje npr. nalozi zaposlenih i studenata, potrebno je svaku od tih grana ili organizacionih jedinica definisati u pojedninačnom LDAP konektoru, a svakom od tih LDAP konektora treba dodeliti adekvatan domen na radiusu.
- Parametri konektor1 i konektor2 su LDAP konektori konfigurisani u fajlu /etc/freeradius/3.0/mods-available/ldap, kao primer definisanja više LDAP konektora.
- Postupak konfiguracije fajla ldap će biti prikazan u nastavku uputstva.
Napomena: Deo test1\.institucija\.ac\.rs
i deo test2\.institucija\.ac\.rs
treba zameniti domenima na radiusu koji se vezuju za korisnike (npr. rgf\.bg\.ac\.rs
i student\.rgf\.bg\.ac\.rs
).
-
Voditi računa o formatu domena.
-
Dodati sledeće linije nakon linije (# -ldap) a pre linije (expiration).
- Zakomentarisati linije
expiration
ilogintime
Sledeći koraci se odnose na post-auth sekciju.
Pre izmena sekcija post-auth izgleda ovako:
Potrebno je:
- Otkomentarisati liniju
cui-inner
i ispod nje dodati liniju:
- Dodati sledeće linije odmah nakon linije reply_log:
update reply {
Class !* ANY
AMRES-Attribute-mail !* ANY
AMRES-Attribute-cn !* ANY
AMRES-Attribute-uid !* ANY
AMRES-Attribute-gn !* ANY
AMRES-Attribute-sn !* ANY
AMRES-Attribute-o !* ANY
AMRES-Attribute-entitlement !* ANY
AMRES-Attribute-displayName !* ANY
AMRES-Attribute-StaffCategory !* ANY
AMRES-Attribute-LocalNumber !* ANY
AMRES-Attribute-UniqueCode !* ANY
}
if (Client-IP-Address != 147.91.3.12) {
reply_log
}
if (Client-IP-Address != 147.91.56.177) {
reply_log
}
Napomena: update reply sekcija se dodaje ukoliko se radius server konfiguriše za AMRES VPN uslugu i iAMRES Federaciju Identiteta.
- Zakomentarisati liniju
-sql
ukoliko se SQL baza ne koristi. - Zakomentarisati liniju
if (0) {
i odmah nakon nje dodati liniju :
Prikaz fajla eduroam-inner-tunnel sa svim potrebnim izmenama:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
|
Zatim, potrebno je preći u /etc/freeradius/3.0/sites-enabled poddirektorijum i napraviti soft link ka eduroam-inner-tunnel virtuelnom tunelu iz /etc/freeradius/3.0/sites-available poddirektorijuma:
eap modul¶
- Preći u poddirektorijum /etc/freeradius/3.0/mods-available/:
- Napraviti rezervnu kopiju fajla eap.
- Izmeniti fajl eap.
Modul eap je potrebno izmeniti da bude isti kao u nastavku.
Željeni metod autentifikacije se podešava na samom početku eap modula (default_eap_type).
U ovom uputstvu dat je primer za EAP-TTLS autentifikaciju. Nakon što se u prvoj liniji definiše metod autentifikacije, potrebno je u odgovarajućoj sekciji (ttls ili peap) promeniti parametar virtual_server tako da njegova vrednost bude jednaka eduroam-inner-tunnel. Ukoliko želite da kao sekundarni metod autentifikacije omogućite i PEAP, tada je potrebno u peap sekciji eap modula, takođe promeniti vrednost parametra virtual_server na eduroam-inner-tunnel.
Najpre je potrebno izmeniti metod autentifikacije.
Sledeći koraci se odnose na tls-config tls-common sekciju.
-
Sledi specifikacija sertifikata koji su kreirani na početku:
-
Zakomentarisati liniju
private_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
i ispod nje dodati liniju:
- Zakomentarisati liniju
certificate_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
i ispod nje dodati liniju:
- Zakomentarisati liniju
ca_file = /etc/ssl/certs/ca-certificates.crt
i ispod nje dodati liniju:
- Izmeniti minimalnu verziju TLS mehanizma tako što se zakomentariše linija
tls_min_version = "1.2"
i ispod nje dodati liniju:
Napomena: TLS 1.0 je verzija koja prestaje da se koristi za većinu korisničkih uređaja i polako se prelazi na minimalnu vreziju 1.2. Ukoliko želite možete da odmah postavite da minimalna verzija bude TLS 1.2.
- U ttls podsekciji potrebno je zakomentarisati liniju
virtual_server = "inner-tunnel"
i ispod nje dodati liniju:
Prikaz fajla eap sa svim potrebnim izmenama:
Fajl radiusd.conf¶
Potrebno je da vaš Davalac Identiteta čuva log fajlove, a autentifikacioni zahtevi se beleže u radius.log fajlu. Ovaj fajl se nalazi u /var/log/freeradius direktorijumu. Za svakog korisnika (ukoliko se koristi EAP-TTLS) se upisuju dve linije:
- korisničko ime iz spoljašnjeg (tj. eduroam) tunela, najčešće u formi anonymous@institucija.ac.rs i
- pravo korisničko ime iz unutrašnjeg (tj. eduroam-inner-tunnel) tunela, npr. pera.peric@institucija.ac.rs.
Kako bi se omogućilo upisivanje log poruka, prelazi se u direktorijum /etc/freeradius/3.0/ i treba izmeniti fajl radiusd.conf .
Potrebno je zakomentarisati liniju auth = no
i ispod nje dodati liniju:
Izgled fajla radiusd.conf nakon izmena:
ldap modul¶
Sledeći korak podrazumeva konfigurisanje FreeRADIUS servera da autentifikuje korisnike preko ldap modula.
- Preći u poddirektorijum /etc/freeradius/3.0/mods-available:
- Napraviti rezervnu kopiju fajla ldap.
- Izmeniti fajl ldap.
Sledi prikaz postupka konfiguracije ldap modula sa jednim konektorom. Ukoliko je potrebno konfigurisati više konektora, pratiti uputstvo za konfiguraciju jednog i zatim nastaviti po narednim koracima.
Potrebno je:
- Zakomentarisati liniju
ldap {
i ispod nje dodati linijuldap konektor{
gde je umesto reči konektor potrebno navesti naziv LDAP konektora:
- Specificirati LDAP server, ukoliko se LDAP baza nalazi na istoj ovoj VM ostaje linija
server = 'localhost'
, a ukoliko se LDAP baza nalazi na drugom serveru (ldap.institucija.ac.rs) potrebno je zakomentarisati linijuserver = 'localhost'
i ispod nje dodati liniju koja specificira ili domen udaljene mašine ili IP adresu:
- Navesti DN naloga putem koga se vrši integracija sa LDAP bazom podataka, možete koristiti u tu svrhu admin nalog LDAP baze npr. cn=admin,dc=institucija,dc=ac,dc=rs ili cn=admin,dc=institucija,dc=local. Ispod linije
#identity = 'cn=admin,dc=example,dc=org'
dodati liniju:
- Navesti lozinku naloga putem koga se vrši integracija sa LDAP bazom podataka (npr. mojaLozinka123). Ispod linije
#password = mypass
dodati liniju:
- Navesti deo LDAP baze u kom se nalaze nalozi koji se autentifikuju (npr. ou=people,dc=institucija,dc=ac,dc=rs ili ou=people,dc=institucija,dc=local). Zakomentarisati liniju
base_dn = 'dc=example,dc=org'
i zatim ispod nje dodati liniju:
- U okviru update podsekcije potrebno je uneti sledeće izmene:
Ispod linije control:Password-With-Header += 'userPassword', a iznad linije control: += 'radiusControlAttribute' dodati navedene linije:
control:Stripped-User-Name := 'uid'
reply:AMRES-Attribute-sn := 'sn'
reply:AMRES-Attribute-gn := 'givenName'
reply:AMRES-Attribute-uid := 'uid'
reply:AMRES-Attribute-cn := 'cn'
reply:AMRES-Attribute-mail += 'mail'
reply:AMRES-Attribute-o := 'o'
reply:AMRES-Attribute-entitlement += 'eduPersonEntitlement'
reply:AMRES-Attribute-displayName := 'displayName'
reply:AMRES-Attribute-Affiliation := 'rsEduPersonAffiliation'
reply:AMRES-Attribute-StaffCategory := 'rsEduPersonStaffCategory'
reply:Class := 'rsEduPersonPrimaryAffiliation'
Napomena: Atributi (tipovi podataka) sn, givenName, cn, mail, o, eduPersonEntitlement, displayName, rsEduPersonAffiliation, rsEduPersonStaffCategory i rsEduPersonPrimaryAffiliation se koriste za potrebe AMRES VPN usluge i iAMRES Federacije.
Prikaz fajla ldap sa svim potrebnim izmenama:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
|
Ukoliko je potrebno definisati više LDAP konektora, prekopirati čitav sadržaj fajla koji je dat iznad, ispod već konfigurisanog prvog ldap konektora i izmeniti sve potrebne parametre označene bojom.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 |
|
Kada je završena konfiguracija ldap modula, potrebno je preći u poddirektorijum /etc/freeradius/3.0/mods-enabled i napraviti soft link ka ldap modulu iz poddirektorijuma /usr/local/etc/raddb/mods-available:
Fajl dictionary¶
Preuzeti fajl dictionary:
Fajl clients.conf¶
-
Fajl clients.conf se nalazi u direktorijumu /etc/freeradius/3.0/ i predstavlja modul u kome se definišu RADIUS klijenti - uređaji u mreži od kojih se prihvataju zahtevi. Ovi uređaji mogu biti drugi RADIUS serveri ili NAS (Network Access Server) tačke.
-
U okviru clients.conf fajla je potrebno definisati 2 AMRES FTLR (Federation Top Level Radius Server) servera i još jedan server koji se koristi za nadgledanje operativnosti RADIUS servera eduroam hijerarhije.
-
Konfiguracija koja je data u nastavku može se iskopirati i dodati direktno na kraj clients.conf fajla.
-
Šifra potrebna za komunikaciju sa klijentima se definiše u secret parametru. Ovaj parametar se dobija lično ili telefonskim putem od AMRES-a i njega je potrebno zameniti u konfiguraciji.
- Na kraj fajla dodati sledeće linije:
Fajl proxy.conf¶
Fajl proxy.conf se nalazi u /etc/freeradius/3.0/ direktorijumu. Ovaj konfiguracioni fajl omogućava serveru da zna na koji način će obrađivati pristigle RADIUS zahteve.
Zahtevi se mogu obrađivati lokalno ili se mogu prosleđivati (proksirati) nekom drugom serveru. Kako je ovo uputstvo namenjeno za Davaoca Identiteta, smatra se da se zahtevi obrađuju lokalno. Ovo znači da je potrebno definisati samo lokalni domen (realm) i u njemu označiti da se korisnici autentifikuju lokalno.
Linije koje su označene se dodaju u fajl.
Ukoliko ste u okviru fajla eduroam-inner-tunnel definisali jedan domen i LDAP konektor, izmene fajla proxy.conf su sledeće:
- Na dnu fajla dodati sledeće linije:
realm test.institucija.ac.rs {
authhost = LOCAL
accthost = LOCAL
User-Name = "%{Stripped-User-Name}"
}
Umesto domena test.institucija.ac.rs potrebno je staviti domen Vaše institucije, koji koristite u okviru AMRES-a (npr. rgf.bg.ac.rs).
Prikaz fajla proxy.conf sa svim potrebnim izmenama:
Ukoliko ste u okviru fajla eduroam-inner-tunnel definisali više domena i LDAP konektora, izmene fajla proxy.conf su sledeće:
- Na dnu fajla dodati sledeće linije:
realm test1.institucija.ac.rs {
authhost = LOCAL
accthost = LOCAL
User-Name = "%{Stripped-User-Name}"
}
realm test2.institucija.ac.rs {
authhost = LOCAL
accthost = LOCAL
User-Name = "%{Stripped-User-Name}"
}
Prikaz fajla proxy.conf sa svim potrebnim izmenama:
Konfiguracija CUI atributa¶
Ako dođe do sigurnosnog incidenta u eduroam servisu, u najvećem broju slučajeva Davalac Resursa u svojim logovima može da pronađe samo anonimni identitet korisnika (anonymous@idp.ac.rs). U tom slučaju, dok se dotični korisnik ne identifikuje u bazi Davaoca Identiteta, Davalac Resursa jedino može da blokira ceo domen problematičnog korisnika. Rešenje ovog problema se postiže korišćenjem CUI atributa.
CUI (Chargeable User Identity) predstavlja jednistveni identifikator svakog eduroam korisnika, formira ga Davalac Identiteta i šalje Davaocu Resursa.
Ako je autentifikacija uspešna, Davalac Identiteta formira CUI atribut formiranjem MD5 hash-a koristeći UID korisnika, Operator-Name atribut iz zahteva i opciono ključa (u ovom primeru cui_hash_key). Ova vrednost se u Access-Accept poruci vraća Davaocu Resursa. Bitno je napomenuti da će vrednosti CUI atributa biti različita za istog korisnika, koji koristi eduroam resurse kod različitih Davaoca Resursa.
Izmena fajla cui¶
- Preći u poddirektorijum /etc/freeradius/3.0/policy.d
- Izmeniti fajl cui.
cui_hash_key = "changeme"
umesto dela changeme dodati proizvoljnu lozinku. Sledi prikaz fajla cui sa izvršenomm izmenom:
Kreiranje modula eduroam_cui_log¶
Preuzeti fajl eduroam_cui_log:
wget https://docs.amres.ac.rs/download/radius/eduroam_cui_log -O /etc/freeradius/3.0/mods-available/eduroam_cui_log
Kada je kreiran modul eduroam_cui_log, potrebno je preći u poddirektorijum /etc/freeradius/3.0/mods-enabled i napraviti soft link ka ldap modulu iz poddirektorijuma /etc/freeradius/3.0/mods-available:
Ovim su završena osnovna podešavanja neophodna za funkcionisanje RADIUS servera.
Konfiguracija dynamic-vlan servisa¶
U okviru post-auth sekcije u eduroam-inner-tunnel fajlu se po potrebi može definisati i VLAN u koji se smeštaju zahtevi na mreži. U okviru sekcije potrebno je otkomentaisati ili dodati parametar:
Ovaj parametar poziva policy koji se definise u /etc/freeradius/3.0/policy.d/ folderu, a preporuka je da se doda u cui fajl:dynamic-vlan.post-auth {
if (request:User-Name =~ /^((.)+)@institucija\.ac\.rs$/ && reply:rsEduPersonStaffCategory != 'administrativno osoblje') {
if (reply:Class == 'zaposleni' && (outer.request:Calling-Station-Id =~ /^10-xx-xx.+$/ || outer.request:Calling-Station-Id =~ /^60-xx-xx.+$/) || outer.request:Calling-Station-Id =~ /^88-xx-xx.+$/ || outer.request:Calling-Station-Id =~ /^a0-xx-xx.+$/) {
# U poslednji "if" je dodato outer.request. Ovaj atribut se ne kopira u zahtev iz unutrasnjeg tunela.
# Drugo resenje bi bilo da se stavi u eap fajlu "copy_request_to_tunnel = yes" u ttls sekciji
if (outer.request:NAS-IP-Address == 147.91.x.x || outer.request:NAS-IP-Address == 147.91.x.x || outer.request:NAS-IP-Address == 147.91.x.x) {
update outer.reply {
Tunnel-Type:1 := "VLAN",
Tunnel-Medium-Type:1 := "IEEE-802",
Tunnel-Private-Group-ID:1 := "255"
}
}
}
}
}
Ukoliko je potrebno podesiti i druge pojedinačne slučajeve to se može uraditi i na neki od sledećih načina u okviru post-auth sekcije u eduroam-inner-tunnel fajlu, iznad parametara cui_inner i cui_inner_log. Primeri su dati u nastavku:
if (request:User-Name == 'user@institucija.ac.rs' && reply:rsEduPersonStaffCategory != 'administrativno osoblje') {
update outer.reply {
Tunnel-Type:1 := "VLAN",
Tunnel-Medium-Type:1 := "IEEE-802",
Tunnel-Private-Group-ID:1 := "252"
}
}
if (request:User-Name =~ /^((.)+)@institucija\.ac\.rs$/) {
if (reply:Class == 'gost' && (outer.request:NAS-IP-Address == 147.91.x.x || outer.request:NAS-IP-Address == 147.91.x.x || outer.request:NAS-IP-Address == 147.91.x.x)) {
update outer.reply {
Tunnel-Type:1 := "VLAN",
Tunnel-Medium-Type:1 := "IEEE-802",
Tunnel-Private-Group-ID:1 := "252"
}
}
}
if (request:User-Name == 'user@institucija.ac.rs' && outer.request:Calling-Station-Id == 'xx-xx-xx-xx-xx-xx') {
update outer.reply {
Tunnel-Type:1 := "VLAN",
Tunnel-Medium-Type:1 := "IEEE-802",
Tunnel-Private-Group-ID:1 := "255"
}
}
Provera konfiguracije RADIUS servera¶
Za proveru konfiguracije preporuka je da se RADIUS proces pokrene prvo u debug modu, komandom freeradius -X
Preporuka je da se debug mod koristi samo u slučaju kada se prave izmene u konfiguraciji ili u slučaju kada neko od korisnika ima problem sa povezivanjem na eduroam, jer se u debug modu lozike prikazuju u clear-text formatu.
Ukoliko je konfiguracija bez grešaka, na ekranu se ispisuje sledeće:
.
.
.
Listening on auth address * port 1812 bound to server eduroam
Listening on acct address * port 1813 bound to server eduroam
Listening on auth address :: port 1812 bound to server eduroam
Listening on acct address :: port 1813 bound to server eduroam
Listening on auth address 127.0.0.1 port 18120 bound to server eduroam-inner-tunnel
Listening on proxy address * port xxxxx
Listening on proxy address :: port xxxxx
Ready to process requests
Prekid rada RADIUS procesa u debug modu, se izvršava sa CTRL+C
RADIUS proces se po potrebi zaustavlja se komandom systemctl stop freeradius, ukoliko je potrebno izmeniti konfiguraciju ili ukoliko postoji problem u povezivanju na eduroam servis i gde je potrebno istražiti problem
Spisak linkovanih modula¶
lrwxrwxrwx 1 freerad freerad 24 Nov 6 12:32 always -> ../mods-available/always
lrwxrwxrwx 1 freerad freerad 29 Nov 6 12:32 attr_filter -> ../mods-available/attr_filter
lrwxrwxrwx 1 freerad freerad 22 Nov 6 12:32 chap -> ../mods-available/chap
lrwxrwxrwx 1 freerad freerad 24 Nov 6 12:32 detail -> ../mods-available/detail
lrwxrwxrwx 1 freerad freerad 28 Nov 6 12:32 detail.log -> ../mods-available/detail.log
lrwxrwxrwx 1 freerad freerad 24 Nov 6 12:32 digest -> ../mods-available/digest
lrwxrwxrwx 1 freerad freerad 33 Nov 6 12:32 dynamic_clients -> ../mods-available/dynamic_clients
lrwxrwxrwx 1 freerad freerad 21 Nov 6 12:32 eap -> ../mods-available/eap
lrwxrwxrwx 1 freerad freerad 22 Nov 6 12:32 echo -> ../mods-available/echo
lrwxrwxrwx 1 freerad freerad 33 Nov 6 12:46 eduroam_cui_log -> ../mods-available/eduroam_cui_log
lrwxrwxrwx 1 freerad freerad 22 Nov 6 12:32 exec -> ../mods-available/exec
lrwxrwxrwx 1 freerad freerad 28 Nov 6 12:32 expiration -> ../mods-available/expiration
lrwxrwxrwx 1 freerad freerad 22 Nov 6 12:32 expr -> ../mods-available/expr
lrwxrwxrwx 1 freerad freerad 23 Nov 6 12:32 files -> ../mods-available/files
lrwxrwxrwx 1 freerad freerad 22 Nov 6 12:43 ldap -> ../mods-available/ldap
lrwxrwxrwx 1 freerad freerad 25 Nov 6 12:32 linelog -> ../mods-available/linelog
lrwxrwxrwx 1 freerad freerad 27 Nov 6 12:32 logintime -> ../mods-available/logintime
lrwxrwxrwx 1 freerad freerad 24 Nov 6 12:32 mschap -> ../mods-available/mschap
lrwxrwxrwx 1 freerad freerad 27 Nov 6 12:32 ntlm_auth -> ../mods-available/ntlm_auth
lrwxrwxrwx 1 freerad freerad 21 Nov 6 12:32 pap -> ../mods-available/pap
lrwxrwxrwx 1 freerad freerad 24 Nov 6 12:32 passwd -> ../mods-available/passwd
lrwxrwxrwx 1 freerad freerad 28 Nov 6 12:32 preprocess -> ../mods-available/preprocess
lrwxrwxrwx 1 freerad freerad 25 Nov 6 12:32 radutmp -> ../mods-available/radutmp
lrwxrwxrwx 1 freerad freerad 23 Nov 6 12:32 realm -> ../mods-available/realm
lrwxrwxrwx 1 freerad freerad 27 Nov 6 12:32 replicate -> ../mods-available/replicate
lrwxrwxrwx 1 freerad freerad 21 Nov 6 12:32 soh -> ../mods-available/soh
lrwxrwxrwx 1 freerad freerad 26 Nov 6 12:32 sradutmp -> ../mods-available/sradutmp
lrwxrwxrwx 1 freerad freerad 22 Nov 6 12:32 unix -> ../mods-available/unix
lrwxrwxrwx 1 freerad freerad 24 Nov 6 12:32 unpack -> ../mods-available/unpack
lrwxrwxrwx 1 freerad freerad 22 Nov 6 12:32 utf8 -> ../mods-available/utf8
Podešavanje logrotate funkcije¶
Sva podešavanja logrotate funkcije se obavljaju u logrotate.conf fajlu. Ovaj fajl se nalazi u /etc direktorijumu.
Izgled fajla pre izmena je dat u nastavku:
# see "man logrotate" for details
# global options do not affect preceding include directives
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
#dateext
# uncomment this if you want your log files compressed
#compress
# packages drop log rotation information into this directory
include /etc/logrotate.d
# system-specific logs may also be configured here.
Za pregled i opis svih logrotate funkcionalnosti može se primeniti komanda:
Direktorijume i log fajlove koje želite da rotirate potrebno je dodati na kraj ovog konfiguracionog fajla. U zavisnosti od potreba, može se koristiti širok spektar različitih kombinacija komandi. Neke od najzačajnih su date u nastavku, uz odgovarajuće objašnjenje:
-
compress – omogućava da se fajlovi kompresuju, default vrednost je gunzip.
-
extension – ne označava tip ekstenzije, već ekstenziju koja se dodaje posle imena fajla. Ovo može biti korisno prilikom reimenovanja rotiranih log fajlova. Ukoliko se koristi i compress opcija, tada će pre .gz ekstenzije biti navedena ekstenzija koju je definisao korisnik. Npr. kada je potrebno preimenovati fajl radius.log u radius.log.pera, dodaje se celo ime posle extension naredbe. Kada je navedena i opcija compress, tada će ime rotiranog fajla biti radius.log.pera.gz.
-
mail – pre nego što se log fajl izbriše, može se poslati mejl na adresu koja je navedena, npr. mail pera.peric@idp.ac.rs.
-
postrotate/endscript i pretrotate/endscript – kôd između ove dve komande se izvršava nakon, odnosno pre nego što se log fajl rotira, respektivno.
-
rotate – sintaksa je rotate
. Fajlovi se rotiraju tačno puta, pre nego što se obrišu. Ako je count jednak nuli, stare verzije se brišu umesto da se rotiraju. Kada se dođe do poslednje vrednosti, počinje se od početka. Na ovaj način briše se fajl koji je bio rotiran prvi i novi ga zamenjuje. -
size – log fajlovi se rotiraju kada pređu veličinu koja je navedena. Ako se posle broja koji označava veličinu ne navede ništa, smatra se da se radi o veličini fajla u KB. Može se definisati i veličina u MB, tako što se posle broja navede slovo M.
-
start – broj od koga počinje numeracija log fajlova koji se rotiraju (ako se navede 1, sledeći log fajl će imati broj 2 i tako redom). Ova opcija nije zavisna od rotate opcije, što znači da će fajlovi i dalje biti rotirani onoliko puta koliko je navedeno rotate opcijom.
Pored ovih opcija, moguće je definisati u kom vremenskom intervalu će se logovi rotirati, komandama: daily, monthly i weekly. Ukoliko je potrebno čuvati logove za celu godinu, to je moguće korišćenjem komande monthly u kombinaciji sa rotate funkcijom. Ukoliko se rotira jedan fajl, potrebno je navesti punu putanju do njega, (npr. /usr/local/var/log/radius/radius.log)
Na kraju fajla potrebno je dodati sledeće:
/var/log/freeradius/radius.log {
monthly
rotate 12
start 1
compress
dateext
}
/var/log/freeradius/cui_inner_log {
monthly
rotate 12
start 1
compress
dateext
}
/var/log/freeradius/radwtmp {
daily
start 1
compress
dateext
}
Primenom ovog koda postiže se :
- Rotiranje radius.log i cui_inner_log fajla na mesečnom nivou
- Kompresija je tipa .gzip
- Rotiran fajl će imati ekstenziju sa datumom rotacije (npr. radius.log-GGGGMMDD.gz)
Prikaz sadržaja fajla /etc/logrotate.conf:
# see "man logrotate" for details
# global options do not affect preceding include directives
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
#dateext
# uncomment this if you want your log files compressed
#compress
# packages drop log rotation information into this directory
include /etc/logrotate.d
# system-specific logs may also be configured here.
/var/log/freeradius/radius.log {
monthly
rotate 12
start 1
compress
dateext
}
/var/log/freeradius/cui_inner_log {
monthly
rotate 12
start 1
compress
dateext
}
/var/log/freeradius/radwtmp {
daily
start 1
compress
dateext
}
Kreiranje alijasa (opciono)¶
U cilju lakšeg održavanja RADIUS servera od pomoći bi bilo kreirati "prečice" ka bitnim direktorijumima:
-
prečica r za prelazak u direktorijum /etc/freeradius/3.0/
-
prečica rl za prelazak u direktorijum /var/log/freeradius/
Otvoriti i editovati sledeći fajl:
Nakon navođenja poslednjeg alijasa dodati sledeće linije:
Primeniti izmene pokretanjem sledeće komande:Procedura kod izmene konfiguracije RADIUS servera¶
Pre bilo kakve izmene u konfiguraciji RADIUS servera ili ukoliko se detektuje problem u njegovom funkcionisanju potrebno je najpre zaustaviti RADIUS proces ukoliko je aktivan
Zatim možete da izvršite promene u konfiguraciji i istražite eventualni problem u funkcionisanju RADIUS servera
Za proveru konfiguracije preporuka je da se RADIUS proces pokrene prvo u debug modu, komandom radiusd -X
Preporuka je da se debug mod koristi samo u slučaju kada se prave izmene u konfiguraciji ili u slučaju kada neko od korisnika ima problem sa povezivanjem na eduroam, jer se u debug modu lozike prikazuju u clear-text formatu.
Ukoliko je konfiguracija bez grešaka, na ekranu se ispisuje sledeće:
.
.
.
Listening on auth address * port 1812 bound to server eduroam
Listening on acct address * port 1813 bound to server eduroam
Listening on auth address :: port 1812 bound to server eduroam
Listening on acct address :: port 1813 bound to server eduroam
Listening on auth address 127.0.0.1 port 18120 bound to server eduroam-inner-tunnel
Listening on proxy address * port xxxxx
Listening on proxy address :: port xxxxx
Ready to process requests
Prekid rada RADIUS procesa u debug modu, se izvršava sa CTRL+C
RADIUS proces u standardnom modu se pokreće komandom systemctl restart freeradius
Ukoliko se pojavi navedeno upozorenje prilikom startovanja freeradius procesa treba izmeniti fajl na LDAP serveru:
TLSMC: MozNSS compatibility interception begins.
tlsmc_convert: INFO: cannot open the NSS DB, expecting PEM configuration is present.
tlsmc_intercept_initialization: INFO: successfully intercepted TLS initialization. Continuing with OpenSSL only.
TLSMC: MozNSS compatibility interception ends.
Otići na putanju /etc/openldap/ i editovati fajl ldap.conf:
Da bi se izbeglo upozorenje o grešci prilikom startovanja radiusd procesa treba dodati sledeću liniju na kraj fajla ldap.conf:
Restartovati slapd proces:
Pridruživanje AMRES eduroam servisu¶
Na stranici http://www.eduroam.amres.ac.rs/rs/institucije-prikljucivanje.html možete da pročitate o tome šta je šta je potrebno kako bi se Vaša institucija pridružila AMRES eduroam servisu.
Podešavanje FreeRADIUS3 servera za AMRES VPN¶
Nakon što ste uspešno instalirali i konfigurisali FreeRADIUS server za potrebe Davaoca Identiteta možete preći na podešavanje istog FreeRADIUS servera za AMRES VPN uslugu, ukoliko vam je to potrebno.
Uputstvo za podešavanje FreeRADIUS3 servera za AMRES VPN