cs:spravce:pripojovani:radius:freeradius_playbook

Toto je starší verze dokumentu!


Instalace FreeRADIUSu 3 pro eduroam pomocí Ansible

Pro snažší instalaci můžete využít tento návod a instalaci pomocí nástroje Ansible. Tato metoda je určena pouze pro zkušené uživatele. Pokud nemáte dostatečné zkušenosti, s tímto postupem pravděpodobně strávíte mnohem více času než s manuální instalací! V případě, že nemáte dostatečné zkušenosti, využijte prosím návod pro manuální instalaci zde.

Tento návod je určen výhradně pro distribuci Debian. V případě, že používáte jinou distribuci, není zaručeno, že instalace bude fungovat správně, proto zvažte, zda pro vás není vhodnější manuální instalace.

Prerekvizity

  • Operační systém Debian (doporučeno použít verzi Jessie nebo vyšší)
  • Python
  • Ansible (alespon ve verzi 2.2.1)
  • Git
  • root SSH přístup na server, kde bude FreeRADIUS instalován
  • root přístup na stroj, ze kterého bude Ansible spuštěn

Pro veškeré následující vkládané příkazy se předpokládá, že pracujete pod uživatelem root, pokud tomu tak není, v nutných příkazech využijte příkaz sudo.

Prerekvity můžete nainstalovat pomocí příkazu:

apt-get install -y ansible git python

Příprava repozitáře

Nejprve si připravíme pracovní prostředí. Následující příkazy vložte do terminálu:

cd # prejdeme do domovskeho adresare
mkdir instalace_freeradius
cd instalace_freeradius
git clone https://github.com/CESNET/ansible-freeradius.git roles/freeradius
mkdir -p host_vars group_vars files/certs
cp roles/freeradius/examples/playbook-freeradius.yml .
cp roles/freeradius/examples/inventory.conf .
cp roles/freeradius/examples/ansible.cfg .
cp roles/freeradius/examples/chain_TERENA_SSL_CA_3.pem files/certs/
cp roles/freeradius/examples/chain_CESNET_CA3.pem files/certs/
read -p 'zadejte plne kvalifikovane jmeno (FQDN) vaseho RADIUS serveru: ' radius

Provedeme úpravy repozitáře. Následující příkazy vložte do terminálu:

radius_=$(echo $radius | sed 's/\./_/g')
sed -i "s/vas-radius.realm.cz/$radius/" inventory.conf
echo "${radius_}:" > group_vars/idp_vault.yml

V CESNET CAAS si dohledejte sdílené heslo pro monitoring. Dále vložte do terminálu následující příkazy:

read -p 'zadejte sdilene heslo pro monitoring: ' ermon 
read -p 'zadejte heslo k privatnimu klici pro radsec: ' radsec 

Příprava certifikátů

Do adresáře files/certs musíte umístit certifikát a privátní klíč pro RadSec spojení mezi vaším a národním RADIUS serverem. Do terminálu vložte následující příkazy (je nutné adekvátně upravit zdrojové názvy souborů!):

cp vas_certifikat.pem files/certs/$radius.crt
cp privatni_klic_k_certifikatu.pem files/certs/$radius.key

Pokud máte k dispozici vlastní správu uživatelů a budete vlastní uživatele ověřovat, budete taktéž potřebovat certifikát a privátní klíč pro EAP. Můžete využít stejný certifikát jako pro RadSec, to je na vás. Pokud využijete jiný certifikát pro EAP, Do terminálu vložte následující příkazy (je nutné adekvátně upravit zdrojové názvy souborů!):

cp vas_certifikat.pem files/certs/${radius}_eap.crt
cp privatni_klic_k_certifikatu.pem files/certs/${radius}_eap.key

Dále pokračujte na stránku, která vás provede zbytkem návodu. Stránku si vyberte podle role, která je pro vás adekvátní:

  • Role IdP + SP Tuto roli použijte v případě, že máte vlastní správu uživatelů.
  • Role IdP + SP Tuto roli použijte v případě, že NEmáte vlastní správu uživatelů.
  • Role proxy Tuto roli použijte v případě, že pouze připojujete další serveru do eduroam infrastruktury.

Role IdP + SP

Tato role představuje realm v tom smyslu, že:

  • ověřuje vlastní uživatele (IdP - Identity provider)
  • poskytuje službu (SP - Service provider)

Tuto roli použijte v případě, že máte vlastní správu uživatelů.

Vložte do terminálu následující příkazy:

read -p 'zadejte heslo pro ldap: ' ldap 
read -p 'zadejte heslo k privatnimu klici pro eap: ' eap 

Dále vložte do terminálu následující příkazy:

echo "  ermon_secret: $ermon" >> group_vars/idp_vault.yml
echo "  ldap_passwd: $ldap" >> group_vars/idp_vault.yml
echo "  radsec_key_password: $radsec" >> group_vars/idp_vault.yml
echo "  eap_key_password: $eap" >> group_vars/idp_vault.yml
cp roles/freeradius/examples/semik-dev.cesnet.cz-IdPSP.yml host_vars/$radius.yml

Pokud používáte pro RadSec i EAP stejný certifikát, vložte následující příkazy:

sed -i "/semik2-dev.cesnet.cz/d" host_vars/$radius.yml
sed -i "s/semik-dev.cesnet.cz/$radius/" host_vars/$radius.yml
sed -i "s/semik_dev_cesnet_cz/$radius_/" host_vars/$radius.yml

Pokud používáte pro RadSec a EAP jiný certifikát, vložte následující příkazy:

