Archiv für die Kategorie ‘Netzwerk’

Auf ein neues: IPv6, jetzt endlich richtig

von MichiK am 8. Juni 2011 um 01:52 Uhr

Die letzten IPv6-Experimente hier dürften runde fünf Jahre her sein (die Suche spuckt da jedenfalls einiges von 2005 und 2006 aus) und nun ist es endlich, endlich, endlich so weit: Mein ISP hat zum heutigen World IPv6 Day natives IPv6 für die Server bereitgestellt. Ich habe das natürlich sofort aktiviert und entsprechende AAAA-Records angelegt.

Gelingt der Zugriff über IPv6? Durch meinen Hurricane-Electric-Tunnel sieht es so aus, als würde es klappen.

DynDNS selbst gemacht

von MichiK am 25. Mai 2011 um 09:56 Uhr

Mich hat die zunehmend kommerzielle Natur von DynDNS in letzter Zeit mehr und mehr angenervt. Außerdem ging die (gefühlte) Zuverlässigkeit immer weiter zurück. Also musste eine neue Lösung her, idealerweise auch eine, bei der ich Hosts meiner eigenen Domain dynamisch vergeben kann, und das ohne externe Dienstleister (einfach der Coolness wegen).

Mein schnell zusammengehacktes System hier besteht jetzt aus zwei Elementen: Einerseits muss der dynamische Host dem Server irgendwie mitteilen, wie seine IP lautet, andererseits muss der Server die neue IP in die Welt hinausposaunen.

Für den ersten Teil habe ich genutzt, was da war: Zu Hause steht ein Linksys mit OpenWRT, auf dem Server läuft ohnehin ein Webserver, der auch CGI spricht (Natürlich würde sich hier auch jeder andere Service eignen, bei dem eine Verbindung aufgebaut und irgend eine Art von Authentifizierung durchgeführt wird. Meine Variante hat aber den netten Vorteil, dass hier auf Serverseite ein Skript angestoßen wird, was die IP des dynamischen Hosts einfach in eine Datei schreiben kann. Andere benutzen an der Stelle SSH oder POP, aber dann muss man die IP-Adresse hinterher umständlich aus irgendwelchen Logfiles popeln.). Auf dem Linksys läuft der folgende Cronjob:

/usr/bin/wget -O /dev/null "http://www.example.com/cgi-bin/ipupdate?foobar" >/dev/null 2>/dev/null

Der String “foobar” in der URL erfüllt dabei die Funktion eines Passworts, um ein Mindestmaß an Authentifizierung sicherzustellen. Man kann die Sache an dieser Stelle beliebig komplex machen, aber für mich reicht es. Das ipupdate-Skript auf Serverseite sieht folgendermaßen aus:

#!/bin/sh
echo "Content-type: text/html\n"
if [ "$QUERY_STRING" = "foobar" ] ; then
echo "$REMOTE_ADDR" > /tmp/ip.txt
fi

Es tut nichts anderes als zu prüfen, ob das Passwort stimmt und wenn ja, schreibt es die IP-Adresse des Clients in eine Datei. Diese IP-Adresse muss nun natürlich noch an einen DNS-Server verfüttert werden. Wer keinen eigenen DNS-Server hat, sondern den seines Providers verwendet (mache ich normalerweise auch so), kann sich nun ein Skript schreiben, was im Administrations-Interface des Providers die IP-Adresse des Hosts ändert. Das ist sicher möglich, war mir aber einerseits zu kompliziert, andererseits haben die Einträge beim DNS-Server meines Providers eine lange Lebensdauer von 86400 Sekunden, die ich nicht anpassen kann. Übliche Cachelebensdauern sind zwar meist kürzer, aber ich habe dennoch keine Kontrolle darüber, wie lange die alte IP von anderen Servern ggf. noch verwendet wird, ohne mal nach der neuen zu fragen.

Also habe ich einfach selbst einen primitiven DNS-Server mit minimalistischer Konfiguration eingerichtet. BIND ist natürlich totaler Overkill an dieser Stelle, also habe ich mich für MaraDNS entschieden. Die MaraDNS-Konfiguration ist nicht schwierig, ich habe lediglich folgendes in meiner Konfigurationsdatei stehen:

bind_address = "127.0.0.1 1.2.3.4"
chroot_dir = "/etc/maradns"
csv2 = {}
csv2["dynamic.example.com."] = "db.dynamic.example.com"

Hierbei ist 1.2.3.4 die externe IP-Adresse des Servers und dynamic.example.com der Host, unter dem der Rechner mit der dynamischen IP später erreichbar sein soll.

Was nun noch fehlt, ist das Zonefile. MaraDNS liest seine Zonefiles leider nur neu, wenn man es beendet und neu startet (das ist in meinem Fall kein großes Problem, weil meine dynamische IP sich nur selten ändert – im Idealfall einmal am Tag – möchte man viele oder schnell wechselnde IPs verteilen, muss man sich hier natürlich etwas anderes einfallen lassen). Ich habe an dieser Stelle einen Cronjob als root eingerichtet, der minütlich folgendes Skript aufruft:

#!/bin/sh
[ -e /tmp/ip.txt -a -e /etc/maradns/db.dynamic.example.com ] || exit 1
if [ `cat /tmp/ip.txt` != `cut -d " " -f 4 /etc/maradns/db.dynamic.example.com` ] ; then
echo "dynamic.example.com. +60 A `cat /tmp/ip.txt` ~" > /etc/maradns/db.dynamic.example.com
/etc/init.d/maradns restart >/dev/null
fi

Es vergleicht den (von ihm selbst in einem früheren Lauf angelegten) alten Eintrag im Zonefile (das deshalb nur eine Zeile mit eben diesem Eintrag haben sollte, die am Schluss einfach wieder überschrieben wird) mit der letzten vom dynamischen Host gemeldeten IP-Adresse. Falls sich die IP-Adresse geändert haben sollte, wird das Zonefile aktualisiert und der DNS-Server neu gestartet.

