Toto je starší verze dokumentu!
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.
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
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
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í:
Tato role představuje realm v tom smyslu, že:
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
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
TODO
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.
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
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.
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
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í.
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 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.
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.
CESNET, z. s. p. o.
Generála Píky 26
160 00 Praha 6
info@cesnet.cz
Tel: +420 234 680 222
GSM: +420 602 252 531
support@cesnet.cz