TACACS+: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Mkurniko (talk | contribs)
Mkurniko (talk | contribs)
Line 224: Line 224:
.
.
</pre>
</pre>
==Cisco AAA seadistamine==

Revision as of 23:27, 15 December 2012

Autor

Margus Kurnikov AK21

Sissejuhatus

TACACS+ (Terminal Access Controller Access-Control System Plus) on võrguseadmete ligipääsukontrolli protokoll, mis hõlmab endas nii autentimise, autoriseerimise kui ka aruandluse teenuseid. Andmevahetuseks kasutatakse TCP porti 49.
Erinevalt RADIUS'st, mis on TACACS+ alternatiiv, eristab viimast autoriseerimise funktsionaalsuse lahutamine, mis võimaldab paindlikumat ligipääsukontrolli - kes võib käivitada käske, milliseid käske, millises seadmes. Iga kasutaja poolt sisestatud käsk saadetakse kesksesse TACACS+ serverisse autoriseerimiseks, kus kontrollitakse, kas vastavat käsku on lubatud käivitada konkreetsel kasutajal või grupil. TACACS+ on võimalik luua käskude käivitamisele näiteks kasutaja-, seadme-, või ajapõhiseid reegleid.
TACACS+ protokolli tugi on olemas levinud suuremate tootjate võrguseadmetes - Cisco, Juniper/Netscreen, HP, Alcatel/Lucent, Ericsson jt.

Paigaldamine

TACACS+ teenus paigaldatud Ubuntu 12.04-le.
Testitava ruuterina kasutusel Cisco 1812.


TACACS+ teenuse paigaldus:

apt-get install tacacs+

Teenuse seadistamine

Konfiguratsioonifaili manual:

man tac_plus.conf


Aruandluse logifail:

/var/log/tac_plus.acct


TACACS+ konfiguratsioonifaili asukoht:

/etc/tacacs+/tac_plus.conf


Algupärane konfiguratsioonifail:

# Created by Henry-Nicolas Tourneur(henry.nicolas@tourneur.be)
# See man(5) tac_plus.conf for more details

# Define where to log accounting data, this is the default.

accounting file = /var/log/tac_plus.acct

# This is the key that clients have to use to access Tacacs+

key = testing123

# Use /etc/passwd file to do authentication
    
#default authentication = file /etc/passwd
 

# You can use feature like per host key with different enable passwords
#host = 127.0.0.1 {
#        key = test 
#        type = cisco
#        enable = <des|cleartext> enablepass
#        prompt = "Welcome XXX ISP Access Router \n\nUsername:"
#}

# We also can define local users and specify a file where data is stored.
# That file may be filled using tac_pwd
#user = test1 {
#    name = "Test User"
#    member = staff
#    login = file /etc/tacacs/tacacs_passwords
#}

# We can also specify rules valid per group of users.
#group = group1 {
#       cmd = conf {
#               deny
#       }
#}

# Another example : forbid configure command for some hosts
# for a define range of clients
#group = group1 {
#       login = PAM
#       service = ppp
#       protocol = ip {
#               addr = 10.10.0.0/24
#       }
#       cmd = conf {
#               deny .*
#       }
#}

user = DEFAULT {
        login = PAM
        service = ppp protocol = ip {}
}

# Much more features are availables, like ACL, more service compatibilities,
# commands authorization, scripting authorization.
# See the man page for those features.


Kasutajate autentimist on võimalik tac_plus's seadistada kolmel moel:

  • Autentimine lokaalse passwd faili alusel - /etc/passwd
  • Autentimine /etc/tac_plus/tac_plus.conf faili lisatud DES salajaste võtmetega
  • Autentimine PAM-ga LDAP serveri pihta


Käsitlen kahte esimest varianti:

Autentimine passwd faili põhjal

Lisan TACACS+ võtme , mis tuleb ka hallatava(te)sse ruuteri(te)sse seadistada (sellest juttu edaspidi), kommenteerin välja rea, kus määratakse autentimisandmete allikaks /etc/passwd fail.

Loon grupi "net_admins", omistan Cisco kõrgeim ligipääsutaseme - privilege level 15. Kasutaja "margus" määran grupi "net_admins" liikmeks.

.
.
.
key = y97A14T2#741zQ+
.
.
.
default authentication = file /etc/passwd
.
.
.
group = net_admins {
        default service = permit
        login = file /etc/passwd
        enable = file /etc/passwd
        service = exec {
                priv-lvl = 15
                }
}



user = margus {
        member = net_admins
}
.
.
.

Autentimine DES salajase võtmega

Loon grupi "uusgrupp", madalaima ligipääsutasemega - privilege level 0.

Kasutaja "jaan" lisan loodud gruppi ja defineerin krüpteeritud parooli.

Parooli krüpteerimiseks kasutan käsku tac_pwd.

.
.
.
key = y97A14T2#741zQ+
.
.
.
group = uusgrupp {
        default service = permit 
        service = exec {
                priv-lvl = 0
                }
}
.
.
.
user = jaan {
        login = des UT.e3EErKERm2
        member = uusgrupp
}
.
.
.

Autoriseermine

Autoriseerimine võimaldab keelata hallatavas võrguseadmes teatud käskude käivitamist. Need reeglid on omistatavad nii kasutajatele kui gruppidele. Reeglid on keelavad või lubavad.

Lihtne näide, kus on loodud grupp "piiratud_ligip22s", mille liikmetele on lubatud ligipääs vaid ruuterile IP-ga 172.16.1.103.

Grupi liikmetel on keelatud käivitada käske "configure" ega "debug".

.
.
.
acl = ruuter1_acl {
        permit = 172.16.1.103
}


group = piiratud_ligip22s {
        default service = permit
        login = file /etc/passwd
        enable = file /etc/passwd
        service = exec {
                priv-lvl = 15
                }
        cmd = configure {
                deny "."
                }
        cmd = debug {
                deny "."
                }

        acl = ruuter1_acl

}

user = uno {
        member = piiratud_ligip22s
}
.
.
.

Cisco AAA seadistamine