Man muss nun natürlich noch dem DNS-Server seines Providers mitteilen, dass er die Anfragen für die Subdomain dynamic.example.com an den eigenen Nameserver delegiert. Ob und wie das geht, ist natürlich von Provider zu Provider unterschiedlich – ich konnte es bequem im Webinterface klicken.

Linksys-Ersatz gesucht

von MichiK am 15. Februar 2011 um 06:38 Uhr

Hier bei mir zu Hause leistet mir schon seit vielen Jahren ein Linksys WRT54GL treue Dienste als DSL-Router. Der war ja mal das Nonplusultra, aber mittlerweile kann er mit meinen Anforderungen nicht mehr so richtig mithalten.

Mein Problem: Ich hätte gerne einen IPv6-Tunnelendpunkt und einen OpenVPN-Server, ferner eine etwas feiner regulierbare Firewall als die herunterkondensierte Variante von OpenWRT. IPv6 würde prinzipiell gehen, aber dann habe ich die Wahl, entweder (mit Kernel 2.4) kein ip6tables oder (mit Kernel 2.6) kein WLAN. OpenVPN kann ich vergessen, das passt nicht in den Flash. Und deswegen an der Kiste herumlöten möchte ich nur ungerne.

Ich suche nun ein kleines, aber feines Gerät, möglichst stromsparend, was mindestens zweimal RJ45 an Bord hat, idealerweise auch noch 1-2 USB-Anschlüsse (ich würde beispielsweise mittelfristig gerne noch ISDN nachrüsten) und praktischerweise keinen viel zu kleinen Flash-Speicher, sondern lieber einen Einschub für CF-Karten oder ähnliches. WLAN ist unwichtig, denn das benutze ich sowieso fast überhaupt nicht und der Linksys wird nicht in Rente gehen, sondern als Freifunk-Node auf die Fensterbank wandern. Es sollte sich ohne große Frickelei ein Linux darauf installieren lassen, gerne ein vollwertiges Debian oder so, notfalls ginge aber auch OpenWRT.

Kann mir jemand da was empfehlen? Ausgeben wollen würde ich im Idealfall vielleicht 80-100 Euro, gerne weniger, nur ungerne mehr.

IP-Adresse ergoogelt…

von Khark am 29. November 2010 um 15:23 Uhr

Der MX-Record einer Domain sollte geändert werden.
Die Domain liegt nicht direkt bei meinem Arbeitgeber sondern bei einem Registrar in England.
Also mailt man mit dem Support hin und her..

Bis dann folgender klopfer kommt:

Please can you confirm that the IP address for: mail.domain.tld is 1.2.3.4
To change the MX record we do need an IP address.

I have googled the mail.domain.tld, which brought up this information: http://www.robtex.com/dns/mail.domain.tld

If you can confirm the IP address, it will only be minutes to change the MX record

Also erstmal gehören in MX-Recors keine IP-Adressen. Ausschließlich Hostnamen.
Mit IPs KANN das zwar auch funktionieren. Allerdings sollte man sich auch drauf einstellen bei vielen Spamfiltern schonmal alleine 3-5 Punkte auf der Spamscore zu kassieren weil da eine IP drinsteht.
Das Bestätigen der IP-Adresse ist also total überflüssig.

Und zweitens: Die IP-Adresse ergoogelt?
Was zum Teufel soll der Mist? Schonmal von Ping gehört? Oder nslookup das unter Windows genauso zu bedienen ist wie unter Linux? Oder dig?
Selbst wenn ICMP und UDP/DNS durch die FW nach außen geblockt wird gibt es immer noch Webtools dafür zu hauf.
Da hier keine sensiblen Informationen übertragen werden ist das kein Ding diese zu benutzen.
– Im Gegenteil sie sollen bzw. müssen für jeden frei einsehbar sein.

Ich wunder mich einfach wiedermal nur was für Leute im Support rumhüpfen..

Beweist es: Geeks sind besser als Xing (Update)

von Khark am 8. Mai 2010 um 20:28 Uhr

Da das Blog hier die Tage über umgezogen ist, hatte ich meine Frage zuerst auf Xing gestellt und erhoffte mir dort eigentlich ein paar brauchbare Antworten..

Aber leider wurde meine folgende Frage nur eher am Rande beantwortet bzw. gar nicht.

Khark fragt: Welche Blackberry Apps, neben SSH-Client und vCenter Mobile Access, könnte ein Linux Sysadmin evtl. auf seinem Blackberry 8800 vermissen?

Antwort 1: Strip Poker… sein Job ist eh langweilig genug…
Antwort 2: Was wäre das für ein Admin, der Strippoker braucht?! Mit ner SSH Shell auf dem Remote Rechner ist doch alles im Lack!
Antwort 3: BeWeather free – um zu sehen wie draußen das Wetter ist! ;-)
Antwort 4: Warum hat ein Admin noch ein olles 8800??? Mal über ein 9700 oder ein Storm II nachgedacht???

Tja.. Und nun seit ihr dran, welche Apps könnte man noch gebrauchen?
Persönlich würde mir noch ein Nagios Interface einfallen das mir den Zustand der Hosts/Services grafisch nett aufbereitet anzeigt.
Aber da habe ich bisher nur eine kostenpflichtige Version gefunden (Rove Mobile Admin) die zudem einen eigenen Server im Firmennetz erfordert.
Da nehme ich dann doch mit dem WAP-Interface vorlieb :-)

Update:
Nachdem ich diesen Thread hier im deutschen Nagios-Community Forum gefunden habe, nutze ich erstmal NagLite.
Allerdings muss man auch hier noch ein paar Anpassungen vornehmen, damit man nur wirklich existente Probleme angezeigt bekomme.
Nicht schon bekannte.

Blackberry Spielerein

von Khark am 8. Mai 2010 um 20:21 Uhr

Ich bin nun seit knapp 3 Wochen Besitzer eines Blackberry 8800.

