Konfigurace RADIUS serveru

Připojíme se pomocí SSH na server, kde poběží RADIUS. Nejprve si aktualizujeme repozitáře a nainstalujeme potřebné balíčky:

apt update
apt install freeradius mlocate

Následně budeme chtít editovat konfigurační soubor clients.conf, kde přidáme klienty:

nano /etc/freeradius/3.0/clients.conf

client SSH1 {
ipv6addr = 2001:718:1001:2c6::117
secret = zbJKUZgw67n4jmA8tQax}

client SSH2 {
ipv6addr = 2001:718:1001:2c6::113a
secret = zbJKUZgw67n4jmA8tQax}

Následně je potřeba vytvořit uživatele, což provedeme v souboru users. Uživatelům je potřeba v clear-text podobě přiřadit heslo (pro testovací účely jsme zvolili lehce zapamatovatelná hesla):

nano /etc/freeradius/3.0/users

tomas Cleartext-Password := "tomas123"
marek Cleartext-Password := "marek123"
martin Cleartext-Password := "martin123"

Následně stačí službu freeradius restartovat, popřípadě otestovat konfiguraci:

system freeradius restart

freeradius -CX

Konfigurace klientů

Nejprve aktualizujeme repozitáře a nainstalujeme potřebné balíčky:

apt update
apt install libpam-radius-auth freeradius-utils

Pro správné fungování PAM modulu pro IPv6 je potřeba jej překompilovat.

apt install libpam0g-dev
curl https://codeload.github.com/FreeRADIUS/pam_radius/tar.gz/release_2_0_0 >pam_radius.tar.gz
tar -zxvf pam_radius.tar.gz
cd pam_radius-release_2_0_0/
./configure
make
mkdir /lib/security
cp pam_radius_auth.so /lib/security/.
cp pam_radius_auth.so /etc/raddb/server

Po překompilování přidáme do souboru server IP adresu (popřípadě doménový název) a heslo RADIUS serveru, nakonec řádku se přidává ještě timeout pro přihlášení:

nano /etc/raddb/server

[2001:718:1001:2c6::11b]  zbJKUZgw67n4jmA8tQax 	10
vsb-lab.martinvylet.cz    zbJKUZgw67n4jmA8tQax 	10

Pro správné fungování autentizace je potřeba vytvořit v systému dané uživatele bez hesla pomocí následujících příkazů:

adduser marek --disabled-password --quiet --gecos ""
adduser martin --disabled-password --quiet --gecos ""
adduser tomas --disabled-password --quiet --gecos ""

Funkčnost komunikace klienta se serverem můžeme ověřit pomocí příkazu:

radtest jméno_uživatele heslo_uživatele IP_adresa_serveru 0 heslo_RADIUS_serveru
=
radtest marek marek123 [2001:718:1001:2c6::11b] 0 zbJKUZgw67n4jmA8tQax

Pokud je vše správně nakonfigurované, tak by měla odpověď na tento příkaz vypadat následovně:

Sent Access-Request Id 243 from [::]:43358 to [2001:718:1001:2c6::11b]:1812 length 75
        User-Name = "marek"
        User-Password = "marek123"
        NAS-IP-Address = 127.0.0.2
        NAS-Port = 0
        Message-Authenticator = 0x00
        Cleartext-Password = "marek123"
Received Access-Accept Id 243 from [2001:718:1001:2c6::11b]:1812 to [::]:0 length 20

Pro fungování autentizace pro SSH spojení je potřeba ještě na začátek souboru sshd a login přidat ověřování pomocí pam_radius_auth modulu:

nano /etc/pam.d/sshd

auth sufficient pam_radius_auth.so

nano /etc/pam.d/login

auth sufficient pam_radius_auth.so