Zum Inhalt

FreeRADIUS RADIUS Server und MariaDB

Einleitung

RADIUS ist ein AAA-Protokoll (Authentifizierung, Autorisierung und Abrechnung) zur Verwaltung des Netzwerkzugriffs. FreeRADIUS ist der De-facto-RADIUS-Server für Linux und andere Unix-ähnliche Systeme.

Sie können FreeRADIUS mit MariaDB verwenden, beispielsweise für die Authentifizierung nach 802.1X, Wi-Fi oder VPN.

Voraussetzungen

Folgende Mindestanforderungen gelten für dieses Verfahren:

  • Die Möglichkeit, Befehle als root-Benutzer auszuführen oder mit sudo die Berechtigungen zu erhöhen
  • MariaDB-Server
  • Ein RADIUS-Client, beispielsweise ein Router, Switch oder WLAN-Zugangspunkt

FreeRADIUS-Installation

Sie benötigen zunächst EPEL und CRB:

dnf install epel-release
crb enable

Anschließend können Sie FreeRADIUS aus den dnf-Repositorys installieren:

dnf install -y freeradius freeradius-mysql

MariaDB

Sie müssen MariaDB wie folgt installieren:

dnf install mariadb-server

FreeRADIUS-Konfiguration

Nach der Installation der Pakete müssen Sie zunächst die TLS-Verschlüsselungszertifikate für FreeRADIUS generieren:

cd /etc/raddb/certs
./bootstrap

Anschließend müssen Sie sql aktivieren. Bearbeiten Sie die Datei /etc/raddb/sites-enabled/default und ersetzen Sie -sql durch sql:

authorize {
   ...
   sql
   ...
}
...
accounting {
   ...
   sql
   ...
}
...
session {
   ...
   sql
   ...
}
...
post-auth {
    ...
    sql
    ...
    Post-Auth-Type REJECT {
        sql
    }
    ....

}

Führen Sie das gleiche Verfahren in /etc/raddb/sites-enabled/inner-tunnel durch:

authorize {
   ...
   sql
   ...
}
...
session {
   ...
   sql
   ...
}
...
post-auth {
    ...
    sql
    ...
    Post-Auth-Type REJECT {
        sql
    }
    ....

}

Ändern Sie die Zeile program in /etc/raddb/mods-enabled/ntlm_auth wie folgt:

Ändern Sie in der Datei /etc/raddb/mods-available/sql den Wert für dialect in mysql:

        dialect = "mysql"

Ändern Sie dann den Treiber – driver –:

        driver = "rlm_sql_${dialect}"

Löschen Sie im Abschnitt mysql { den Unterabschnitt tls {.

Legen Sie anschließend den Datenbanknamen, den Benutzernamen und das Passwort fest:

        server = "127.0.0.1"
        port = 3306
        login = "radius"
        password = "password"
        ...
        radius_db = "radius"

Ersetzen Sie die obigen Felder durch Ihre jeweiligen Server- und Benutzernamen.

Sie müssen außerdem Clients definieren. Dies dient dazu, unbefugten Zugriff auf unseren RADIUS-Server zu verhindern. Bearbeiten Sie die Datei clients.conf:

vi clients.conf

Bitte Folgendes einfügen:

client 172.20.0.254 {
        secret = secret123
}

Ersetzen Sie 172.20.0.254 und secret123 durch die IP-Adresse und den geheimen Wert, die die Clients verwenden werden. Wiederholen Sie dies für weitere Clients.

Einfügen des MariaDB-Schemas

Aktivieren Sie zunächst MariaDB und führen Sie das Setup aus.

systemctl enable --now mysql
mysql_secure_installation

Als Nächstes melden Sie sich bei MariaDB an:

mysql -u root -p

Erstellen Sie nun den RADIUS-Benutzer und die Datenbank:

create database radius;
create user 'radius'@'localhost' identified by 'password';
grant all privileges on radius.* to 'radius'@'localhost';

Ersetzen Sie Benutzername, Passwort und Datenbanknamen durch die gewünschten Werte.

Fügen Sie anschließend das MariaDB-Schema ein:

mysql -u root -p radius < /etc/raddb/mods-config/sql/dhcp/mysql/schema.sql

Ersetzen Sie den Datenbanknamen durch den von Ihnen ausgewählten Namen.

Benutzer-Konten erstellen

Melden Sie sich zunächst bei MariaDB an:

mysql -u root -p radius

Dann können Sie Benutzer hinzufügen:

insert into radcheck (username,attribute,op,value) values("neha", "Cleartext-Password", ":=", "iloveicecream");

Ersetzen Sie neha und iloveicecream durch die gewünschten Benutzernamen und Passwort.

Sie können auch Software von Drittanbietern verwenden, um Benutzer hinzuzufügen. Beispielsweise ermöglichen WHMCS (Web Host Manager Complete Solution) und diverse Abrechnungssysteme von Internetdienstanbietern dies.

FreeRADIUS-Aktivierung

Nach der Erstkonfiguration können Sie radiusd starten:

systemctl enable --now radiusd

Konfigurieren von RADIUS auf einem Switch

Nach der Einrichtung des FreeRADIUS-Servers konfigurieren Sie einen RADIUS-Client.

Beispielsweise kann der MikroTik-Switch des Autors wie folgt konfiguriert werden:

/radius
add address=172.20.0.12 secret=secret123 service=dot1x
/interface dot1x server
add interface=combo3

Ersetzen Sie 172.20.0.12 durch die IP-Adresse des FreeRADIUS-Servers und secret123 durch den zuvor festgelegte secret-Wert.

Author: Neel Chauhan