Und da wir bei uns in der Firma einen u.a. VMware-Cluster einsetzen, habe ich mal zum Test vCenter Mobile Access auf unseren ESX eingerichtet.
Ist zwar noch Beta aber funktioniert problemlos.

Die vCMA ist zuallerst eine eigene virtual Machine Appliance. Diese stellt über die WebServices eine Verbindung zum ESX-/vCenter-Server her und stellt eine auf mobile Endgeräte (Blackberry, IPhone, etc.) abgestimmte, minimale Weboberfläche bereit.

Lädt man die OVF-Version herunter, kann man die VM direkt als Virtual Appliance importieren. Prinzipiell kann man dann sofort starten und über die IP der VM das Webinterface aufrufen (http://ip.ip.ip.ip/vim/).
Bei Blackberry ist das angenehme, das es auch sofort von extern über die interne IP geht, da man dank Blackberry Enterprise Server direkt im Firmennetz ist.

Über die vCMA kann man so VMs neustarten/stoppen und sich den Status der VMs (Running, etc.) ausgeben lassen.
Also ideal um mal eine VM neuzustarten wenn dies nötig ist.

Konsolenzugriff auf das Gast-OS ist über die vCMA aber nicht möglich.
Zudem wären die Bildschirme der meisten Handys dafür auch zu klein bzw. die Datentarife zu teuer.

Auf Youtube gibt es unter http://www.youtube.com/watch?v=9UxDnV2qaeM ein Video das die Applikation in Aktion zeigt.

Sonderzeichen in Nagios Servicenamen

von Khark am 17. Januar 2010 um 02:10 Uhr

Jeder der schonmal Nagios eingesetzt hat weiß wie klasse es ist, wenn Sonderzeichen in Windows-Servicenamen auftauchen.
Unter http://sadsoftware.blogspot.com/2008/05/nagios-with-nsclient-character-flaws.html gibt es auch einen guten Artikel dazu.

Allerdings hätte ich da nur eine Anmerkung:

check_command check_nt!SERVICESTATE!-l “MSSQL”$$”BKUPEXEC”

Funktioniert bei mir so nicht, wenn man mehrere Services mit dem check_command abfragt.
Was dagegen funktioniert ist:

check_command check_nt!SERVICESTATE!-l MSSQL”$$”BKUPEXEC,SQLBrowser,SQLWriter

World of Warcraft in Zahlen

von Khark am 19. September 2009 um 15:12 Uhr

Beim Onlinespiele Magazin Buffed gibt es einen interessanten Artikel mit Statistiken zu World of Warcraft.
Die Zahlen selbst stammen von Senior Vice President Frank Pearce und Production Director J. Allen Brack, die auf der Game Developers Conference in Austin die Zahlen offenlegten.

Personal:

  • 2.056 Game Master
  • 340 Angestellte im Rechnungswesen
  • 254 Mitarbeiter im Bereich Qualitätssicherung
  • 68 Mitarbeiter im Bereich “Online Network Services”, die die Server-Zentren weltweit überwachen
  • 66 Angestellte im Bereich Community
  • 51 Mitarbeiter im künstlerischen Bereich
  • 37 Angestellte im Bereich Design (von Klassen- über Berufs- bis hin zu Item-Design)
  • 32 Mitarbeiter im Bereich Programmierung
  • 10 Angestellte, die die Produktion überwachen

Technik:

  • 13.250 Bladeserver
  • 75.000 CPU-Kerne
  • knapp 113 Terabyte RAM
  • 5,5 Millionen Zeilen Programmcode
  • Alle Tools werden In-House bei Blizzard entwickelt, weil man WoW als sehr langlaufendes Projekt ansieht

Zudem wurde wohl auf der GDC ein Bild des Global Network Operations Center von Blizzard gezeigt.
Das konnte ich aber leider nirgendwo finden :(

Restliche Zahlen:

  • die Spieler haben bisher 4.449.680.399 Achievements abgeschlossen
  • das Team für Qualitätssicherung hat sich seit dem Start von WoW 180.000 Bugs vorgeknöpft
  • für WoW wurden bis jetzt 70.000 Fähigkeiten und 40.000 einzigartige NPCs erstellt
  • es gibt derzeit 7.650 Quests im Spiel
  • aktuell existieren 12.000.000 Battle.net-Accounts
  • WoW enthält über 27 Stunden Musik
  • es mussten bis jetzt 3.211.102 Wörter lokalisiert werden
  • für jeden Patch müssen 126 verschiedene Versionen erstellt werden
  • die Verteilung von Patch 3.1 an die Spieler verursachte ein Datenaufkommen von über 4.7 Petabyte
  • weltweit kommen in Blizzard-Büros insgesamt 20.000 Computer-Systeme zum Einsatz

Zum Artikel bei: wow.buffed.de
Quelle von Buffed: Gamasutra

Phishing – The next generation

von Khark am 27. März 2009 um 01:01 Uhr

Also ich werde mir dann mal einen kleinen Bot schreiben, der sämtliche Banken-Domains die vom Namen her ein Sonderzeichen enthalten könnten (also sowas wie ue, ae, ss, etc.) und ein kleines “l” im Namen haben, sammelt.
Die entsprechenden Domains werde ich mir dann sichern, wobei ich nur das kleine “L” durch ein großes “i” ersetze.
Für Otto-Normalanwendern garantiert nicht zu unterscheiden.

Wer nicht weiß was gemeint ist:
Mit dem nächsten DNS-Standard soll wohl bei Domains mit Umlauten zwischen Groß- und Kleinschreibung entschieden werden.
Jetzt nehmen wir mal z.B. die Volksbank. Geradezu prädestiniert, da im Domainnamen garantiert immer ein kleines “L” enthalten ist.
Der Einfachheit halber nehmen wir mal: www.volksbank-muenster.de.
Ich würde mir jetzt die Domain www.voIksbank-münster.de bestellen und darunter meine Phishingseite aufziehen.
Was meint ihr wem das auffällt wenn die Leute schon auf so Seiten wie z.B. http://onlbng.volksbank-muenster.de.cn gehen um ihr Online-Banking zu machen?

Man man man.. Die IETF sollte über Case-Sensitive Domainnamen lieber nochmal nachdenken…
Sämtliche PC-Nutzer wurden seit Jahrzehnten darauf getrimmt einfach nur den Namen einzutippen und bei Online-Banking und Co. auf dem Domainnamen zu achten. Und jetzt plötzlich soll man den allen dann verklickern das sie auch bei Domains mit Sonderzeichen zusätzlich auf die Groß- und Kleinschreibung achten sollen? Und zwar nur da, weil überall anders ist das egal und somit ungefährlich? Ich kenne Bücher über DNS da wird noch nichtmal überhaupt erwähnt das es egal ist ob man die Domainnamen jetzt groß oder klein schreibt. Es weiß einfach sprichwörtlich jeder..
- Viel Spass liebe Phisher. Ihr habt es euch verdient. Solltet ihr diese Idee aufgreifen beteiligt mich bitte an den Einnahmen.

Siehe: http://www.heise.de/newsticker/meldung/135238

EDIT:
Uh.. Ich hab grad eine Sonderzeichentabelle bei der DeNIC gefunden. Und wenn ich mir so den “Kleinen lateinischen Buchstaben i ohne Punkt” (Unicode V3.2: 0×0131) angucke.. Ja.. Mein System ist noch massig ausbaufähig.

EDIT 2:
Auch schön: Der Beitrag von fh.

Erfahrungen aus der Subversion-Umstellung

von Khark am 1. November 2008 um 13:20 Uhr

Ich habe bei mir in der Firma letzte Nacht sämtliche unserer SVN-Repositories vom SVN-Server unserer ehemaligen Mutterfirma auf unsereren eigenen migriert.
Knapp 14GB Daten an SVN-Dumps und gut 50 Repositories.

Was ich dabei gelernt habe war:
0. Die alten Repository-URLs per mod_rewrite auf die neuen Umzulenken war eine gute Idee und klappt problemlos. Auch wenn an 2 Stellen an der URL herumgeschrieben werden muss und das ganze von extern nach intern über eine ProxyPass und ProxyPassReverse-Direktive laufen muss.

1. PROPFIND vergessen zu definieren eine blöde Idee. Man erhält so wünderschöne Fehlermeldungen wie:
“Repository moved temporarily to $NEUER_PFAD please relocate”, wobei $NEUER_PFAD bereits der Pfad ist, unter dem das Repository dann letzten Endes nach der Umstellung auch liegt. TortoiseSVN konnte bei einem Relocate lediglich die Repository-Konfig nicht einlesen und verweigert somit die Umstellung..

Ein simples

<Limit PROPFIND>
Require valid-user
<Limit>

in Directory-Container für das SVN-Verzeichnis in der Vhost-Konfig behob dann das Problem.

3. Wenn Entwickler mit SVN nicht umzugehen wissen ist das blöd. Wir hatten ein Repository mit knapp 17.893 Commits. Es war aber nur 50MB groß. (Das sind nur 2,86 KB pro Commit!)
Des Rätsels Lösung?
Es wurden erst knapp 30MB an .xml-Dateien eingecheckt, dann mit dem nächsten Commit wieder gelöscht. Dann wieder eingecheckt usw. Nur ganz selten wurde mal eine .xml-Datei geändert.
Subversion hat dann immer brav alles eingespielt, wieder gelöscht usw.
Hat knapp 45min gedauert das Repository einzuspielen..

4. Sämtliche Gruppen-, Repository- und Benutzernamen ein jeweils eigenes Namensschema zu geben und die groups und htpasswd Dateien alphabetisch sortieren zu lassen war auch eine gute Idee.
Man findet sich auf Anhieb wieder zurecht :-)
Ich habe die Repositorynamen jetzt immer Kleingeschrieben und die Gruppen des Repositories heißen wie das Repository. Wenn keine Lese-/Schreibrechte vorhanden sind, werden die Rechte durch Unterstrich getrennt auch im Gruppennamen deutlich.
Wird Pfad-basierte Authentifizierung verwendet, werden die Pfad direkt nach dem Root-Verzeichnis des Repositories festgelegt.

Also z.B.:
[repo1:/]
@repo1 = rw
@repo1_read = r
[repo1:/Dokumentation]
@repo1 = rw
@repo1_read =

Wie das vorher aussah will man nicht wissen :-)

