Firefox Lesezeichen ueberall – Selfmade!

Ich arbeite an vielen unterschiedlichen Computern und moechte ueberall die gleichen Lesezeichen immer synchron haben. Es faellt mir jedoch schwer die Daten einer Firma zu geben die mit der Auswertung meiner Daten und dann Werbung oder aehnlichem Geld verdient. Ich arbeite schon laenger mit Foxmarks und neuerdings heisst es ja Xmarks. Durch einen kleinen Beitrag in der neuen CT hab ich mich nu auch mal aufgerafft und habe die Lesezeichen auf meinen eigenen Server verfrachtet. Im folgenden die erforderlichen Schritte dahin:

aptitude install apache2
a2enmod dav
a2enmod dav_fs
a2enmod ssl
/etc/init.d/apache2 force-reload
cd /var/www/
mkdir webdav
chown www-data:www-data webdav
htpasswd -c .htpasswd-webdav USERNAME
chown root:www-data .htpasswd-webdav
chmod 640 .htpasswd-webdav

Die folgenden Zeilen in die /etc/apache2/sites-available/default-ssl hinzufuegen:

    <VirtualHost *:443>
    ServerAdmin webmaster@example.net
    ServerName webdav.example.net
    DocumentRoot /var/www/webdav
 
        SSLEngine On
        SSLCertificateFile      /etc/apache2/MYSSLCERT.pem
        SSLCertificateKeyFile   /etc/apache2/MYSSLCERT.pem
 
        <Directory /var/www/webdav/>
                Options Indexes MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
 
        <Location />
           DAV On
           AuthType Basic
           AuthName "Webdav"
           AuthUserFile /var/www/.htpasswd-webdav
           Require valid-user
       </Location>
 
</VirtualHost>

Apache neustarten und testen ob alles geht. Beim verbinden mit cadaver muesst Ihr das Zertifikat akzeptieren und dann mit den in der .htpasswd-webdav gespeicherten Userdaten einloggen. Wieder rauskommen tut ihr mit „quit“.

/etc/init.d/apache2 restart
aptitude install cadaver
cadaver https://webdav.example.net

So, das wars auch schon fast! Nun muesst Ihr nur noch das Xmarks Firefox-Plugin installieren und in den Einstellungen unter „Erweitert“ die Option „Eigenen Server verwenden“ aktivieren und als Lesezeichen und Passwort-URL die URL zu eurem Server angeben. ACHTUNG!: Es muss auch eine Datei angegeben werden und nicht nur ein Verzeichnis! Bsp:

  • LesezeichenURL: https://webdav.example.net/bookmarks.json
  • Passwort-URL: https://webdav.example.net/passwords.json

Ich persoenlich habe die Passwort-synchronisation jedoch deaktiviert (genauso wie auch den ganzen Extrakram unter „Entdecken“, nervt nur). Nun einmal noch im Erweitert-Tab auf „Hochladen“ klicken und zusehen und evtl. Zertifikat akzeptieren, Benutzernamen und Passwort eingeben und zusehen wie die Daten hochgeladen werden. Viel Spass :)

Nagios Mobile Webinterface

Um es ganz zu Anfang zu sagen: Es gibt kein „schoenes“ mobile Webinterface fuer Nagios. Das, was gut aussieht heisst iNagios, ist jedoch wie der Name bereits vermuten laesst fuers iPhone bzw. iPod Touch only.

Es gibt jedoch ein WAP-Interface das Nagios bereits mitbringt. Das sieht zwar nicht schoen aus, aber es funktioniert ohne Probleme und gibt alle Informationen aus die benoetigt werden. Die gewuenschte Datei heisst statuswml.cgi. Die Datei liegt im cgi-bin Ordner. Um das ganze einfach zugaenglich zu machen am besten mod-rewrite nehmen:

1
2
3
4
5
6
<IfModule mod_rewrite.c>
  <Location /nagmob>
    RewriteEngine on
    RewriteRule . http://ww.example.net/nagios2/cgi-bin/statuswml.cgi [L]
  </Location>
</IfModule>

Wer das ganze ausprobiert und sich wundert, dass wenn man die URL aufruft der Browser einem dann die statuswml.cgi zum Download anbietet, dem sollte gesagt sein, dass das daran liegt, dass der Browser dann kein WAP unterstuetzt. Einfach vom Handy aus aufrufen und schon ist alles gut ;-)

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&gt;&amp;1 | head -1 | grep INTEGER`;
  # Port extrahieren
  RESULT2=`echo $RESULT1 | sed 's/.*INTEGER: //g'` ;
  # Wenn kein Uplink-Port dann Info ausgeben
  if ([ "$RESULT2" != "25" ] &amp;&amp; [ "$RESULT2" != "26" ]  &amp;&amp; [ -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&gt;&amp;1 | head -1 | grep INTEGER`;
  RESULT2=`echo $RESULT1 | sed 's/.*INTEGER: //g'` ;
 
  if ([ "$RESULT2" != "25" ] &amp;&amp; [ "$RESULT2" != "26" ] &amp;&amp; [ "$RESULT2" != "27" ] &amp;&amp; [ "$RESULT2" != "28" ] &amp;&amp; [ -n "$RESULT2" ]); then
    echo Mac-Adresse: $1 gefunden auf Switch $i und Port $RESULT2
  fi
done
 
fi