Installation og konfiguration af TACACS + med Cisco Router på Debian 8 Jessie


Teknologi er i dag stærkt afhængig af netværksudstyr og korrekt konfiguration af dette netværksudstyr. Administratorer har til opgave at sikre, at konfigurationsændringer ikke kun testes grundigt inden implementering, men også at eventuelle konfigurationsændringer udføres af enkeltpersoner, der har tilladelse til at foretage ændringer, samt at sikre, at ændringerne er logget.

Dette sikkerhedsprincip er kendt som AAA (Triple-A) eller Authentication, Authorization and Accounting. Der er to meget fremtrædende systemer, der tilbyder AAA-funktionalitet for administratorer til at sikre adgang til enheder og de netværk, som disse enheder betjener.

RADIUS (Remote Access Dial-In User Service) og TACACS + (Terminal Access Controller Access-Control System Plus).

Radius bruges traditionelt til at godkende brugere for at få adgang til netværket, der står i kontrast til TACACS, idet TACACS traditionelt bruges til enhedsadministration. En af de store forskelle mellem disse to protokoller er TACACSs evne til at adskille AAA-funktionerne i uafhængige funktioner.

Fordelen ved TACACS-adskillelse af AAA-funktionerne er, at en brugers evne til at udføre bestemte kommandoer kan styres. Dette er meget fordelagtigt for organisationer, der ønsker at give netværksmedarbejdere eller andre it-administratører forskellige kommandorettigheder på et meget detaljeret niveau.

Denne artikel gennemgår opsætning af et Debian-system til at fungere som et TACACS + -system.

  1. Debian 8 installeret og konfigureret med netværksforbindelse. Læs denne artikel om, hvordan du installerer Debian 8
  2. Cisco netværksswitch 2940 (De fleste andre Cisco-enheder fungerer også, men kommandoer på switchen/routeren kan variere).

Installation af TACACS + -softwaren på Debian 8

Det første trin i opsætningen af denne nye TACACS-server vil være at erhverve softwaren fra arkiverne. Dette opnås let ved brug af kommandoen 'apt'.

# apt-get install tacacs+

Ovenstående kommando installerer og starter servertjenesten på port 49. Dette kan bekræftes med flere hjælpeprogrammer.

# lsof -i :49
# netstat -ltp | grep tac

Disse to kommandoer skal returnere en linje, der indikerer, at TACACS lytter på port 49 på dette system.

På dette tidspunkt lytter TACACS efter forbindelser på denne maskine. Nu er det tid til at konfigurere TACACS-tjenesten og brugerne.

Konfiguration af TACACS-service og brugere

Det er generelt en god idé at binde tjenester til bestemte IP-adresser, hvis serveren tilfældigvis har flere adresser. For at udføre denne opgave kan standarddæmonindstillingerne ændres for at angive en IP-adresse.

# nano /etc/default/tacacs+

Denne fil specificerer alle de dæmonindstillinger, som TACACS-systemet skal starte. Standardinstallationen angiver kun konfigurationsfilen. Ved at tilføje et '-B' argument til denne fil kan en bestemt IP-adresse bruges til TACACS til at lytte.

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

Særlig note i Debian: Af en eller anden grund forsøger du at genstarte TACACS + -tjenesten for at læse de nye dæmonindstillinger mislykkes (via genstart af service tacacs_plus).

Problemet her ser ud til at være, når TACACS startes via init-scriptet, PID er statisk indstillet til "PIDFILE =/var/run/tac_plus.pid", men når "-B XXXX" er angivet som en dæmonindstilling, navnet af pid-filen ændres til “/var/run/tac_plus.pid.XXXX”.

Jeg er ikke helt sikker på, om dette er en fejl eller ej, men for at bekæmpe situationen midlertidigt, kan man manuelt indstille PIDFILE i init-scriptet ved at ændre linjen til "PIDFILE =/var/run/tac_plus.pid.XXXX" hvor XXXX er IP-adressen TACACS skal lytte til og derefter starte tjenesten med:

# service tacacs_plus start

Ved genstart af tjenesten kan kommandoen lsof bruges igen til at bekræfte, at TACACS-tjenesten lytter til den korrekte IP-adresse.

# lsof -i :49

Som set ovenfor lytter TACACS på en IP-adresse på en bestemt IP-adresse som angivet i TACACS-standardfilen ovenfor. På dette tidspunkt skal brugere og specifikke kommandosæt oprettes.

Disse oplysninger administreres af en anden fil: ‘/etc/tacacs+/tac_plus.conf’. Åbn denne fil med en teksteditor for at foretage de relevante ændringer.

# nano /etc/tacacs+/tac_plus.conf

Denne fil er, hvor alle TACACS-specifikationerne skal findes (brugertilladelser, adgangskontrolister, værtsnøgler osv.). Den første ting, der skal oprettes, er en nøgle til netværksenhederne.

Der er meget fleksibilitet i dette trin. En enkelt nøgle kan konfigureres til alle netværksenheder, eller der kan konfigureres flere nøgler pr. Enhed. Indstillingen er op til brugeren, men denne vejledning bruger en enkelt nøgle for enkelhedens skyld.

key = "super_secret_TACACS+_key"

Når en nøgle er konfigureret, skal der bygges grupper, der bestemmer de tilladelser, som brugerne tildeles senere. Oprettelse af grupper gør delegeringen af tilladelser meget lettere. Nedenfor er et eksempel på tildeling af fuld administratorrettigheder.

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

  1. Gruppens navn bestemmes af linjen "group = admins", hvor admins er gruppens navn.
  2. Linjen "standard service = tilladelse" angiver, at hvis en kommando ikke udtrykkeligt nægtes, så tillad den implicit.
  3. “service = exec {priv-lvl = 15}” tillader privilegieniveau 15 i exec-tilstand på en Cisco-enhed (privilegieniveau 15 er det højeste på Cisco-udstyr).

Nu skal en bruger tildeles til administratorgruppen.

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

  1. "user = rob" -strofen giver et brugernavn på rob adgang til en ressource.
  2. "Member = admins" fortæller TACACS + at henvise til den tidligere gruppe kaldet admins for en liste over, hvad denne bruger er autoriseret til at gøre.
  3. Den endelige linje, "login = des mjth124WPZapY" er en des-krypteret adgangskode, som denne bruger kan godkende (du er velkommen til at bruge en krakker til at finde ud af dette super "komplekse" kodeordeksempel)!

Vigtigt: Det er generelt en god praksis at placere krypterede adgangskoder i denne fil i stedet for almindelig tekst, da det tilføjer en lille smule sikkerhed, hvis nogen skulle læse denne fil og ikke nødvendigvis skulle have adgang.

En god forebyggende foranstaltning til dette er i det mindste også at fjerne verdenslæseadgang på konfigurationsfilen. Dette kan opnås via følgende kommando:

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

På dette tidspunkt er serversiden klar til forbindelser fra netværksenheder. Lad os gå over til Cisco-kontakten nu og konfigurere den til at kommunikere med denne Debian TACACS + -server.