Mailverteiler

von Khark am 25. Juni 2008 um 23:23 Uhr

Kennt ihr eigentlich die Story von Volkswagen, wo eine einzige “Ich habe einen Autoschlüssel auf dem Parkplatz gefunden!”-Mail sämtliche Exchange-Mailserver des Volkswagenkonzerns abstürzen ließ?

Wie man sowas macht, ganz einfach.
Wir benötigen:
1x besagte, obige Mail
1x Mailverteiler “Alle-aber-wirklich-alle@volkswagen-gruppe-weltweit”
1x Person die genau das tut was wir jetzt alle vermuten
n Personen die mit “Allen antworten” antworten und darüber dann Diskussionen anfangen das man den Verteiler “Alle-aber-wirklich-alle@volkswagen-gruppe-weltweit” ja nicht benutzen soll

Ähnliches hatte wir heute auch auf der Firma. Gut.. Es waren nur 50 Mails mal knapp ~1.100 Leute aber trotzdem interessant was einige Leute so zustande bringen.
Peinlich ist nur, das sich meine eigene Zunft nicht mit Ruhm bekleckert hat.

Wenn man als Admin schon an Alle-Angestellten@Firmengruppe eine Mail schicken muss, und aufgrund der Zurückbekommenden Lesebestätigungen überprüfen zu können ob auch wirkliche alle Angestellten im Verteiler sind.
Dann sollte man auch die Lesebestätigung für diese Mail aktivieren.
(Diese Vorgehen war deswegen nötig, da 4 Firmen in diesem Verteiler sind, die noch über keine eigene Mailinfrastruktur verfügen.)

