Hlavní navigace

TACACS (2)

3. 8. 2001
Doba čtení: 3 minuty

Sdílet

V minulej časti sme si priblížili základnú konfiguráciu daemona tacacs, dnes sa budeme venovať problematike podrobnejšie. Pri definovaní skupín sme spomínali že úspešnosť autorizácie je možné pred a po overení hesla ovplyvniť vlastným skriptom.
group = slaba_prevadzka
    login = file /etc/passwd
    before authorization "/usr/local/tac_plugin/slaba.pl $user"
}

Ako vstupné parametre pre náš užívateľský skript môžme použiť nasledovné

$user – názov konta
$name – názov zariadenia, na ktoré sa chce užívateľ authentikovať
$port – port zariadenia, na ktoré sa chce užívateľ authentikovať
$address – IP adresa klienta
$priv – priv-level úroveň
$method – číslica 1–4
$type – číslica 1–4
$service – číslica 1–7
$status – pass, fail, error, unknown

Čo sa týka návratovej hotnoty pretautorizačného scriptu, možnosti exit kódu sú 4

0 – autorizácia je bezpodmienečne povolená
1 – autorizácia je bezpodmienečne zakázaná
2 – autorizácia je povolená
3 – autorizácia je zakázaná

Pri poautorizačnom scripte máme nasledovné možnosti

0 – autorizácia pokračuje, akoby skript nebol ani volaný. Hodí sa na extra logovanie, napr. niekde na web status a pod.
1 – autorizácia je bezpodmienečne zakázaná
2 – autorizácia je povolená

Nasledujúci skript nám jednoducho obmedzí konto na autorizáciu iba v slabej prevádzke ktorú si určíme od 19:00 do 7:00 v rátane štátnych sviatkov.

slaba.pl

#!/bin/bash
if date | fgrep -f /usr/local/tac_plugin/def_slaba
    then
        exit 0
    else
        echo $1 >> /var/log/tacacs/slaba.warn
        exit 1
    fi

def_slaba

 19:
 20:
 21:
 22:
 23:
 00:
 01:
 02:
 03:
 04:
 05:
 06:
Sat
Sun
Jan 6
Apr 21
Apr 24
May 1
May 9
Aug 29
Sep 1
Sep 15
Nov 1
Dec 24
Dec 25
Dec 26

Na tomto príklade vidíme jednu z možností praktického použitia autorizačných skriptov. Možností je mnoho od prekročenia časového limitu, preneseného objemu údajov, prepojenie na účtovný systém pri nezaplatení mesačného poplatku, kreditné účtovanie až po výstup na web stránku alebo špeciálneho logového súboru, poprípade upozornenie na prihlásenie prostredníctvom SMS správy na mobilný telefón.

Logový súbor

Ako sme už spomínali pri konfigurácii tacacsu, logový súbor obsahuje účtovacie informácie, ktoré je možné jednoduchým spôsobom spracovávať. Formát logového súboru je nasledovný:

timestamp, názov zariadenia, na ktorom prebieha authentikácia, názov konta, port, ip adresa klienta, účtovný záznam. Účtovným záznamom môže byť jedna z nasledujúcich položiek:
„unknown“, „service“, „start_time“, „port“, „elapsed time“, „status“, „priv_level“, „cmd“, „protocol“, „cmd-arg“, „bytes_in“, „bytes_out“, „paks_in“, „paks_out“, „address“, „callback-dialstring“, „nocallback-verify“, „callback-line“, „callback-rotary“ a samozrejme v každom riadku „task_id“

Najzaujímvejšími údajmi pre nás budú asi start_time, elapsed_time, bytes_in a bytes_out. Pomocou jednoduchých scriptov je možné tieto údaje spracovať a využiť ich buď ako výpisy k vyúčtovaniam poskytovaných služieb alebo ako štatistiku a prehľad na www stránke.

Doteraz sme si priblížili authentikačné funkcie tacacsu, avšak tacacs nám v rámci sessionu umožňuje aj autorizačné služby.

group = mail_only {
        expires = "Mar 9 2000"
        login = file /etc/passwd
        maxsess=1
        service = ppp protocol= ip {
            autocomand=ppp
            inacl=101
            outacl=102
            addr-pool = mailonlys
        }
    }

user = pascal {
        login = des barU503ivCO45
        expires = "Jun 12 2002"
        cmd= telnet {
            permit 62\.168\.96\.[0-9]+
            permit 128\.[0-9]+\.12.\7
        }
        cmd = show {
            permit .*
        }
}

Ako ste už určite všetci pochopili, jedná sa o autorizáciu jednotlivých úloh v rámci sessionu. Pri požiadavke o autorizáciu sa prejde list pre daného užívateľa, vyhľadá sa dotazovaný pár a na základe porovnania sa stanoví návratový kód. Pre definovanie podmienok sa používajú regexp výrazy. Ak daný pár nie je súčasťou listu pre dané konto, návratový kód bude vždy DENY. Túto politiku je možné zmeniť veľmi jednoducho. Slúži nám na to direktíva

    default authorization = permit

ktorú použijeme na začiatku konfiguračného súboru. Ak chceme túto politiku zmeniť iba pre vybrané kontá použijeme direktívu

    default service= permit

ako jeden z atribútov konta alebo skupiny.

Kedže tacacs priamo nema prikaz na vypis authentikovaných užívateľov, takže nám pomôže nasledujúci script. Tacacs zapisuje authentikovaných užívateľov do súboru /var/log/tac.who_log, z ktorého po preformátovaní môžeme dostať čitateľný výpis. Nasledujúci scriptík nám bude neustále vypisovať authentikovaných užívateľov v 5 sekundovom intervale až do stlačenia klávesy Ctrl-C.

ict ve školství 24

cwho.sh

#!/bin/sh
while true; do
clear
fold -w 160 /var/log.tac.who_log | tr -s '\000' '\t' | expand -20 | sort -b
sleep 5
done

V ďalšej časti si povieme niečo o konfigurovaní routerov CISCO pre spoluprácu s tacacsom.

Seriál: TACACS

Autor článku