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.gazi.edu.tr/tacacs/.
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
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.