Hlavní navigace

TACACS (3)

Milan Gigel

V dnesnej časti si povieme niečo o konfigurovaní routerov Cisco pre spoluprácu s daemonom tac_plus. Ak na routeroch nie je explicitne nakonfigurovaná authorizácia, predpokladá sa, že vsetko je povolené pretože implicitná politika je PERMIT. Čo sa týka daemonu tac_plus, treba si uvedomiť, že tu je implicitná politika opačná teda DENY a treba na to brať zreteľ.

Prvým krokom pre nastavenie routera je určenie tacacs servera a kľúča, ktorý sa bude používať na kryptovanie paketov. Kľúč sa samozrejme musí zhodovať s kľúčom v konfiguračnom súbore tacacsu direktívou

key = mojtackluc

Takže po prihlásení na router sa prepneme do enable módu príkazom

enable

a nakonfigurujeme tacacs server a kľúč

configure terminal
    tacacs-server key mojtackluc
    tacacs-server host xxx.xxx.xxx.xxx

configure mód opustíme stlačením kombinácie CTRL-Z a zapíseme config do NVRAM príkazom

write

Na routeri môžeme nadefinovať príkazom tacacs-server host viacero tacacs serverov, avsak na vsetkých musí byť nastavený rovnaký kľúč. Router bude skúsat authentikácie a authorizácie postupne na každej uvedenej ip adrese v poradí ako boli nadefinované a na prvom prístupnom tacacs serveri ich vykoná. To sa môže hodiť pre záložné tacacs servery.

Použitie tacacs servera pre authorizáciu príkazov na routeri

Authorizáciu príkazov na routeri prostredníctvom tacacsu docielime nasledovnými príkazmi v enable config móde:

aaa new-model
    aaa authorization commands 1 tacacs+
    aaa authorization commands 15 tacacs +

Toto spôsobí, že router bude posielať na tacacs požiadavky pre authorizovanie príkazov užívateľov úrovne 1 (bežní úžívatelia) a užívaeľov úrovne 15 (privilegovaných užívateľov v enable móde).

Čiže v konfiguračnom súbore tacacsu si nastavímeme obmedzenia prístupných príkazov pre jednotlivých užívateľov nasledovne:

user = pascal {
    login = cleartext "sezamotvorsa"
    cmd = telnet {
        permit 62\.168\.96\.[0-9]+
    }
    cmd = show {
        permit .*
    }
    cmd = ping {
        permit .*
    }
}

Užívateľ pascal má prístupné vsetky variácie príkazu show, ping a telnet na ip adresy 62.168.96.. V nasledovnej variácii klauzuly príkazu telnet sú povolené spojenia na vsetky ip adresy okrem 62.168.96.

cmd = telnet {
        deny 62\.168\.96\.[0-9]+
        permit .*
    }

Príkazy a argumenty, ktoré odosiela užívateľ, sú porovnávané s regulérnymi výrazmi v takom poradí, v akom sú definované v konfiguračnom súbore tacacsu. Prvá úspesná zhoda určí výsledok authorizácie príkazu, čiže permit alebo deny. Ak k zhode nedôjde, v súlade s implicitnou politikou tacacsu je výsledkom authorizácie politika deny. Na to treba pamätať pri písaní pravidiel a nie je teda nutné definovať obmedzenia nasledovne:

cmd = telnet {
        permit 62\.168\.96\.[0-9]+
        deny .*
    }

Toto implicitné nastavenie politiky tacacsu je možné kvoli spätnej kompatibilite zmeniť na permit v konfiguračnom súbore nasledovnou klauzulou

default authorization = permit.

Pre nedefinovaných užívateľov v konfiguračnom súbore tacacsu je možné authorizáciu príkazov vykonávať nasledovne.

user = DEFAULT {
    cmd = telnet {
        permit 62\.168\.96\.[0-9]+
    }

To sa nám može zísť ak authentikáciu vykonávame iným prostriedkom ako tacacsom, napríklad externým súborom definovaným klauzulov

default authentication = file /etc/passwd

Ako vidíme, authorizácia príkazov na routeri prostredníctvom tacacsu je silným a jednoduchým nástrojom kde v podstate prostredníctvom REGEXP výrazov jednoducho definujeme obmedzenia. Niekedy vsak v zložitejsích sadách pravidiel pri chybe nám môže pomôcť debug mód. Na routeri ho aktivujeme príkazmi

debug aaa authorization
    terminal monitor

pre tacacs daemon si túto voľbu zapneme pri spúsťaní daemona parametrom -d, napríklad

tac_plus -C tac_plus.conf -d 16

ktorý nám aktivuje zapisovanie debug informlácií do logového súboru, ktorý môžeme priebežne sledovať

tail -f /var/log/tac_plus.conf

Chyby sa hľadajú jednoduchsie a odlaďovanie sa stane hračkou.

Aktivovanie účtovania pre authorizované príkazy

Jednotlivé príkazy, ktoré sú prostredníctvom tacacsu authorizované, a časy trvania exec sessions je možné po definovaní v konfiguračnom súbore tacacsu direktívou

accounting file = <filename>

na routeri povoliť príkazom

aaa accounting exec stop-only tacacs+

čo nám spôsobí zapisovanie jednotlivých vykonávaných príkazov authentikovaných tacacsom aj s časom trvania, uživateľským menom a ďalsími údajmi do účtovacieho súboru, z ktorého ich môžeme neskôr jednoduchým spôsobom analyzovať a spracovávať. Formát účtovacieho súboru je veľmi jednoduchý preto nie je zložité pripraviť si skripty, ktoré budú jeho obsah vyhodnocovať. Treba si vsak vopred uvedomiť, akým rýchlym tempom bude veľkosť tohoto súboru narastať preto si nezhabudnime nakonfigurovať rotovanie aj pre tento účtovací súbor používanou pomôckou logrotate.

Ďalsia časť seriálu sa bude venovať authentikácii užívateľov a nastavenie pre authentikáciu dialup užívateľov.

Našli jste v článku chybu?