Ricerca nel sito web

Installazione e Configurazione di TACACS+ con Router Cisco su Debian 8 Jessie


La tecnologia odierna fa molto affidamento sulle apparecchiature di rete e sulla corretta configurazione di tali apparecchiature di rete. Gli amministratori hanno il compito di garantire che le modifiche alla configurazione non solo vengano testate accuratamente prima dell'implementazione, ma anche che eventuali modifiche alla configurazione vengano eseguite da persone autorizzate ad apportare modifiche, nonché ad assicurarsi che le modifiche vengano registrate.

Questo principio di sicurezza è noto come AAA (Tripla A) o Autenticazione, Autorizzazione e Contabilità. Esistono due sistemi molto importanti che offrono funzionalità AAA agli amministratori per proteggere l'accesso ai dispositivi e alle reti servite da tali dispositivi.

RADIUS (servizio utente di accesso remoto ad accesso remoto) e TACACS+ (sistema di controllo accessi Terminal Access Controller Plus).

Radius viene tradizionalmente utilizzato per autenticare gli utenti per accedere alla rete, a differenza di TACACS in quanto TACACS viene tradizionalmente utilizzato per l'amministrazione dei dispositivi. Una delle grandi differenze tra questi due protocolli è la capacità di TACACS di separare le funzioni AAA in funzioni indipendenti.

Il vantaggio della separazione TACACS delle funzioni AAA è che è possibile controllare la capacità di un utente di eseguire determinati comandi. Ciò è molto vantaggioso per le organizzazioni che desiderano fornire al personale di rete o ad altri amministratori IT diversi privilegi di comando a un livello molto granulare.

Questo articolo illustrerà la configurazione di un sistema Debian affinché agisca come un sistema TACACS+.

Configurazione dell'ambiente

  1. Debian 8 installato e configurato con connettività di rete. Si prega di leggere questo articolo su come installare Debian 8
  2. Switch di rete Cisco 2940 (funzionerà anche la maggior parte degli altri dispositivi Cisco, ma i comandi sullo switch/router potrebbero variare).

Installazione del software TACACS+ su Debian 8

Il primo passo nella configurazione di questo nuovo server TACACS sarà quello di acquisire il software dai repository. Ciò è facilmente realizzabile con l'uso del comando 'apt'.


apt-get install tacacs+

Il comando precedente installerà e avvierà il servizio server sulla porta 49. Ciò può essere confermato con diverse utilità.


lsof -i :49
netstat -ltp | grep tac

Questi due comandi dovrebbero restituire una riga che indica che TACACS è in ascolto sulla porta 49 su questo sistema.

A questo punto TACACS sta ascoltando le connessioni su questa macchina. Ora è il momento di configurare il servizio e gli utenti TACACS.

Configurazione del servizio e degli utenti TACACS

In genere è una buona idea associare i servizi a indirizzi IP specifici se il server ha più indirizzi. Per eseguire questa attività, le opzioni del demone predefinito possono essere modificate per specificare un indirizzo IP.


nano /etc/default/tacacs+

Questo file specifica tutte le impostazioni del demone che il sistema TACACS dovrebbe avviare. L'installazione predefinita specificherà solo il file di configurazione. Aggiungendo un argomento '-B' a questo file, è possibile utilizzare un indirizzo IP specifico per l'ascolto di TACACS.


DAEMON_OPTS="-C /etc/tacacs+/tac_plus.conf " - Original Line
DAEMON_OPTS="-C /etc/tacacs+/tac_plus.conf -B X.X.X.X " - New line, where X.X.X.X is the IP address to listen on

Nota speciale in Debian: per qualche motivo il tentativo di riavviare il servizio TACACS+ per leggere le nuove opzioni del demone non ha avuto successo (tramite service tacacs_plus riavviare).