Ein Großteil der Mails hatte jedenfalls das Thema “Ich wurde aber nicht nach einer Lesebestätigung gefragt.” zum Inhalt.

Ich war kurz davor im besten BOFH-Stil eine Mail mit folgendem Inhalt zu verfassen:

Lieber Herr XXX,
ihr Antrag auf Automatische-Löschung ihres Mailaccounts und sämtlicher Backups aufgrund einer Mail an “Alle-Angestellten@Firmengruppe” wurde soeben entsprochen.

Binnen der nächsten 15 Minuten werden wir Ihrer Anfrage nachkommen, aber, aus ersichtlichen Gründen, nicht in der Lage sein Sie hierüber per Mail zu informieren.

Mit freundlichen Grüßen,
Ihre Systemadministration

Ich habe es dann gelassen.
Sonst wäre unser Exchange und Postfix wirklich krachen gegangen…

Und die Moral der Geschichte: Unterschätze niemals die Dummheit deiner User. Auch wenn es wehtut.

Handwerker

von Khark am 25. Juni 2008 um 23:13 Uhr

Die natürlichen Feinde des Lebensraumes eines jedem Admins, der Serverraum, sind Handwerker.

Insbesondere die Spezies: Hantirus Mitelektronikus

Eben jene Spezies ist z.Z. an einem unserer Standorte beheimatet um dort in allen Büroräumen eine Klimaanlage zu installieren. Bei dieser Gelegenheit wird dann auch die Klimaanlage im Serverraum erneuert.
Soweit so gut.

Als ich dann an jenem besagten Nachmittag meinen Feierabend antreten wollte, kam mir auf einmal einer unserer Entwickler hinterhergerannt mit den Worten: “Khark, Khark. Nichts geht mehr! Mail, Internet, Netzwerk. Alles weg. Bei allen, nicht nur bei mir.”

*z0mg* Mega-Gau.

Also rennt man zurück und streicht den 17Uhr Termin aus seinem Gedächtnis.
Ein schneller Ping an google.de/Server im LAN und einem beliebigen Client zeigt, das nur Verbindungen in Richtung Serverraum nicht gehen. Ergo muss das Problem bei uns am Standort sein.

Im Serverraum angekommen finde ich auch relativ schnell die Ursache. Den eine Zurückverfolgung der Stromkabel offenbart: Das Kabel der Stromversorgung des betreffenden Serverschranks (blöderweise der mit den Switchen) wurde herausgezogen.
Stecker wieder in die Steckdose und alles fängt wieder an zu piepen und zu leuchten.

Bleibt noch die Ursachenforschung.

Also will man mit den Handwerkern reden. Vorher erfahre ich aber noch: “Ach.. Öhm.. Wir haben da auch ein Kabel angebohrt. Keine Ahnung wofür das ist.”
Leider war der Handwerker nur rudimentär in Deutschkenntnissen geschult, so das es mich knapp 5 Minuten kostete ihm diese Information zu entlocken und auch zu wissen was er meint.
(Steigt eigentlich das Arbeitsunfallrisiko mit zunehmender Sprachunkenntniss??)

Als ich dann einen der zwei Handwerker darauf ansprach doch vor dem herausziehen von Kabeln Rücksprache mit jemanden zu halten der sich mit der Materie auskennt kam nur ein: “Ich nischt gemacht. Da ischt verantwortlicker.” und er zeigt auf seinen Kollegen, welcher gleich eine “Du gehst mir auf die Nerven”-Mine aufzog.
(Nettes Arbeitsklima scheinen die zu haben :-P )

Gut.. Die Ursachenforschung kam nicht voran. Hinteher will es eh nie jemand gewesen sein. Der 1. Handwerker mutmaßte sogar: “Vielleikt es war Hitze?”
Ja.. Klar.. Hitze sorgt dafür das Stecker aus Steckdosen fallen. Ausdehnung von Material und so. Ist klar. Passt schon.
(Und sowas von einem Elektriker. Grandios.)

Ich habe mich dann damit begnügt als ich erfahren habe, das sie im Serverraum fertig sind und ich diesen abschließen kann.

Und die Moral von der Geschichte: Meinen 17 Uhr Termin hab ich doch noch geschafft.
(Ja, ich weiß selbst das ist keine Moral! Wer eine hat möge sie kommentieren :-P )

Berufsschule + WengoPhone = Witzig²

von Khark am 27. Februar 2008 um 11:31 Uhr

Wir haben ja in so ziemlich jedem Klassenraum ein Telefon.

Wenn man einen SIP-Account mit Darth Vader Stimmenverzerrer hat, kann man damit sehr witzige Sachen machen :-)

VoIP + Berufsschule + PHP + All-Inkl = Witzig

von Khark am 26. Februar 2008 um 15:01 Uhr

Heute war ein richtig witziger Tag aus IT-Sicht in der Berufsschule.

Teil: VoIP+Berufsschule
In den ersten 3 Stunden hatten wir Lernfeld 9 Öffentliche Netze und Dienste. Dort machen wir z.Z. Voice over IP (VoIP). Nun hat sich unser Lehrer mal ein praktische Übung ausgedacht.

Wir bildeten Gruppen und jede Gruppe bekam ein SIP-Telefon und einen Laptop zur Konfiguration des selben (Webinterface). So waren also 6 Gruppen am basteln und irgendwann klingelte auch jedes Telefon wenn es angerufen wurde.

Bis dann ein Lehrer in die Klasse kam, den ich noch nie gesehen habe (Gerüchteweise soll er Biologie und Chemie unterrichten – das würde erklären wieso ich ihn auch zu Fachgymnasium-Zeiten nie gesehen habe). Er stand dort 5 Sekunden, schaute in die Klasse und verkündete dann gegenüber unserem Lehrer: “Ihr schießt das Schulnetz ab. Nichts geht mehr.”

