Twitter – ich bin dabei!

Februar 25th, 2009

Seit heute bin ich auch dabei, unter http://twitter.com/rot26de kann man meinen Gedanken im Laufe des Tages folgen — zumindest jenen, die ich öffentlich machen will, aber nicht für einen Blogeintrag reichen.

Multi-mode oder Singlemode?

Februar 17th, 2009

Wie unterscheidet man eigentlich Multimode (MMF) und Singlemode (SMF) Glasfasern? Am einfachsten über die Ummantelung. Zum Glück gibt es eine Konvention, daß MMF normalerweise orange, SMF normalerweise gelb ummantelt sind. Kleine Randnotiz: Beim Beauftragen von Glasfaser-Verbindungen im Rechenzentrum sollte man frühzeitig von allen beteiligten Parteien in Erfahrung bringen, welchen Fasertyp und welchen Stecker sie sich vorstellen. Sonst braucht man viel Glück damit es hinterher alles übereinstimmt.

Alles Gute zum 1234567890-Tag!

Februar 13th, 2009

Für diejenigen die es noch nicht mitbekommen haben: Heute Nacht ist 1234567890, zumindest in der Epoch-Schreibweise, d.h. in Sekunden seit dem 1. Januar 1970, dem Anfang der UNIX-Zeitrechnung. Und zwar genau um:

$ date -r 1234567890
Sa 14 Feb 2009 00:31:30 CET

Diese Zeitkonvertierung funktioniert allerdings nur unter BSD und MacOS X mit dem BSD-date, aber nicht unter Linux mit GNU date…

Update: Wie ich gerade erfahre kann man es auch unter GNU date schaffen:

$ date -d @1234567890
Sa 14. Feb 00:31:30 CET 2009

Logging auf Telnet-Session bei Cisco

Februar 9th, 2009

Kleiner Tip wenn man per Telnet auf einem Cisco-Router eingeloggt ist und das Log beobachten möchte. Anstatt zwischendurch immer wieder show log einzugeben kann man die Log-Meldungen auf dem aktuellen Virtuellen Terminal ausgeben lassen. Hierzu einfach terminal monitor eingeben.
Will man allgemein zu mehr Disziplin und Bewusstsein bei der Administration sorgen kann man das auch automatisch bei jeder Verbindung aktivieren:

line vty 0 4
        autocommand terminal monitor
        autocommand-options nohangup

Bandbreitentester für ISPs

Februar 5th, 2009

Gambit Design hat einen Bandbreitentester für ISPs zum Download – einfach auspacken und die entsprechende Datenbank anlegen, schon können Kunden zumindest grundlegend die Bandbreite ihrer Anbindung testen. Leider bisher nur in Download-Richtung, vielleicht lässt er sich bei Gelegenheit auch für die Upload-Richtung erweitern…

Lint für E-Mails

Februar 1st, 2009

Letzte Woche war viel los, deshalb bin ich nicht zum schreiben gekommen. Aber jetzt habe ich ein paar Beiträge angesammelt, die im Laufe der Woche erscheinen werden.

Ein praktischer Fund diese Woche war Message Lint, genau soetwas habe ich schon länger gesucht. Diese Woche fielen mir die passenden Such-Stichwörter ein und er war gefunden.

Was tut Message Lint? Es prüft E-Mail-Nachrichten auf RFC-Konformität. Das ist sehr praktisch wenn man E-Mails selber generiert. So kann man sicher sein, dass alle MIME-Header stimmen, die Codierung richtig angegeben ist und so weiter.

Stolperfallen bei DNS-Wildcard-Einträgen

Januar 22nd, 2009

Eine praktische Erfindung sind DNS-Wildcard-Einträge, um z.B. bei einer Domain nicht alle Subdomains manuell konfigurieren zu müssen. Aber es gibt dabei Stolperfallen, in die auch erfahrene Sysadmins manchmal tappen.

Kurz zu den Grundlagen: Eine Zeile des Zonefiles besteht aus folgenden Teilen:

  • name, z.B. www
  • ttl, z.B. 300
  • class, z.B. IN
  • rr, z.B. A
  • type-specific-data, z.B. 192.0.2.1

Nun kann man für name auch Wildcards benutzen, also z.B. solche Einträge machen, ein Beispiel-Zonefile wäre:

example.com        IN MX 10 mail.example.com.
*.example.com      IN MX 10 mail.example.com.
mail.example.com   IN A     192.0.2.1
*.example.com      IN A     192.0.2.2
*.demo.example.com IN A     192.0.2.3

Soweit ist alles klar. Ruft jemand im Browser kunde1.example.com auf, landet er auf 192.0.2.2, bei kunde1.demo.example.com auf 192.0.2.3, und alle E-Mails an info@kunde1.example.com werden über mail.example.com zugestellt. Aber was ist mit Mails an info@kunde1.demo.example.com?

Jetzt kommt das überraschende: Der MX-Eintrag *.example.com greift hier nicht. Warum? Nun, es wird der spezifischere Eintrag *.demo.example.com gefunden, für den es nur einen A-Record gibt. Sollen auch Mails an *.demo.example.com zugestellt werden, muß auch hierfür ein MX-Eintrag angelegt werden.