sed -i "/semik2-dev.cesnet.cz/d" host_vars/$radius.yml
sed -i ':a;$!{N;ba};s/certificate: files\/certs\/semik-dev.cesnet.cz.crt/certificate: files\/certs\/'"${radius}_eap.crt"'/2' host_vars/$radius.yml
sed -i ':a;$!{N;ba};s/certificate: files\/certs\/semik-dev.cesnet.cz.key/certificate: files\/certs\/'"${radius}_eap.key"'/2' host_vars/$radius.yml

Úprava LDAPu

Definici vašeho LDAP serveru musíte uvést do souboru host_vars/$radius.yml. Otevřete soubor v textovém editoru a upravte hodnotu hodnotu klíče URL.

Pokud chcete použít zabezpečené spojení, taktéž musíte adekvátně specifikovat hodnotu klíče CAChain.

Konkrétní DN, kam se bude hlásit daný uživatel použitý pro ověřování požadavků specifikujte v klíči bindDN.

Část stromu, ve které jsou umístěni uživatelé a bude v ní probíhat vyhledávání specifikujte v klíči peopleDN.

LDAP Atribut, ve kterém je uvedeno uživatelské heslo pro eduroam specifikujte v klíči eduroamPassword

TODO - peopleSubSearch: - neni v playbooku pouzito TODO - uid: - neni v playbooku pouzito

Více realmů

TODO

Definice AP

Dále je třeba doplnit konfiguraci přístupových bodů. V textovém editoru otevřete soubor host_vars/$radius.yml. Lze to například pomocí příkazu:

vim host_vars/$radius.yml

Upravte sekci NAS:. Pro každý přístupový bod musí být uvedena IP adresa, sdílené tajemství a krátké jméno. Můžete uvést libovolný počet přístupových bodů. Pro ermon není třeba vytvářet záznam, ten je již předdefinován ve výsledné konfiguraci.

Role SP

Tato role představuje realm v tom smyslu, že pouze poskytuje službu (SP - Service provider).

Tuto roli použijte v případě, že NEmáte vlastní správu uživatelů.

Provedeme další úpravy repozitáře. Následující příkazy vložte do terminálu:

cp roles/freeradius/examples/semik-dev.cesnet.cz-SP.yml host_vars/$radius.yml
sed -i "s/semik-dev.cesnet.cz/$radius/" host_vars/$radius.yml
sed -i "s/semik_dev_cesnet_cz/$radius_/" host_vars/$radius.yml
echo "  ermon_secret: $ermon" >> group_vars/idp_vault.yml
echo "  radsec_key_password: $radsec" >> group_vars/idp_vault.yml

Definice AP

Dále je třeba doplnit konfiguraci přístupových bodů. V textovém editoru otevřete soubor host_vars/$radius.yml. Lze to například pomocí příkazu:

vim host_vars/$radius.yml

Upravte sekci NAS:. Pro každý přístupový bod musí být uvedena IP adresa, sdílené tajemství a krátké jméno. Můžete uvést libovolný počet přístupových bodů. Pro ermon není třeba vytvářet záznam, ten je již předdefinován ve výsledné konfiguraci.

Role proxy

Tato role představuje realm v tom smyslu, že pouze zprostředkovává připojení dalších serverů do celé infrastruktury.

Vložte do terminálu následující příkazy:

cp roles/freeradius/examples/semik-dev.cesnet.cz-SP.yml host_vars/$radius.yml
sed -i "s/semik-dev.cesnet.cz/$radius/" host_vars/$radius.yml
sed -i "s/semik_dev_cesnet_cz/$radius_/" host_vars/$radius.yml
echo "  ermon_secret: $ermon" >> group_vars/idp_vault.yml
echo "  radsec_key_password: $radsec" >> group_vars/idp_vault.yml

Definice podřízených RADIUS serverů

Dále je třeba doplnit konfiguraci podřízených RADIUS serverů. V textovém editoru otevřete soubor host_vars/$radius.yml. Lze to například pomocí příkazu:

vim host_vars/$radius.yml

Upravte sekci downRADIUS::. Pro každý RADIUS server musí být uvedeno hostname, IP adresa a sdílené tajemství.

Definice AP

Dále je třeba doplnit konfiguraci přístupových bodů. V textovém editoru otevřete soubor host_vars/$radius.yml. Lze to například pomocí příkazu:

vim host_vars/$radius.yml

Upravte sekci NAS:. Pro každý přístupový bod musí být uvedena IP adresa, sdílené tajemství a krátké jméno. Můžete uvést libovolný počet přístupových bodů. Pro ermon není třeba vytvářet záznam, ten je již předdefinován ve výsledné konfiguraci.

Ansible vault

Ansible vault slouží k šifrování uchovaných informací. Hesla k privátním klíčům by se vám rozhodně neměly válet na disku v nešifrované podobě.

Pro zašifrování důvěrných informací použijte příkaz:

ansible-vault encrypt group_vars/idp_vault.yml

Použité heslo nesmíte zapomenout! Heslo si můžete uložit pro pozdější použití do souboru (To však značně oslabuje bezpečnost). Korektní správu hesla pro vault ponecháváme na správci.

Spuštění

Vložte do terminálu následující příkazy:

ansible-playbook -i inventory.conf --ask-vault-pass playbook-freeradius.yml

Alternativně můžete použít, pokud máte heslo k vaultu uložené v souboru:

ansible-playbook -i inventory.conf --vault-password-file ~/heslo_k_vaultu.txt playbook-freeradius.yml

V případě, že všechno proběhlo hladce, měli byste mít správně nakonfigurován váš RADIUS server.

Poslední úprava:: 2017/11/08 14:23