In diesem Moment musste ich spontan lachen. Irgendwie war mir schleierhaft, wie man mit 6 VoIP-Telefon und Laptops ein ganzes Netzwerk abschießen kann. (Zumindest wenn dort keine bösen Tools installiert hat.) Besonders wo uns unser Lehrer vorher noch erzählt hatte, das er extra beim Admin IP-Adressenreservierungen im DHCP-Server für die MAC-Adressen der Telefone und Laptops hat anlegen lassen.

Eben damit diese in einem eigenen Netz sind.

Unser Lehrer und der Admin sprachen dann miteinander im Raum nebenan. 3 Minuten später kam er zurück und sagte uns: “Der Admin setzt das Netzwerk jetzt neu auf. Wir bauen dann mal alles ab und machen die Kisten aus.”

Und wieder was über Netzwerke gelernt :-)

Teil: PHP + All-Inkl

Ich habe hier bestimmt schon ab und zu erwähnt, das unserer Lehrer vor Jahren ein Forum für alle Schüler und Auszubildenden der IT-Klassen/-Berufe eingerichtet hat.

Es ist ein Woltlab Burning Board steinalter Version auf Webspace von All-Inkl.

Nun hat dieser Lehrer bei seinem Hoster ein größeres Hostingpaket geordert. Also zieht er auf einen neuen Server, wie das bei Webhostern so üblich ist.
Dies hatte zur Folge, dass das Forum erstmal ein paar Tage down war. Mal wurde die Datenbank nicht gefunden, dann nicht das Verzeichnis auf dem Server, usw.

Aber heute hat All-Inkl den Vogel abgeschossen. Ein Mitschüler wollte in das Forum. Statt eines Fehlers oder der Indexseite sah er den PHP-Code in Klartext.

Also flucks durch die include()-Anweisungen gehangelt und Bingo. In der _data.inc.php stand der MySQL-User und das Passwort.

Gut, das allein bringt einen nicht viel weiter mag derjenige sagen, der sich mit der Materie auskennt.
Tja, nicht so bei All-Inkl. PHPMyAdmin mit .htaccess gesicht? Nee, soweit ist man dort noch nicht. All-Inkl gibt seinen Kunden direkten Zugriff auf den MySQL-Dienst über den TCP-Port 3306 (Standardport).

Ich weiß das, weil ich dort um 2000 herum selber Kunde war. Leider hatte mich damals All-Inkl nicht informiert das deren Server von einer brasilianischen Crackergruppe übernommen wurden. Das war es dann auch schon mit dem Vertrauen und der Kundenbeziehung.
Also holt man sich ein OK vom derzeitigen Lehrer, das man die Klasse verlassen darf um den besagten Lehrer zu benachrichtigen.

Das Kommentar des Lehrers als ihm offenbarte das sein Webspace quasi schutzlos ist: “Die Spaten bekommen auch nichts hin. Seit 4 Tagen werd ich von Server zu Server geschoben und nichts geht.”

Das witzige an der ganzen Sache?
http://tolle-seite.de/phpinfo.php klappte wunderbar. Man bekommt den vertrauten Output von phpinfo() zu sehen.

http://tolle-seite.de/forum/main.php geht hingegen nicht.

Ich habe ja erst drauf getippt, das in der php.ini die Direktive short_open_tag=Off steht. Weil Woltlab seinen PHP-Code mit <? beginnt und nicht mit <?php. (Ist das immer noch so?) Das kann dann etwas katastrophal werden in solchen Situationen.
Aber laut phpinfo() war short_open_tag=On.

Wo der eigentliche Fehler lag versuche ich nochmal herauszufinden. Interessiert mich mal mit welchen Konfigurationsproblemen große Hoster so zu kämpfen haben.

Ich bedanken mich im Namen aller Schüler und Auszubildenden der BBS2 Wolfsburg bei All-Inkl, das unsere privaten Daten (das Forum ist NICHT öffentlich) für jeden frei zugänglich waren.
Mittlerweile geht es ja wieder..

Richtig interessant wird die Sache an folgender Stelle: Dieser Lehrer hat eine in PHP geschriebene, sagen wir mal, “Schülerecke”. Dort findet man den Stunden-/Blockplan, Übungsaufgaben, Links, die Adressliste der Klasse (!!) und die Noten seiner Klassenarbeiten.

So wie ich ihn jetzt kenne und der Name der Datenbank lautete bin ich mir verdammt sicher das, wenn man die DB gedumpt hätte, man diese Daten auch mitgezogen hätte.
- Super.

Mich interessiert jetzt nur noch folgendes:
a) Was war der Konfigurationsfehler?
b) Wird der Lehrer von sich aus sagen, das die Leute mal ihr Passwort ändern sollen?
c) Bei wie vielen Leuten ist Forumpasswort = Mailpasswort (natürlich bei der Mailadresse mit der man sich registriert hat).
Erfahrungswert: Deutlich über 80%
d) Wie viele ändern tatsächlich ihr Passwort?
Erfahrungswert: 10 von 500 Mitgliedern

Spammer, Teil: STERBT! STERBT! STERBT!

von Khark am 26. Februar 2008 um 13:52 Uhr

Zur Zeit bekomme ich wieder 4.000 Spammails pro Stunde. Leider auf einem System, wo ich keinen Shellzugriff habe und nichts am Spamfilter ändern kann.
Änderungswünsche (Spammails mit Score größer 10 gleich löschen, o.ä.) werden auch nicht angenommen.

Es ist schon toll, wenn man 2 Stunden darauf warten muss, das der Mailclient die Mails abgerufen hat, die in der Nacht davor aufgeschlagen sind bis man dann irgendwann die 10 Mails lesen kann die kein Spam und interessant sind..

Immerhin werden die Mails als Spam erkannt und auch vom Mailclient gleich in den Papierkorb geschoben..

