1 | @c $Id$
|
---|
2 |
|
---|
3 | @node Things in search for a better place, Kerberos 4 issues, Applications, Top
|
---|
4 | @chapter Things in search for a better place
|
---|
5 |
|
---|
6 | @section Making things work on Ciscos
|
---|
7 |
|
---|
8 | Modern versions of Cisco IOS has some support for authenticating via
|
---|
9 | Kerberos 5. This can be used both by having the router get a ticket when
|
---|
10 | you login (boring), and by using Kerberos authenticated telnet to access
|
---|
11 | your router (less boring). The following has been tested on IOS
|
---|
12 | 11.2(12), things might be different with other versions. Old versions
|
---|
13 | are known to have bugs.
|
---|
14 |
|
---|
15 | To make this work, you will first have to configure your router to use
|
---|
16 | Kerberos (this is explained in the documentation). A sample
|
---|
17 | configuration looks like the following:
|
---|
18 |
|
---|
19 | @example
|
---|
20 | aaa new-model
|
---|
21 | aaa authentication login default krb5-telnet krb5 enable
|
---|
22 | aaa authorization exec krb5-instance
|
---|
23 | kerberos local-realm FOO.SE
|
---|
24 | kerberos srvtab entry host/router.foo.se 0 891725446 4 1 8 012345678901234567
|
---|
25 | kerberos server FOO.SE 10.0.0.1
|
---|
26 | kerberos instance map admin 15
|
---|
27 | @end example
|
---|
28 |
|
---|
29 | This tells you (among other things) that when logging in, the router
|
---|
30 | should try to authenticate with kerberised telnet, and if that fails try
|
---|
31 | to verify a plain text password via a Kerberos ticket exchange (as
|
---|
32 | opposed to a local database, RADIUS or something similar), and if that
|
---|
33 | fails try the local enable password. If you're not careful when you
|
---|
34 | specify the `login default' authentication mechanism, you might not be
|
---|
35 | able to login at all. The `instance map' and `authorization exec' lines
|
---|
36 | says that people with `admin' instances should be given `enabled' shells
|
---|
37 | when logging in.
|
---|
38 |
|
---|
39 | The numbers after the principal on the `srvtab' line are principal type,
|
---|
40 | time stamp (in seconds since 1970), key version number (4), keytype (1 ==
|
---|
41 | des), key length (always 8 with des), and then the key.
|
---|
42 |
|
---|
43 | To make the Heimdal KDC produce tickets that the Cisco can decode you
|
---|
44 | might have to turn on the @samp{encode_as_rep_as_tgs_rep} flag in the
|
---|
45 | KDC. You will also have to specify that the router can't handle anything
|
---|
46 | but @samp{des-cbc-crc}. This can be done with the @samp{del_enctype}
|
---|
47 | command of @samp{kadmin}.
|
---|
48 |
|
---|
49 | This all fine and so, but unless you have an IOS version with encryption
|
---|
50 | (available only in the U.S) it doesn't really solve any problems. Sure
|
---|
51 | you don't have to send your password over the wire, but since the telnet
|
---|
52 | connection isn't protected it's still possible for someone to steal your
|
---|
53 | session. This won't be fixed until someone adds integrity to the telnet
|
---|
54 | protocol.
|
---|
55 |
|
---|
56 | A working solution would be to hook up a machine with a real operating
|
---|
57 | system to the console of the Cisco and then use it as a backwards
|
---|
58 | terminal server.
|
---|