Und noch eine Stolperfalle: Gibt es eine zweite Sammel-Subdomain prod.example.com funktioniert dies mit der oben genannten Konfiguration, und kunde1.prod.example.com zeigt auf 192.0.2.2 – solange, bis jemand auf die Idee kommt für kunde2.prod.example.com ein SSL-Zertifikat zu benötigen und dieses auf 192.0.2.4 zu installieren.

Jetzt funktioniert plötzlich kunde1.prod.example.com nicht mehr – denn es gibt ja jetzt explizit prod.example.com, mit einem einzigen Eintrag: kunde2. Und kunde1 guckt in die Röhre. Also muß das Zonefile um die folgenden Einträge erweitert werden:

*.prod.example.com      IN A     192.0.2.2
kunde2.prod.example.com IN A     192.0.2.3
*.prod.example.com      IN MX 10 mail.example.com.
*.demo.example.com      IN MX 10 mail.example.com.

Details finden sich in rfc1034 Abschnitt 4.3.3.

Cronjobs richtig schreiben

Januar 19th, 2009

In meinem Job als Systemadministrator bei einem ISP werde ich von unseren Kunden oft mit dem Wunsch nach einem Cronjob konfrontiert, dabei kann man sich viele Eigenschaften des Cron-Daemons zunutze machen und somit Arbeit sparen, ausserdem erhöhte Sicherheit erreichen.

Folgende Punkte sollte man beachten:

  1. in der crontab MAILTO setzen
  2. Ausgabe in den Scripten nur bei Fehlern, und nach STDERR
  3. nicht wget oder curl verwenden, sondern direkt z.B. php-cli
  4. keine Webserver-Variablen (in PHP z.B. $_SERVER) verwenden, sondern z.B. $HOME

Damit erreicht man einiges und spart sich Arbeit. Zu allererst muss man nicht selber eine E-Mail generieren, sondern kann es dem Cron-Daemon überlassen. Ausserdem wird, wenn man 2. beachtet, nur dann eine E-Mail erzeugt, wenn ein Fehler auftritt. Dadurch wird eine Gewöhnung vermieden (vorausgesetzt man behebt die Fehler die gemeldet werden konsequent) und sichergestellt, daß Fehler nicht im Grundrauschen untergehen.

Durch Berücksichtigung von 3. kann man die Skripte ausserhalb des per Webserver aufrufbaren document_root ablegen, und verhindert damit daß User der Webseite Cronjobs zu ihren Gunsten aufrufen. Ein Beispiel wäre eine Community, bei der jeder User am Tag eine Punktzahl bekommt. Ausserdem senkt es die Anzahl der für einen Cronjob gestarteten Prozesse immens. Bei Verwendung von z.B. curl sind es bis zu vier: cron startet eine Shell, diese startet Curl, der Request beschäftigt einen Webserverprozeß und eventuell einen PHP-Prozeß. Ohne diesen Umweg kann man es durch Setzen der Shell-Variablen auf einen reduzieren: PHP.

Allerdings muss man seinen Quellcode dann unabhängig von Variablen, die nur vom Webserver gesetzt werden, schreiben, wie z.B. das oben genannte $_SERVER.

serielle Console auf Mac OS X

Januar 15th, 2009

Ich habe schon oft gehört daß Apple-Notebooks sich immer grösserer Beliebtheit bei Netzwerkadmins erfreut. Als langjähriger Apple-User kann ich das sehr gut nachvollziehen.

Allerdings kommt oft die Frage auf, welches Programm man denn benutzen kann um mit Hilfe von USB-Seriell-Adaptern auf die Console-Ports eines Routers zuzugreifen. Auf meinem ersten iBook habe ich damals tip von OpenBSD mit ein paar kleinen Änderungen kompiliert – da ich dummerweise die Änderungen nicht dokumentiert hatte konnte ich nur das Binary weitergeben.

Auf meinem ersten Intel-Mac stellte sich mir dann erneut diese Frage, und da wurde ich auf eine extrem simple Lösung gestossen. Das Programm screen lässt sich nicht nur als Ersatz für virtuelle Terminals und für die Ausführung von langen Prozessen auf entfernt stehenden Servern verwenden. Nein, es ist auch eine erstklassige Terminal-Emulation.

Der Aufruf

screen /dev/tty.usbserial-FTBA75T3

öffnet die serielle Console des angehängten Gerätes.
Optional können noch weitere Parameter folgen, am ehesten benötigt man die Angabe der Geschwindigkeit.

Auch ein Break lässt sich senden, per “^A b”. Wenn man fertig ist kann man per “^A ^\” gefolgt von “y” die Sitzung beenden.

Corporate Design bei Cisco

Januar 12th, 2009

prod_small_photo0900aecd8060c68a.jpgViele Firmen vernachlässigen ihr Corporate Design auf sträfliche Art. Andere geben sich viel Mühe, daß ihr Logo nicht nur überall gleich gut aussieht, sondern auch ja immer richtig herum erscheint. Problematisch ist sowas bei Notebooks – soll das Logo bei geschlossenem oder geöffnetem Display richtig herum sein?

Cisco hat sich für seine WLAN-Accesspoints etwas besonderes einfallen lassen: ein drehbares Logo!

Zitat aus dem Cisco 521 Wireless Express Access Point Quick Start Guide: “The logo should always be easy to read.“