Dumme Spammer

von MichiK am 14. Dezember 2007 um 01:43 Uhr

Spammer, die es auf Webforen abgesehen haben (ja, sowas betreibe ich auch – leider…), scheinen ziemlich hohl in der Birne zu sein (okay, das sind sie sowieso, sonst würden sie nicht spammen). Sie melden sich an und schaffen es sogar am Captcha vorbei. Dafür braucht es ja schon eine gewisse Leistung.

Aber dann benutzen sie E-Mail-Adressen, an die zumindest mein Server keine Mails zustellen kann, weil die Gegenseite keine Lust hat. Nicht, dass gültige Adressen etwas nutzen würden, weil ich in diesem Forum sowieso jeden Nutzer einzeln freischalten muss, aber irgendwie wirkt das dann ja doch ein wenig undurchdacht…

(Hier im Blog hat Akismet übrigens seit Anfang Dezember schlappe 1500 Spamkommentare erlegt.)

Neues Mail-Setup endlich fertig

von MichiK am 7. Dezember 2007 um 20:47 Uhr

Ich habe in den letzten Tagen ziemlich viel rumgefrickelt, um mal meinen ganzen Mail-Kram auf den aktuellen Stand zu bringen. Bisher machten das seit zwei Jahren nicht mehr angefasste qmail und Courier auf einem VServer, den ich eigentlich schon lange los sein wollte, aber weil da meine Mails drüber liefen und ich nie Lust hatte, das zu ändern, blieb die Kiste.

Nun habe ich mich endlich mal aufgerafft und auf dem Server, wo auch das Blog und ein bisschen anderer Kram läuft, ein komplettes Mailsystem bestehend aus Postfix, Procmail, Spamassassin und Dovecot aufgesetzt. Das ist im Gegensatz zu dem alten System komplett selbst konfiguriert und fühlt sich daher auch besser (und subjektiv auch ein gutes Stück schneller) an.

Das einzige, was jetzt noch fehlt ist Greylisting mit Postgrey, aber das bastele ich mir frühstens in 1-2 Wochen, um dann auch mal zu sehen, ob sich das überhaupt noch signifikant auf das Spamaufkommen auswirkt. Manche Leute meinen ja, Greylisting würde schon nichts mehr bringen…

Squirrelmail, PHPs open_basedir und SquirrelOutlook

von Khark am 15. September 2007 um 21:23 Uhr

Courier hat jetzt ausgedient. Auf meinem Rootserver rennt jetzt ein schicker Postfix samt Dovecot.
Die virtuellen User und Domains (liegen in einer MySQL-DB) ließen sich ohne Probleme einrichten.
Auch die Anbindung von Spamassassin, AMaViSd-new und Clam-AV ging sofort.

Bei Courier waren das 2 Punkte die irgendwie nie wollten. Bei den virtuellen User war das nicht ganz so wild, da z.Z. nur ich den Mailserver nutze.
Aber das Spam- und Virenfilter nicht wollten, das war blöd.
Jetzt tut das. (TM)

Für den Webmail-Part setze ich Squirrelmail ein.
Und das wollte ich etwas schicker haben. Die Themes auf der Squirrelmail-Seite sind aber alle mehr oder weniger gleich.

Allerdings hatte ich bei einem meiner Mitschüler ein Outlook-Theme für Squirrelmail gesehen. (Er hat seine Mailaccounts auf dem Server eines Freundes.) Es ahmte nicht nur die Farben nach, nein. Auch der Aufbau war komplett an Outlook orientiert. Der Kalendar war direkt auf der Hauptseite im linken Menü integriert, etc. (Screenshot)
Also sucht man mal kurz und findet es auch gleich: http://sourceforge.net/projects/squirreloutlook/

Leider liegt die letzte Version 1 Jahr zurück und das ist für mich dann das Zeichen das auf evtl. Sicherheitslücken nicht wirklich schnell reagiert wird. Bei PHP-Software und erst reicht bei PHP-Software die Zugriff auf meine Mails hat, dann doch etwas zu viel des Guten für mich.
– Aber nett sieht es schon aus.

Was mich aber an Squirrelmail bzw. dem Debian-Squirrelmail Paket ankotzt:
– /usr/share/squirrelmail/: Der Pfad zu den Squirrelmail-Dateien
– /etc/squirrelmail/: Konfigurationsdateien von Squirrelmail, eingebunden in das Verzeichnis oben über Symlink
- /etc/mailname: Der FQDN unseres Mailservers. Auch hierauf will Squirremail Zugriff.

Da wurde es mir dann etwas zu bunt. Ich hatte keine Lust zig Verzeichnisse in die open_basedir-Direktive zu stecken.
Hallo Debian Leute, kann man Pakete die für den Zugriff durch HTTP/HTTPS gedacht sind, nicht einfach auch unterhalb von /var/www/ installieren und die Konfigdateien halbwegs beisamen sein?
Mal liegen die in /etc/$programmname dann wieder in /etc/default/$programmname und manchmal auch in /usr/share/sowieso.

Immerhin konnte ich umgehen /etc/mailname in open_basedir einzutragen.
Einfach die /etc/squirrelmail/config.php öffnen und den Domainnamen direkt definieren:

Zeile 30: //$domain = trim(implode(”, file(‘/etc/’.(file_exists(‘/etc/mailname’)?’mail’:'host’).’name’)));
Zeile 31: $domain = ‘domain.tld’;

Meine open_basedir-Direktive ist aber trotzdem etwas länger geworden..

[...]:/usr/share/squirrelmail/:/etc/squirrelmail/:/var/lib/squirrelmail/:/var/spool/squirrelmail/at
tach/

*narf*

CenterICQ, Jabber und –bind [UPDATE]

von Khark am 16. August 2007 um 16:11 Uhr

