wohnt jetzt neu bei uns im Wohnheim:
Schlagwort: wohnheim
An welchem Port befindet sich der Host?
Diese Frage muss natuerlich beantwortet sein, wenn ich Rechner die einen Virus haben automatisch in ein VLAN packen moechte. Gestern habe ich geschrieben, wie man auf den FSM726v2 einen Port via SNMP automatisch in ein VLAN setzt. Heute geht es nun darum, basierend auf einer MAC-Adresse, in unserem Wohnheim herauszufinden, auf welchem Switch und an welchem Port darauf ein Rechner sitzt, bzw. DER vireninfizierte Rechner sitzt. Es gab dafuer bei uns im Tutorium ein perl-Skript, das fuer diese Aufgabe gute 4 1/2 Minuten benoetigte. Wir haben so um die 45 Switche bei uns im Wohnheim.
Meine erste Loesung in bash dauerte ca. doppelt so lange wie das perl Skript, aber nachdem ich das ganze noch einmal ueberdacht hatte bekomme ich die gewuenschte Information nun in Sekunden. Das Skript in dieser Form funktioniert fuer FSM726v2 und FSM7328 Switche, sollte aber ohne Probleme wenn man die OIDs anpasst auch fuer alle anderen Switchtypen funktionieren. Hier das Skript:
#!/bin/bash ## # sucht nach mac-adressen auf den switchen und # gibt den port aus, auf dem sie zu finden ist # # syntax: ./mac-port.sh 00:11:22:33:44:55 # # 04/2009 - Jan Toenjes - jan@atw.goe.net ## # Ueberpruefen ob uns eine gueltige MAC-Adresse uebergeben wurde VALID=$( echo $1 | sed -n "/^\([0-9A-Z][0-9A-Z]:\)\{5\}[0-9A-Z][0-9A-Z]$/p" ) if [ -z $VALID ]; then echo "" echo " syntax: $0 00:11:22:33:44:55" echo "" echo "" echo " Dem Skript muss eine gueltige MAC-Adresse als Parameter uebergeben werden." echo "" echo " Version: 0.1 von Jan Toenjes - jan@atw.goe.net " echo "" else # SWITCHE1 = FSM726v2 ; SWITCHE2 = FSM7328 SWITCHE1="1.1.1.1 1.1.1.2 1.1.1.3 " SWITCHE2="1.1.2.1 1.1.2.2" # Zeugs OID1=".1.3.6.1.2.1.17.4.3.1.2" OID2="SNMPv2-SMI::mib-2.17.7.1.2.2.1.2.1" MACDEC="" # Doppelpunkte aus MAC-Adresse entfernen MACSPLIT=`echo $1 | sed 's/:/ /g'` # MAC-Adresse von HEX in DEC konvertieren for i in $MACSPLIT ; do MACDEC=$MACDEC.$(echo "ibase=16; $i"| bc) ; done # Gucken ob die MAC-Adresse auf dem Switch FSM726v2 vorhanden ist und wenn ja welcher Port for i in $SWITCHE1 ; do RESULT1=`snmpget -v1 -c tutrw $i $OID1$MACDEC 2>&1 | head -1 | grep INTEGER`; # Port extrahieren RESULT2=`echo $RESULT1 | sed 's/.*INTEGER: //g'` ; # Wenn kein Uplink-Port dann Info ausgeben if ([ "$RESULT2" != "25" ] && [ "$RESULT2" != "26" ] && [ -n "$RESULT2" ]); then echo Mac-Adresse: $1 gefunden auf Switch $i und Port $RESULT2 fi done # und das gleiche auch noch einmal fuer die FSM7328 for i in $SWITCHE2 ; do RESULT1=`snmpget -v1 -c tutrw $i $OID2$MACDEC 2>&1 | head -1 | grep INTEGER`; RESULT2=`echo $RESULT1 | sed 's/.*INTEGER: //g'` ; if ([ "$RESULT2" != "25" ] && [ "$RESULT2" != "26" ] && [ "$RESULT2" != "27" ] && [ "$RESULT2" != "28" ] && [ -n "$RESULT2" ]); then echo Mac-Adresse: $1 gefunden auf Switch $i und Port $RESULT2 fi done fi |
automatische Conficker Erkennung im Wohnheim
Inzwischen sind die Diagnosetools da und es ist eine einfache automatische Conficker-Erkennung moeglich. Dafuer reicht es die latest development release von nmap zu installieren (die rpms liessen sich ohne Probleme auf einem Debian Etch mit alien konvertieren und installieren) und dann zu suchen. Potentiell interessant sind die Rechner die port 445 offen haben. Ein simples schnelles bash-Skript ueber nen cron laufen lassen ueberprueft die Range regelmaessig nach aktiven Hosts mit port 445 offen und scannt diese durch. Das Ergebnis kann man sich dann ja einfach via Mail zuschicken lassen oder so…
#!/bin/bash for i in `nmap -p445 10.10.96.0/20 | grep Interesting | awk {'print $5'} | sed 's/(\|)://g'` ; \ do echo "$i `nmap --script=smb-check-vulns --script-args=safe=1 -p445 -d $i | grep Conficker`" & \ done | grep Conficker ; \ wait |
Unser Wohnheim ist haesslich?!
Seitdem ich bei uns im Studentenwohnheim ATW wohne, gibt es diese elendigen Diskussionen darueber von wegen unser Wohnheim sei so haesslich und grau von aussen, und es sollte einen neuen Aussenanstrich geben. Ich habe die Diskussion nie so ganz verstanden, aber nachdem ich dieses Studentenwohnheim in Grenoble gesehen habe bitte ich doch instaendigst darum, diese Diskussion ein fuer allemal einzustellen!