Ziel:
Ich wollte die Mac-Adress-Security beim Nortel BayStack mal ausprobieren und
bei allen Verstößen eine Email bekommen. Da der Nortel ja einen SNMP-Trap schickt,
galt es nur noch den zu finden und auszuwerten.
Hier der Weg:
Debian Sarge-Pakete:
ii snmp 5.1.2-6.2 NET SNMP (Simple Network Management Protocol
ii snmpd 5.1.2-6.2 NET SNMP (Simple Network Management Protocol
Hardware:
Nortel BayStack 425-24T Switch
Port Security aktiviert von Port 1-5
SNMP Trap IP Adress 172.16.10.15
Community String: Public
Alle Traps durch traps.sh ( http://net-snmp.sourceforge.net/tutorial/tutorial-5/commands/snmptrap.html
) Script von jagen
/etc/snmp/snmptrapd.conf:
traphandle default /etc/snmp/bin/traps.sh |
Dienst neustarten:
/etc/init.d/snmpd restart |
Dann im Log den snmpTrapOID.0 suchen:
trap: 192.168.6.211 192.168.6.211 |
Den Value (SNMPv2-SMI::enterprises.45.1.6.2.1.0.5) in die /etc/snmp/snmptrapd.conf eintragen:
traphandle SNMPv2-SMI::enterprises.45.1.6.2.1.0.5 /etc/snmp/bin/sec.sh |
Dienst neustarten:
/etc/init.d/snmpd restart |
Und schon übernimmt sec.sh den Trap !!!
Was sagt der Trap noch:
SNMPv2-SMI::enterprises.45.1.6.5.3.12.1.1.1.1 = 1, ->
?? SNMPv2-SMI::enterprises.45.1.6.5.3.12.1.2.1.1 = 1, -> ?? SNMPv2-SMI::enterprises.45.1.6.5.3.12.1.3.1.1 = "00 30 05 65 56 89 ", -> Die Mac-Adresse die den Trap ausgelöst hat SNMP-COMMUNITY-MIB::snmpTrapAddress.0 = 192.168.6.211, -> Das System das den Trap sendet SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 = "Public" -> Community |
Ändern wir mal den Port auf 2 und gucken in den Trap:
trap: 192.168.6.211 192.168.6.211 SNMPv2-MIB::sysUpTime.0 = 1:3:53:31.37, SNMPv2-MIB::snmpTrapOID.0 = SNMPv2-SMI::enterprises.45.1.6.2.1.0.5, SNMPv2-SMI::enterprises.45.1.6.5.3.12.1.1.1.2 = 1, - >immer noch unbekannt ... SNMPv2-SMI::enterprises.45.1.6.5.3.12.1.2.1.2 = 2, -> Dann ist das wohl der Port SNMPv2-SMI::enterprises.45.1.6.5.3.12.1.3.1.2 = "00 30 05 65 56 89 ", SNMP-COMMUNITY-MIB::snmpTrapAddress.0 = 192.168.6.211, SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 = "Public" |
Und was fieses: Die letzte Zahl der oid (45.1.6.5.3.12.1.3.1.2)
ist der Port !!!
Der muß da herausgefiltert werden ...
Wir nehmen cut mit dem Trenner . und nehmen alle Teile außer dem letzten
cut -d. -f1,2,3,4,5,6,7,8,9,10
das sieht im Script so aus:
oid_oi=`echo $oid | cut -d. -f1,2,3,4,5,6,7,8,9,10` |
Und hier das ganze Script:
#!/bin/sh
read host while read oid val oid_oi=`echo $oid | cut -d. -f1,2,3,4,5,6,7,8,9,10` #Suchen nach Port #Suche nach MAC-Adresse done datum=`date +%b" "%d" "%T` echo "$datum : Permission denied for $mac on Port $port at $host (IP: $ip )" >$out #Email schicken #Log-Eintrag erzeugen |
Erstellt: 2006-09-06 | Autor:Markus Ungermann / tuxhausen.de |
Letztes Update: |