Skip to main content
  1. Lab-blue/

[TODO] Lab - FreeRADIUS + Samba AD (AAA per VPN)

·3 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

Cosa fa
#

Installa FreeRADIUS su Ubuntu, lo configura per delegare la verifica delle credenziali al DC Samba AD via LDAP, poi testa la chain di autenticazione dal VPN client. Replica esattamente il flusso Gibson: VPN Server → RADIUS → LDAP → risposta accesso sì/no.

TL;DR
#

Kali (simula VPN client) → Ubuntu RADIUS → Ubuntu LDAP (Samba AD) → autenticazione OK/KO
Ubuntu:
  ├── FreeRADIUS server (porta UDP 1812 auth, UDP 1813 accounting)
  └── Samba AD DC + LDAP (porta TCP 389)

Kali:
  └── radtest (testa autenticazione), freeradius-utils

Obiettivo finale
#

Come sai che hai finito tutto: radtest barno Password123 192.168.64.3 0 testing123 da Kali risponde Access-Accept; radtest fakeuser wrongpass 192.168.64.3 0 testing123 risponde Access-Reject; il log accounting registra la sessione.


Fase 1 — Installazione e configurazione base
#

  • Task 1 — Installa FreeRADIUS su Ubuntu

    • Come sai che hai finito: systemctl status freeradius mostra active; ss -ulnp | grep 1812 mostra la porta in ascolto
  • Task 2 — Test con utente locale (prima di LDAP)

    • Aggiungi un utente test in /etc/freeradius/3.0/users con cleartext password
    • Da Kali: testa con radtest usando lo shared secret testing123
    • Come sai che hai finito: Access-Accept da Kali per l'utente test locale
  • Task 3 — Abilita il modulo LDAP

    • Configura /etc/freeradius/3.0/mods-available/ldap per puntare a ldap://127.0.0.1 e al base DN DC=mustache,DC=corp
    • Come sai che hai finito: freeradius -X (debug) parte senza errori sul modulo ldap

Fase 2 — Integrazione con Samba AD
#

  • Task 4 — Configura autenticazione contro Active Directory

    • In sites-enabled/default: abilita il modulo ldap nella sezione authenticate
    • Usa barno@mustache.corp come bind user per le query LDAP
    • Come sai che hai finito: il log in modalità debug mostra la query LDAP al DC e la risposta
  • Task 5 — Testa autenticazione utente AD da Kali

    • radtest barno Password123 192.168.64.3 0 testing123
    • Come sai che hai finito: Access-Accept — RADIUS ha interrogato LDAP e verificato le credenziali AD
  • Task 6 — Testa rifiuto credenziali errate

    • radtest barno wrongpassword 192.168.64.3 0 testing123
    • Come sai che hai finito: Access-Reject — RADIUS ha verificato che la password non corrisponde nel DC
  • Task 7 — Testa utente non esistente

    • radtest ghost ghost123 192.168.64.3 0 testing123
    • Come sai che hai finito: Access-Reject — utente non trovato nel DC

Fase 3 — Accounting
#

  • Task 8 — Abilita accounting e verifica il log

    • Invia un pacchetto di Accounting-Start simulando l'inizio di una sessione VPN
    • Come sai che hai finito: /var/log/freeradius/radacct/ contiene un file con l'evento
  • Task 9 — Cattura il traffico RADIUS

    • Su Ubuntu: tcpdump -i lo udp port 1812 mentre testi da Kali
    • Come sai che hai finito: vedi pacchetti UDP con Access-Request e Access-Accept/Reject

Fase 4 — Collega a OpenVPN (configurazione senza eseguire)
#

  • Task 10 — Capire come OpenVPN userebbe questo RADIUS
    • In OpenVPN server config: plugin /usr/lib/openvpn/radiusplugin.so /etc/openvpn/radius.conf
    • In radius.conf: punta al RADIUS server (NAS-IP-Address = 192.168.64.3, shared secret)
    • Come sai che hai finito: sai rispondere — "cosa succede quando un client VPN si connette? Chi parla con chi e in quale ordine?"

Domande di verifica Security+
#

  1. Spiega la differenza tra autenticazione e accounting in RADIUS. Chi genera i pacchetti di accounting?
  2. RADIUS usa UDP — perché? Cosa succede se il RADIUS server non risponde?
  3. Di default RADIUS cifra solo la password nel pacchetto Access-Request. Cosa viaggia in chiaro? Come si risolve?
  4. Nel Mustache scenario: un attaccante cattura il pacchetto Access-Request tra il VPN server e il RADIUS server. Cosa può fare con quel pacchetto?
  5. TACACS+ cifra l'intera sessione. In quale scenario preferiresti TACACS+ a RADIUS per la sicurezza degli admin di rete?

Collegato a
#

  • [[[TODO] lab-kerberos-ldap-queries|lab-kerberos-ldap-queries]] — prerequisito (Samba AD deve essere attivo)
  • [[[DONE] lab-vpn-wireguard-tunnels|lab-vpn-wireguard-tunnels]] — il tunnel VPN che userebbero questo RADIUS
  • cap-04-securing-your-network — teoria RADIUS, TACACS+, AAA
  • mustache-project Sprint 2 (AD) + sprint futuri (OpenVPN integrazione)

Related