HOWTO FreeRadius and MySQL

Uit Gentoo Linux Wiki

Ga naar: navigatie, zoeken

Inhoud

[bewerken] Introduction

Freeradius wordt vooral gebruikt voor authenticatie met draadloze netwerken. De reden waarvoor we Freeradius met mySQL willen gebruiken is vrij simpel. Snellere en efficiƫntere aanpak om de gebruikers aan te maken en aan te passen door middel van PHP/ASP/JSP of een andere webscripting taal.

Freeradius kan met zowel mySQL/Oracle/... databanken werken. Deze tutorial gebruikt mySQL.

[bewerken] Installatie

Eerst emergen we alle nodige pakketten.

emerge dev-db/mysql freeradius

[bewerken] Configuratie

[bewerken] mySQL

Na het emergen van mysql moeten we de databanken aanmaken.

/usr/bin/mysql_install_db

Daarna moeten we de mySQL database opstarten en automatisch bij het opstarten laten starten

/etc/init.d/mysql start
rc-update add mysql default

Daarna moeten het root paswoord voor de mySQL database instellen. Hier kan je al een zeer belangrijke beveiliging inschakelen. Je kan namelijk zeggen dat het root paswoord alleen maar vanop de server zelf kan worden geopend.

Root kan van elke computer inloggen op de databank.

/usr/bin/mysqladmin -u root password 'new-password'

Root kan alleen vanop 'computer' worden geopend.

/usr/bin/mysqladmin -u root -h 'computer' password 'new-password'

Vervolgens beveiligen we onze mysql installatie:

/usr/bin/mysql_secure_installation

Volg gewoon de stappen zijn over duidelijk.

Dan moeten we een databank creeƫren waar onze radius zijn gegevens zal bewaren en opvragen. We loggen in in de mySQL service met root privileges. (Met het paswoord dat we hierboven voor de root hebben ingesteld)

mysql -p

We maken een databank aan en maken een gebruiker aan die hierop alle rechten zal hebben.

CREATE DATABASE radius;
GRANT ALL PRIVILEGES ON radius.* to 'radiususer'@'localhost' IDENTIFIED BY 'radiuspass';
FLUSH PRIVILEGES;
EXIT

Dan moeten we het radius schema importeren in onze gemaakte radius databank.

cat /usr/share/doc/freeradius*/examples/mysql.sql | mysql -u radiususer -p radius

Opgelet! Dit commando werkt alleen als er geen andere versie van radius op dezelfde moment is geinstalleerd. (Door *)

Laten we ook direct een test gebruiker toevoegen. We openen de mySQL service en gebruiken 'radiuspass' dat we hierboven hebben aangemaakt.

mysql -D radius -u radiususer -p

Dan voegen we de nieuwe gebruiker toe

INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('mysqltestuser', 'Password', 'mysqltestpass');
EXIT

[bewerken] Freeradius

Nu dat de mysql klaar is, is het tijd voor de freeradius server op te stellen. De standaard config van Freeradius is goed. Alleen moeten we nu nog de mySQL support activeren.

Zoek naar volgende lijn: "Look in an SQL database" Verwijder het '#' van voor sql wat 4 lijnen onder de "Look in an SQL database" staat.

nano -w /etc/raddb/radiusd.conf 

Zoek naar de authorize sectie en verwijder het '#' van voor sql Zoek naar de accounting sectie en verwijder het '#' van voor sql (Voor sql accounting te activeren)

nano -w /etc/raddb/radiusd.conf

Nu gaan we mySQL database gebruiker moeten instellen in de configs zodat: login = radiususer pass = radiuspass

nano -w /etc/raddb/sql.conf 

Vervolgens moeten we de radiusclients instellen. De radius clients zijn de routers/accesspoints/Network Access Servers die gegevens zullen vragen aan de Freeradius. Zet de clients niet te flexible! Als illustratie en voor testdoeleinden zullen wij de Freeradius servers als client configureren met onderstaande gegevens: client 127.0.0.1 { secret = testing shortname = localhost nastype = other }

nano -w /etc/raddb/clients.conf

Dan als laatste moeten we nog de default Authenticatie manier aanpassen! We veranderen:

# 
# First setup all accounts to be checked against the UNIX /etc/passwd.
# (Unless a password was already given earlier in this file).
#
DEFAULT Auth-Type = System
       Fall-Through = 1

in:

# 
# First setup all accounts to be checked against the UNIX /etc/passwd.
# (Unless a password was already given earlier in this file).
#
DEFAULT Auth-Type = Local
        Fall-Through = 1

door het bestand /etc/raddb/users te openen.

nano -w /etc/raddb/users

Wat we concreet doen is het volgende: We zeggen dat onze radius server default altijd in de lokale bestanden /etc/raddb/users en mysql moeten gaan kijken voor het paswoord. Bij System kijkt hij in /etc/passwd. De Fall-Through laat toe dat er nog andere defaults achter deze komen.

[bewerken] Testen

radtest mysqltestuser mysqltestpass 127.0.0.1 1812 testing

Zou dit moeten geven:

Sending Access-Request of id 211 to 127.0.0.1 port 1812
        User-Name = "mysqltestuser"
        User-Password = "mysqltestpass"
        NAS-IP-Address = 255.255.255.255
        NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=211, length=20
Afkomstig van de Nederlandstalige Gentoo Wiki, het vrije Gentoo handboek. "http://nl.gentoo-wiki.com/HOWTO_FreeRadius_and_MySQL"
Persoonlijke instellingen