Da mein Rootserver mehrere IP-Adresse hat binde ich meine Messaging-Programme (IRC, SILC, ICQ), u.a. auch aus Konfigurationsgründen (Firewall) auf eine bestimmte IP-Adresse.
Bei CenterICQ passiert dies, in dem ich CenterICQ wie folgt starte:
centericq --bind ip.ip.ip.ip

Jetzt fällt mir aber auf, das ich nicht mehr ins Jabber-Netzwerk komme. Ich bekomme immer gleich die Meldung ich sei wieder disconnected.

[icq] connecting to the server
[jab] connecting to the server
[icq] logged in
[jab] disconnected

Starte ich CenterICQ ohne die Option –bind geht es wunderbar.

[icq] connecting to the server
[jab] connecting to the server
[icq] logged in
[jab] logged in

Was mich wundert ist, das beim starten von CenterICQ mit –bind zwar der DNS A-Record für jabber.com (207.182.166.31) abgefragt wird, aber nicht ein einziges Paket auf die Reise zu diesem Host geschickt wird. Kein TCP-SYN, nichts.
Ohne –bind kommt ein normaler TCP-Handshake zustande.
– Die Firewall war bei anfertigen der Mitschnitte deaktiviert.

Eine Suche bei Google und in der Dokumentation förderte nichts zu tage und die Anfrage auf CenterICQ-Users habe ich ebenfalls erst vor 2min abgeschickt.

Weiß jemand ob CenterICQ evtl. Probleme mit –bind und Jabber hat?
Beziehungsweise könnte das mal bei sich testen ob die gleichen Probleme auftreten?

Ach ja: Bei der Suche habe ich auch festgestellt, das es einen CenterICQ-Fork gibt.
CenterIM

UPDATE:
Der Fehler wurde in CenterIM in der aktuellen Version gefixt.
Zitat:
There was problem when on reconnect (in this case it's "checking state of non-blocking connection"), it tried to re-bind the socket every time and of course failed.

Die Roadmap lässt zudem auch hoffen.

Kein libapache2-mod-auth-mysql in Etch

von Khark am 18. Juli 2007 um 23:30 Uhr

Ich möchte mal erwähnen, das ich es beschissen finde, das in Debian Etch kein libapache2-mod-auth-mysql gibt.
In Sarge ist es enthalten und in Sid (Testing) auch. Nur in Etch nicht.
Wieso? Nun der Autor hat keinen Bock mehr auf das Apache-Modul-Gefrickel und seinen den Betreuerposten für das Paket aufgegeben.
Mittlerweile hat sich ein neuer gefunden, weswegen es auch wieder in Sid ist, aber für Stable hat es dann nicht gereicht.

Debian empfiehlt stattdessen libpam-mysql mit libapache2-mod-auth-pam zu nutzen.
Leider benötigt der Webserver dafür immer Leserechte auf die /etc/shadow. (Wenn dem nicht der Fall ist, bitte korrigiert mich.) Etwas das für mich einfach nicht vertretbar ist.
Den wenn ich von MySQL rede ist fast immer PHP mit im Spiel. Und PHP-Software kann teilw. schon recht eklig sein.
Dieser dann aber noch die Möglichkeit einräumen über den Webserver die /etc/shadow zu lesen.
- Nein danke.
Gut über so Sachen wie suPHP/suexec könnte man das ganze wieder eindämmen. Das ist dann wieder zuviel gefrickel. Da ist es einfacher die Benutzerauthentifizierung gegen MySQL in die Anwendung direkt einzubauen.
Zudem ist die Doku zu dem Umgang mit libpam-mysql dürftig. Zwar findet man die Direktiven irgendwo unterhalb von /usr/share/doc/libpam-mysql/README aber naja..

Nun gut. Jetzt ist es ja nicht so, das Apache keine anderen Module hat die man für die Authentifikation gegen eine MySQL-Datenbank nutzen könnte.
Zum Beispiel sieht mod_dbd zusammen mit mod-authn-dbd doch recht vielversprechend aus.

Unterstützt wird laut http://httpd.apache.org/docs/2.2/mod/mod_dbd.html#dbdparams Oracle, PostgreSQL, MySQL und SQLlite 2/3.
Schön. Allerdings kommt der Treiber für MySQL nicht mit, weil MySQL da andere Lizenzbedingungen hat als Debian.
Siehe: http://apache.webthing.com/database/
Selbst nachkompilieren geht nicht, weil ich den Apache-Source nicht habe, geschweige den apxs um das Modul zu basteln. Ich könnte ihn zwar installieren (Pakete apache2-src und apache2-threaded-dev) will ich aber nicht.
- Zuviel gefrickel.
Zudem sind die mod_dbd Direktiven nur im Server oder Virtual Server Kontext zulässig. Soll heißen das ich für jedes Verzeichnis, für jede Applikation bei der ich per mod_dbd und mod-authn-dbd die User authentifizieren will, einen eigenen virtuellen Host anlegen müsste.
In meinem Versuch klappt es nicht 2 unterschiedliche DBDParams-Direktiven in einem virtuellen Host anzulegen. (Getestet mit PostgreSQL.)
Man könnte das ganze ja wiederum über Include-Anweisungen lösen, dann müsste man zumindest nicht die DBD-Direktiven immer neu schreiben.
Aber ich mache doch nicht für jedes Verzeichniss einen eigenen virtuellen Host auf. Die Lösung über .htaccess oder die Directory-Direktiven fand ich da schon besser.

Also zur guckt man nach einer anderen Alternative. Zum Beispiel nachträglich erstellten MySQLAuth-Paketen für Debian Etch. (http://www.heuer.org/mod_auth_mysql/)
- Diese wollen aber auch nicht. “Floating point exception.” beim starten von Apache.

So langsam kann ich echt verstehen wieso der Autor das Paket aufgegeben hat.
Ich integriere die Benutzerauthentifizierung jetzt jedenfalls direkt in meine PHP-Anwendungen. Spart jede Menge Ärger, ist zukunftssicherer und macht die Applikation unabhängiger vom Webserver.