Il problema qui sembra essere quando TACACS viene avviato tramite lo script init, il PID è impostato staticamente su "PIDFILE=/var /run/tac_plus.pid " tuttavia quando "-B X.X.X.X " viene specificato come opzione del demone, il nome del file pid viene modificato in "/var/run /tac_plus.pid.X.X.X.X ".

Non sono del tutto sicuro se si tratti di un bug o meno, ma per combattere temporaneamente la situazione, è possibile impostare manualmente il PIDFILE nello script init modificando la riga in “PIDFILE=/var/run/tac_plus.pid.X.X.X.X ” dove X.X.X.X è l'indirizzo IP su cui TACACS dovrebbe restare in ascolto e quindi avviare il servizio con:


service tacacs_plus start

Al riavvio del servizio, è possibile utilizzare nuovamente il comando lsof per confermare che il servizio TACACS è in ascolto sull'indirizzo IP corretto.


lsof -i :49

Come visto sopra, TACACS è in ascolto su un indirizzo IP su un indirizzo IP specifico come impostato nel file predefinito TACACS sopra. A questo punto è necessario creare utenti e set di comandi specifici.

Queste informazioni sono gestite da un altro file: "/etc/tacacs+/tac_plus.conf". Apri questo file con un editor di testo per apportare le modifiche appropriate.


nano /etc/tacacs+/tac_plus.conf

Questo file è il luogo in cui dovrebbero risiedere tutte le specifiche TACACS (autorizzazioni utente, elenchi di controllo degli accessi, chiavi host, ecc.). La prima cosa da creare è una chiave per i dispositivi di rete.

C’è molta flessibilità in questo passaggio. È possibile configurare una singola chiave per tutti i dispositivi di rete oppure è possibile configurare più chiavi per dispositivo. L'opzione dipende dall'utente, ma questa guida utilizzerà un'unica chiave per semplicità.


key = "super_secret_TACACS+_key"

Una volta configurata una chiave, è necessario creare gruppi che determinano le autorizzazioni che verranno assegnate in seguito agli utenti. La creazione di gruppi rende la delega delle autorizzazioni molto più semplice. Di seguito è riportato un esempio di assegnazione dei diritti di amministratore completi.


group = admins {
        default service = permit
        service = exec {
                priv-lvl = 15
        }
}

  1. Il nome del gruppo è determinato dalla riga "group=admins" dove admin è il nome del gruppo.
  2. La riga "default service=consent" indica che se un comando non viene negato esplicitamente, consentirlo implicitamente.
  3. Il "service=exec { priv-lvl=15 } " consente il livello di privilegio 15 in modalità exec su un dispositivo Cisco (il livello di privilegio 15 è il più alto su apparecchiature Cisco).

Ora è necessario assegnare un utente al gruppo di amministratori.


user = rob {
       member = admins
       login = des mjth124WPZapY
}

  1. La stanza “user=rob ” consente al nome utente rob di accedere ad alcune risorse.
  2. Il "member=admins" indica a TACACS+ di fare riferimento al gruppo precedente chiamato admins per un elenco di ciò che questo utente è autorizzato a fare.
  3. L'ultima riga, "login=des mjth124WPZapY " è una password crittografata per l'autenticazione di questo utente (sentiti libero di utilizzare un cracker per capire questo esempio di password super "complessa")!

Importante: generalmente è una buona pratica inserire password crittografate in questo file anziché in testo semplice poiché aggiunge una leggera quantità di sicurezza nel caso in cui qualcuno lo legga file e non dovrebbe necessariamente avere accesso.

Una buona misura preventiva per questo è almeno rimuovere l'accesso in lettura mondiale anche al file di configurazione. Ciò può essere ottenuto tramite il seguente comando:


chmod o-r /etc/tacacs+/tac_plus.conf
service tacacs_plus reload

A questo punto il lato server è pronto per le connessioni dai dispositivi di rete. Andiamo ora allo switch Cisco e configuriamolo per comunicare con questo server Debian TACACS+.