Installasjon og konfigurasjon av TACACS+ med Cisco Router på Debian 8 Jessie


Teknologi i dag er sterkt avhengig av nettverksutstyr og riktig konfigurasjon av nettverksutstyret. Administratorer har i oppgave å sikre at konfigurasjonsendringer ikke bare testes grundig før implementering, men også at eventuelle konfigurasjonsendringer gjøres av personer som er autorisert til å gjøre endringer, samt sørge for at endringene blir loggført.

Dette sikkerhetsprinsippet er kjent som AAA (Trippel-A) eller Autentisering, autorisering og regnskap. Det er to svært fremtredende systemer som tilbyr AAA-funksjonalitet for administratorer for å sikre tilgang til enheter og nettverkene disse enhetene betjener.

RADIUS (brukertjeneste for oppringt fjerntilgang) og TACACS+ (Terminal Access Controller Access-Control System Plus).

Radius brukes tradisjonelt for å autentisere brukere for å få tilgang til nettverket, noe som står i kontrast til TACACS ved at TACACS tradisjonelt brukes til enhetsadministrasjon. En av de store forskjellene mellom disse to protokollene er muligheten for TACACS til å skille AAA-funksjonene i uavhengige funksjoner.

Fordelen med TACACS-separasjon av AAA-funksjonene er at en brukers evne til å utføre visse kommandoer kan kontrolleres. Dette er svært fordelaktig for organisasjoner som ønsker å gi nettverkspersonale eller andre IT-administratorer forskjellige kommandorettigheter på et meget detaljert nivå.

Denne artikkelen vil gå gjennom å sette opp et Debian-system for å fungere som et TACACS+-system.

Miljøoppsett

  1. Debian 8 installert og konfigurert med nettverkstilkobling. Les denne artikkelen om hvordan du installerer Debian 8
  2. Cisco nettverkssvitsj 2940 (De fleste andre Cisco-enheter vil også fungere, men kommandoene på svitsjen/ruteren kan variere).

Installasjon av TACACS+-programvaren på Debian 8

Det første trinnet i å sette opp denne nye TACACS-serveren vil være å skaffe programvaren fra depotene. Dette oppnås enkelt ved bruk av kommandoen 'apt'.


apt-get install tacacs+

Kommandoen ovenfor vil installere og starte servertjenesten på port 49. Dette kan bekreftes med flere verktøy.


lsof -i :49
netstat -ltp | grep tac

Disse to kommandoene skal returnere en linje som indikerer at TACACS lytter på port 49 på dette systemet.

På dette tidspunktet lytter TACACS etter tilkoblinger på denne maskinen. Nå er det på tide å konfigurere TACACS-tjenesten og brukerne.

Konfigurering av TACACS-tjeneste og brukere

Det er generelt en god idé å binde tjenester til bestemte IP-adresser hvis serveren tilfeldigvis har flere adresser. For å utføre denne oppgaven kan standard daemon-alternativene endres for å spesifisere en IP-adresse.


nano /etc/default/tacacs+

Denne filen spesifiserer alle demoninnstillingene TACACS-systemet skal starte. Standardinstallasjonen vil kun spesifisere konfigurasjonsfilen. Ved å legge til et '-B'-argument til denne filen, kan en spesifikk IP-adresse brukes for TACACS å 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

Spesiell merknad i Debian: Av en eller annen grunn mislykkes forsøket på å starte TACACS+-tjenesten på nytt for å lese de nye daemon-alternativene (via tjenesten tacacs_plus start på nytt).

Problemet her ser ut til å være når TACACS startes via init-skriptet, PID er statisk satt til “PIDFILE=/var /run/tac_plus.pid ” men når “-B X.X.X.X ” er spesifisert som et daemon-alternativ, endres navnet på pid-filen til “/var/run /tac_plus.pid.X.X.X.X ”.

Jeg er ikke helt sikker på om dette er en feil eller ikke, men for å bekjempe situasjonen midlertidig, kan man manuelt sette PIDFILE i init-skriptet ved å endre linjen til “PIDFILE=/var/run/tac_plus.pid.X.X.X.X ” der X.X.X.X er IP-adressen TACACS skal lytte på og start deretter tjenesten med:


service tacacs_plus start

Ved omstart av tjenesten kan lsof-kommandoen brukes igjen for å bekrefte at TACACS-tjenesten lytter på riktig IP-adresse.


lsof -i :49

Som vist ovenfor lytter TACACS på en IP-adresse på en spesifikk IP-adresse som angitt i TACACS-standardfilen ovenfor. På dette tidspunktet må brukere og spesifikke kommandosett opprettes.

Denne informasjonen administreres av en annen fil: '/etc/tacacs+/tac_plus.conf'. Åpne denne filen med et tekstredigeringsprogram for å gjøre de nødvendige endringene.


nano /etc/tacacs+/tac_plus.conf

Denne filen er der alle TACACS-spesifikasjonene skal ligge (brukertillatelser, tilgangskontrolllister, vertsnøkler osv.). Det første som må opprettes er en nøkkel for nettverksenhetene.

Det er mye fleksibilitet i dette trinnet. En enkelt nøkkel kan konfigureres for alle nettverksenheter eller flere nøkler kan konfigureres per enhet. Alternativet er opp til brukeren, men denne veiledningen vil bruke en enkelt nøkkel for enkelhets skyld.


key = "super_secret_TACACS+_key"

Når en nøkkel er konfigurert, bør grupper bygges som bestemmer tillatelsene som brukere vil bli tildelt senere. Å opprette grupper gjør delegeringen av tillatelser mye enklere. Nedenfor er et eksempel på tildeling av fulle administratorrettigheter.


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

  1. Gruppenavnet bestemmes av linjen «gruppe=admins» med admins som gruppenavnet.
  2. «default service=permit»-linjen indikerer at hvis en kommando ikke eksplisitt nektes, så tillat den implisitt.
  3. «service=exec { priv-lvl=15 } » tillater rettighetsnivå 15 i exec-modus på en Cisco-enhet (rettighetsnivå 15 er det høyeste på Cisco utstyr).

Nå må en bruker tildeles administratorgruppen.


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

  1. Strofen “bruker=rane” lar et brukernavn til rane få tilgang til en ressurs.
  2. “member=admins ” forteller TACACS+ å referere til den forrige gruppen kalt admins for en liste over hva denne brukeren er autorisert til å gjøre.
  3. Den siste linjen, “login=des mjth124WPZapY ” er et kryptert passord for denne brukeren å autentisere (bruk gjerne en cracker for å finne ut dette super “komplekse” passordeksemplet)!

Viktig: Det er generelt en god praksis å plassere krypterte passord i denne filen i stedet for ren tekst, da det gir en liten sikkerhet i tilfelle noen skulle lese denne fil og skal ikke nødvendigvis ha tilgang.

Et godt forebyggende tiltak for dette er i det minste å fjerne verdens lesetilgang på konfigurasjonsfilen også. Dette kan oppnås via følgende kommando:


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

På dette tidspunktet er serversiden klar for tilkoblinger fra nettverksenheter. La oss gå over til Cisco-bryteren nå og konfigurere den til å kommunisere med denne Debian TACACS+-serveren.