Hlavní navigace

TACACS (1)

27. 7. 2001
Doba čtení: 4 minuty

Sdílet

Tacacs sa popri radiusu teší obľube jako jednoduchý, kompaktný a pomerne ľahko konfigurovateľný authentikačný a autorizačný daemon s možnosťami účtovania či už při používaní s routermi Cisco alebo v spolupráci s PAM. Tak sa mu teda v skratke pozrieme na zúbky.

Existujú tri verzie authentikačného protokolu TACACS. Základ protokolu definovala firma Cisco a na jej routeroch sa používa už pomerne dlho. Neskôr prišli rozšírenia XTACACS a TAC_PLUS, ktoré rozšírili možnosti. My sa budeme venovať najbežnejšiemu rozšíreniu TAC_PLUS.

Kompilácia a inštalácia

Sprevádzkovanie daemonu je úplne jednoduché. Zdrojový kód tac_plus je k dispozícii na adrese http://www.ga­zi.edu.tr/tacac­s/.

Pre inštaláciu rozbalíme balík aktuálnej verzie

tar -xzvf tac_plus-F4.0.3.alpha.tar.Z

a po úprave Makefile pre danú platformu Linuxu (Makefile je pekne komentovaný, takže jednoducho nastavíme knižnice lcrypt a glibc) možeme spustit kompiláciu

make tac_plus

Po úspešnej kompilácii nás ešte čaká úprava /etc/services, kde si nadefinujeme tacacs službu

tacacs  tcp/49

a môžeme previesť inštaláciu

make install

Konfigurácia

Konfigurácia tac_plus je sústredená v jedinom súbore tac_plus.cfg

Prvým krokom je nastavenie kryptovacieho kľúča. Ak chceme, aby tac_plus kryptoval authentikačné packety, čo je viac jako vhodné nastavíme si najprv kryptovací kľúč

key = mojtackluc

V prípade že kľúč obsahuje medzery, čo je samozrejme dovolené, je potrebné ohraničiť ho dvojitými úvodzovkami. V každom prípade ale pri používaní tacacsu s routermi sa tejto možnosti vyvarujte, pretože to nepracuje správne.

Pre logovanie si nastavíme cieľový súbor. Veľmi jednoduchým spôsobom bude možné zozbierať štatistiky a vyhodnocovať ich, pretože obsahuje aj účtovacie dáta, čo je pre nás veľmí výhodné

accounting file = /var/log/tac_plus.log

A teraz sa môžeme začať venovať tvorbe užívateľov a skupín. Tacacs nám umožňuje používať viacero zdrojov authentikácie. Prvou možnosťou je použitie súboru /etc/passwd alebo ľubovoľného passwd(5) súboru. a to nasledovne.

user=nr-panama {
    member=slaba_prevadzka
    login= file /etc/passwd
}

To znamená, že definícia užívateľa sa nachádza v konfiguračnom súbore tac_plus.cfg avšak heslo a expirácia konta sa načíta z /etc/passwd. Passwd súbor môžeme použiť taktiež na implicitnú authentikáciu, pokial užívateľ nie je vytvorený v konfiguračnom sú­bore

default authentication = file /etc/passwd

To sa nám môže hodiť, ak nebudeme používať okrem expirácie žiadne obmedzenia a chceme mať rovnaké heslá v systéme aj v tacacse.

Ďalšou možnosťou definície užívateľa je nasledovná:

user = nr-panama {
    member = slaba_prevadzka
    password = cleartext "sezam otvor sa"
    expires = "Jun 12 2002"
    idletime =  10
    maxsess = 1
}

Položka member nám označuje pridelenie skupiny užívateľov, v ktorej možeme definovať obmedzenia bez toho aby sme ich museli uvádzať pri každom užívateľovi. Položka expires nám určuje časovú platnosť konta a to uvedením dátumu vo formáte MMM DD RRRR. Položka idletime nám definuje po akej dlhej nečinnosti v minútach sa stane authentikácia neplatnou, položka maxsess nám umožňuje obmedziť počet súčasných otvorených sessions. Položka password nám v tomto prípade jasne definuje prístupové heslo. Takáto nekryptovaná podoba sa nám môže hodiť pre jednoduché a rýchle spracovanie hesla, alebo pri ručnom pridávaní a správe kont.Tacacs samozrejme umožňuje ukladať heslá v kryptovanej podobe a to použítím algoritmu DES"

user = nr-panama {
    member = slaba_prevadzka
    login = des barU503ivCO45
    expires = "Jun 12 2002"
    idletime =  10
    maxsess = 1
}

Pre jednotlivé rôzne možnosti authentikácie môžeme kontu priradiť rôzne heslá, pričom pre globálnu authentikáciu, PAP, AAP a CHAP musí byť heslo uložené v cleartext podobe.

user = nr-panama {
    member = slaba_prevadzka
    arap = cleartext "arap heslo"
    chap = cleartext "chap heslo"
    pap = cleartext "inbound pap heslo"
    opap = cleartext "outbound pap heslo"
    login = des barU503ivCO45
    expires = "Jun 12 2002"
    idletime =  10
    maxsess = 1
}

Čo sa týka definovania skupín v podstate je možné používať takmer všetky atribúty ako pri definícii užívateľov

group = moja_groupa {
    expires = "Mar 9 2000"
    login = file /etc/passwd
    before authorization
        "/usr/local/tac_plugin/obmedzenie.pl $user"
    after authorization
        "/usr/local/tac_plugin/extralog.pl $user $address $port"
}

(celý povel „after authorization“, resp. „before authorization“ musí být na jednom řádku, což se z důvodů nedostatku místa zde nepovedlo – pozn. redakce)

Dosť často sa nám v definícii skupín nachádzajú nachádzajú klauzuly before authorization a after authorization, ktoré nám umožňujú použiť pre povolenie autorizácie vlastné scripty, prostredníctvom ktorých sú možnosti dodatočného overovania authenticity na nastavenia obmedzení či už časových alebo iných takmer neobmedzené. K tejto problematike sa ešte vrátime.

Takže ak máme nadefinovaných užívateľov, skupiny, logový súbor, môžeme spustiť tacacs. Pred spustením je vhodné previesť kontrolu konfiguračného súboru, pretože pri chybách štart daemonu nezbehne, takže na to treba myslieť pri programovaní scriptov pre správu konfiguračného súboru. Kontrolu dosiahneme nasledovne:

tac_plus -P -C tac_plus.conf

Definitívne spustenie daemonu uskutočníme príkazom

DT24

tac_plus -C tac_plus.conf

Pokiaľ zmeníme niektoré z údajov v konfiguračnom súbore, napríklad pridáme nové konto, zmeníme heslo alebo podobne, je potrebné aby sme daemonu poslali signál USR1

kill -USR1 `cat /etc/tac_plus.pid`

Pokračovanie nás čaká v ďalšom dieli miniseriálu.

Byl pro vás článek přínosný?