Für alle Netzwerk-Komponenten sollte man jederzeit wissen, wer wann, was geändert hat. Normalerweise wird diese Funktionalität über AAA Accounting, Cisco Works, Syslog oder einer Software wie den Kiwi CatTools implementiert. Wenn aber kein zentraler Server für Syslog oder AAA zur Verfügung steht (was gerade bei kleineren Firmen manchmal vorkommt), dann kann eine IOS-Funktion verwendet werden, die im Release 12.3(4)T hinzugefügt wurde.
Damit sich der Router selbst merken kann, welche Kommandos ausgeführt wurden, wird die Funktion “archive” global aktiviert. Dafür habe ich hier einen Cisco 3725 mit Advanced IP-Services 12.4(6)T7 verwendet:
R1#sh ver
Cisco IOS Software, 3700 Software (C3725-ADVIPSERVICESK9-M), Version 12.4(6)T7,
RELEASE SOFTWARE (fc5)
R1#sh run | s i archive
archive
log config
logging enable
logging size 50
hidekeys
R1#
Dies schaltet die Logging-Funktion ein. 50 Befehle wird sich der Router merken und wenn Passwörter etc. konfiguriert werden, sind diese nicht im Log sichtbar.
Als nächstes habe ich ein paar Sachen konfiguriert und kann dank der Archiv-Funktion später kontrollieren, was geändert wurde:
c3725#sh archive log config all
idx sess user@line Logged command
1 1 console@console | logging enable
2 1 console@console | logging size 50
3 1 console@console | hidekeys
4 1 console@console | exit
5 1 console@console | exit
6 1 console@console |!exec: enable
7 2 console@console |username Karsten secret *****
8 2 console@console |!config: USER TABLE MODIFIED
9 2 console@console |username HansWurst secret *****
10 2 console@console |!config: USER TABLE MODIFIED
11 2 console@console |aaa new-model
12 2 console@console |aaa authentication login default local
13 2 Karsten@console |!exec: enable
14 3 Karsten@console |hostname CRS1
15 3 Karsten@console |interface loo 111
16 3 Karsten@console | ip address 111.111.111.111 255.255.255.255
17 3 Karsten@console | exit
18 3 HansWurst@console |!exec: enable
19 4 HansWurst@console |hostname c3725
20 4 HansWurst@console |no interface Loopback111
21 4 Karsten@console |!exec: enable
c3725#
Es ist zu erkennen, daß ich zwei User angelegt und AAA konfiguriert habe. Dann habe ich mich auf der Console als User “Karsten” neu eingeloggt, den Hostnamen verändert und ein Loopback-Interface konfiguriert. Danach habe ich mich als User “HansWurst” angemeldet, den Hostnamen erneut geändert und das Loopback-Interface wieder gelöscht.
Es läßt sich auch eine Ausgabe erzeugen, die man per Copy&Paste direkt in andere Geräte übernehmen kann (von den fehlenden Passwörtern abgesehen):
c3725#sh archive log config all provisioning
archive
log config
logging enable
logging size 50
hidekeys
exit
exit
!exec: enable
username Karsten secret *****
!config: USER TABLE MODIFIED
username HansWurst secret *****
!config: USER TABLE MODIFIED
aaa new-model
aaa authentication login default local
!exec: enable
hostname CRS1
interface loo 111
ip address 111.111.111.111 255.255.255.255
exit
!exec: enable
hostname c3725
no interface Loopback111
!exec: enable
c3725#
Oder man läßt sich alles anzeigen, was ein bestimmter User in einer Session konfiguriert hat:
c3725#sh archive log config user HansWurst session 4
idx sess user@line Logged command
19 4 HansWurst@console |hostname c3725
20 4 HansWurst@console |no interface Loopback111
c3725#
Das gleiche zum Copy&Paste:
c3725#sh archive log config user HansWurst session 4 provisioning
hostname c3725
no interface Loopback111
c3725#
Oder man läßt sich einen Bereich aus der Log-Historie anzeigen:
c3725#sh archive log config 13 17 provisioning
!exec: enable
hostname CRS1
interface loo 111
ip address 111.111.111.111 255.255.255.255
exit
c3725#
Mit dem “archive”-Kommando sind noch weitere spannende Sachen möglich, mehr dazu gibt es in einem der nächsten Beiträge an dieser Stelle … 😉
Weitere Informationen finden sich (wie üblich) in der Dokumentation bei Cisco:
IOS 14.4(6)T7 – Cool 😀
… war ‘ne frühe Beta … 😉
Ok, ist korrigiert.