Skip to main content
  1. Lab-blue/

[TODO] Lab - TACACS+ (tac_plus su Ubuntu, autenticazione device Cisco-style)

·4 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

Cosa fa
#

Installa tac_plus su Ubuntu, configura utenti con diversi livelli di privilegio, e testa l'autenticazione da Kali con tacacs_client. Dimostra le differenze pratiche rispetto a RADIUS: TCP invece di UDP, cifratura dell'intera sessione, e separazione netta di Authentication / Authorization / Accounting.

TL;DR
#

Kali   (192.168.64.200) → simula un router Cisco che chiede "questo admin può accedere?"
Ubuntu (192.168.64.3)   → TACACS+ server (tac_plus, porta TCP 49)

TACACS+ è il protocollo che i vendor Cisco usano per gli admin di rete (non per gli utenti VPN — quello è RADIUS). Questo lab rende visibile la differenza.


Obiettivo finale
#

Come sai che hai finito tutto: tacacs_client -u barno -p Password123 -s 192.168.64.3 -k secret123 da Kali risponde AUTHOR: PASS; tcpdump -i lo tcp port 49 su Ubuntu mostra traffico TCP (non UDP come RADIUS); con Wireshark/tcpdump vedi che il payload è cifrato — non leggibile come RADIUS Access-Request.


Fase 1 — Installazione e configurazione base
#

  • Task 1 — Installa tac_plus su Ubuntu

    • apt install tacacs+ (pacchetto tac_plus da Debian/Ubuntu)
    • Come sai che hai finito: tac_plus -v mostra la versione; /etc/tacacs+/tac_plus.conf esiste
  • Task 2 — Configura il server con utenti locali

    • In /etc/tacacs+/tac_plus.conf: imposta key = secret123 (shared secret), aggiungi utente barno con password e privilege level 15 (admin), aggiungi readonly con privilege level 1
    • Come sai che hai finito: tac_plus -C /etc/tacacs+/tac_plus.conf -d 8 (debug) parte senza errori di parsing
  • Task 3 — Avvia il servizio

    • systemctl start tacacs+ e verifica con ss -tlnp | grep 49
    • Come sai che hai finito: porta TCP 49 in ascolto su Ubuntu
  • Task 4 — Installa il client su Kali

    • apt install tacacs+ su Kali (include tacacs_client)
    • Come sai che hai finito: tacacs_client --help risponde

Fase 2 — Autenticazione e autorizzazione
#

  • Task 5 — Testa autenticazione admin (privilege 15)

    • Da Kali: tacacs_client -u barno -p Password123 -s 192.168.64.3 -k secret123
    • Come sai che hai finito: risposta AUTHOR: PASS e privilege level 15 nella risposta
  • Task 6 — Testa autenticazione read-only (privilege 1)

    • tacacs_client -u readonly -p readonly123 -s 192.168.64.3 -k secret123
    • Come sai che hai finito: risposta AUTHOR: PASS ma privilege level 1 — accesso limitato ai comandi show
  • Task 7 — Testa credenziali errate

    • tacacs_client -u barno -p wrongpass -s 192.168.64.3 -k secret123
    • Come sai che hai finito: risposta AUTHOR: FAIL — il server rifiuta
  • Task 8 — Autorizzazione per comando specifico

    • Configura in tac_plus.conf che readonly non può eseguire configure terminal
    • Testa con tacacs_client specificando il comando richiesto
    • Come sai che hai finito: barno ottiene AUTHOR: PASS per il comando; readonly ottiene AUTHOR: FAIL

Fase 3 — TACACS+ vs RADIUS: la differenza chiave
#

  • Task 9 — Cattura traffico TACACS+

    • Su Ubuntu: tcpdump -i lo tcp port 49 -X mentre testi da Kali
    • Come sai che hai finito: vedi TCP (non UDP), il payload è cifrato — NON si vede la password né altri attributi in chiaro
  • Task 10 — Confronta con RADIUS (se lab-freeradius-samba è completato)

    • Ripeti un test RADIUS con tcpdump -i lo udp port 1812 -X
    • Come sai che hai finito: con RADIUS vedi attributi in chiaro (NAS-IP-Address, User-Name, ecc.) — solo la password è hashata. Con TACACS+ è tutto cifrato.
  • Task 11 — Osserva la separazione AAA

    • Aggiungi logging in tac_plus.conf: accounting file = /var/log/tac_plus.acct
    • Esegui una sessione con autenticazione + comando + logout
    • Come sai che hai finito: il file di accounting registra tre eventi separati: autenticazione, autorizzazione comando, contabilità sessione — tre fasi distinte come da specifica TACACS+

Fase 4 — Integrazione con AD (concettuale)
#

  • Task 12 — TACACS+ + PAM per delegare a Samba AD

    • Configura tac_plus.conf per usare PAM: login = PAM nella sezione utente
    • Configura /etc/pam.d/tacacs+ per delegare a Kerberos (sssd o winbind)
    • Come sai che hai finito: radtest non si usa qui — tacacs_client -u barno autentica barno usando le credenziali del dominio AD, non la password locale in tac_plus.conf
  • Task 13 — Capire quando si usa TACACS+ invece di RADIUS

    • RADIUS: autenticazione utenti VPN, accesso WiFi 802.1X → molti utenti, throughput importante
    • TACACS+: autenticazione admin su router/switch Cisco → pochi admin, separazione AAA critica
    • Come sai che hai finito: sai rispondere alla domanda d'esame senza guardare gli appunti

Domande di verifica Security+
#

  1. TACACS+ usa TCP 49. RADIUS usa UDP 1812/1813. Perché la scelta del protocollo di trasporto è rilevante per la sicurezza?
  2. RADIUS cifra solo la password. TACACS+ cifra l'intera sessione. In quale scenario questa differenza è critica? (hint: pensa a cosa viaggia oltre la password in una sessione di autorizzazione comandi)
  3. TACACS+ separa Authentication, Authorization, Accounting in tre fasi distinte. RADIUS le gestisce insieme. Quale vantaggio operativo dà questa separazione a un team NOC?
  4. Un router Cisco deve autenticare un admin. Userebbe RADIUS o TACACS+? E per autenticare gli utenti WiFi della stessa azienda?
  5. Se tac_plus non risponde, cosa succede agli amministratori di rete? Come si configura un fallback locale sul router Cisco?

Collegato a
#

  • [[[TODO] lab-freeradius-samba|lab-freeradius-samba]] — RADIUS, il complementare di TACACS+ per utenti VPN/WiFi
  • cap-04-securing-your-network — teoria AAA, RADIUS vs TACACS+
  • [[[TODO] lab-kerberos-ldap-queries|lab-kerberos-ldap-queries]] — AD backend per autenticazione PAM

Related