[rancid] Oddities with Cisco ASA
Jethro R Binks
jethro.binks at strath.ac.uk
Wed Jan 16 00:17:30 UTC 2008
Despite reports on the list of people having no problems with Cisco ASAs,
I am having some problems. This with code 7.1(2). Two problems are
described here, forgive the length of this.
My main issue at the moment is that rancid (2.3.1), does not check in the
new config into CVS because it does not believe that a clean run has
happened. I have run in debugging mode, and I can see the expected
content for both "show running-config" and "write term" in the .raw file.
I think my concern is with this line:
while (/#\s*($cmds_regexp)\s*$/) {
in the main part of the 'rancid' code (line 1625 for rancid.in 1.174)
which tries to match an executed command after the prompt symbol.
Unfortunately, for my ASA, in the raw output from clogin, I see the
following:
...
privilege clear level 3 mode configure command aaa-server
Cryptochecksum:14ed48d4686a8722efaf076dcd4d820c
: end
asa5500-cu#term
: Saved
:
ASA Version 7.1(2)
...
This is the end of "show running-config", and the start of "write term".
But see that only "term" is at the prompt, the rest has been swallowed
somewhere; rancid does not find a match for the command, and so it decides
that this is not a clean run.
Anyone else seen this behaviour?
Here is a related query. A little further on in 'rancid', there is this
code:
...
$rval = &{$commands{$cmd}};
delete($commands{$cmd});
if ($rval == -1) {
$clean_run = 0;
last TOP;
...
Should that really be 'last'? I am finding on my ASA that for some of the
subroutines executed for commands that are not appropriate for this
platform (many of the "dir" commands, "show env all", and so on) return
-1, and it bails out at this point and does not process output from later
commands.
When I change 'last' to 'next', it carries on processing output from
subsequent commands. Is the retval of -1 supposed to be a fatal 'cannot
continue' indicator? In which case, I have a problem with the frequent
occurences of:
return(-1) if (/command authorization failed/i);
as the ASA seems to say this anyway even for subcommands that it doesn't
understand (see below for notes on privilege level of the user):
asa5500-cu# show rubbish
^
ERROR: % Invalid input detected at '^' marker.
ERROR: Command authorization failed
I may of course be completely misunderstanding what is supposed to be
happening here, but this is the nearest explanation I have got after
several evenings of squinting - however I find it odd that no-one else has
noticed this.
Other information:
FreeBSD 6.1, SMP kernel, expect-5.44.1.4 from lang/expect-devel, I have
read http://www.freebsd.org/cgi/query-pr.cgi?pr=118452
Cisco Adaptive Security Appliance Software Version 7.1(2)
Device Manager Version 5.1(2)
Hardware: ASA5550, 3968 MB RAM, CPU Pentium 4 3000 MHz
The user on the ASA is privilege level 7, and I have set the following:
privilege cmd level 7 mode exec command dir
privilege cmd level 7 mode exec command write
privilege cmd level 7 mode exec command terminal
privilege show level 7 mode exec command running-config
privilege show level 7 mode exec command version
privilege show level 7 mode exec command bootvar
privilege show level 7 mode exec command vlan
privilege show level 7 mode exec command module
which seem to be sufficient. I don't get different results with a user of
priv level 15, for what it is worth.
Thanks for any comments,
Jethro.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Jethro R Binks
Computing Officer, IT Services
University Of Strathclyde, Glasgow, UK
More information about the Rancid-discuss
mailing list