Giter VIP home page Giter VIP logo

freeradius-ansible-freeradius's Introduction

ansible-freeradius

Ansible role pro instalaci FreeRADIUSu v roli IdP & SP, SP only anebo proxy pro eduroam.cz. Předpokladem úspěšného použítí je solidní znalost administrace Linuxu a alespoň základní znalost automatizované správy pomocí ansible.com.

Role podporuje RadSec, Operator-Name, Chargeable-User-Identity, vynucení shody vnitřní a vnější identity. Dále umožní neEAP ověření pouze lokálním realmům (pro captive portály, pokud je fakt musíte používat).

Předpokládám, že si roli ansible-freeradius vložíte do vlastního projektu. Pro jednoúčelové otestování stačí postupovat podle následujícího návodu. Vytvořte si libovolný adresář a proveďte:

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_CA4.pem files/certs/

Musíte upravit soubor inventory.conf, aby se odkazoval na váš server. Musíte vyvořit soubor host_vars/vas-radius.realm.cz.yml, jako vzor použijte soboury vysvětlivky k obsahu:

Důvěrné informace o konfiguraci serveru jsou šifrovány ve vaultu, např.:

ldap:
  eduroam:
    bindPass: "{{ semik_dev_cesnet_cz.ldap_passwd }}"

Vytvořte si group_vars/idp_vault.yml s následujícím obsahem, jen změňte první řádek na svůj hostname (tečky a případné pomlčky musíte nahradit podtržítky, tzn. semik-dev.cesnet.cz bude semik_dev_cesnet_cz):

semik_dev_cesnet_cz:
  ermon_secret: sdílené heslo k ermon.cesnet.cz
  ldap_passwd: heslo k LDAP uctu
  radsec_key_password: heslo k privatnimu klici pro radsec
  eap_key_password: heslo k privatnimu klici pro eap

Konfigurační informace jsou rozděleny do dvou souborů, aby bylo možné oddělit důvěrné informace, které stojí za šifrování pomocí ansible-vault, a ty celkem veřejné. Navíc předpokládám, že v šifrovaném souboru group_vars/idp_vault.yml jsou sdíleny důvěrné informace dalších serverů a případně jiných rolí.

Certifikáty

V případě použití PKCS#12 formátu role předpokládá, že RADIUS server používá pro spojení s národním RADIUS serverem ten samý certifikát jako pro (volitelnou) roli IdP. Tento požadavek vychází ze sdílení části kódu s playbookem pro Shibboleth IdP (eduID.cz), kde je to vhodné a navíc takto šifrovaný certifikát lze uložit do veřejného GITu bez obavy ze zneužití. Soubor musí být umístěn v files/semik-dev.cesnet.cz.p12, resp. adekvátně pojmenovaném souboru.

FreeRADIUS používá PEM formát pro certifikáty, v takovém případě je očekává v files/certs/hostname.{crt,key}, lze použít různé certifikáty pro RadSec a EAP, což bude asi častý případ.

Role dále pracuje s certifikáty pro ověření důvěry LDAP serveru. Ty jsou odkazovány v host_vars/semik-dev.cesnet.cz.yml v proměné ldap.CAChain.

Pracuje také s certifikám pro ověření nadřazeného RADIUS serveru. Ten je odkazován v eduroam.topRADIUS.CAChain. Role počítá s tím, že nadřazeným RADIUSem není radius1.eduroam.cz, ale obecný nadřazený RADIUS.

Spuštění

export ANSIBLE_INVENTORY=./inventory.conf
ansible-playbook playbook-freeradius.yml 

freeradius-ansible-freeradius's People

Contributors

semik avatar lager1 avatar janoppolzer avatar fivaldi avatar cendash avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.