Kategorie-Archiv: Admin-Kram

Infos und Anmerkungen aus dem Arbeitsalltag. Viel zum Thema DXS, aber mittlerweile auch zum Microsoft Umfeld :-)

AD Halbwissen die Zweite

Nachdem es ein wenig ruhig geworden ist und wir mehr oder minder wochenlang auf der Stelle getreten sind, hab ich doch wieder ein paar Kleinigkeiten gelernt.
Der Hersteller unseres Massenspeichers ist auch ein wenig ratlos, warum sich deren System nicht mit dem ActiveDirectory unterhalten mag, naheliegender Weise darf sich nun auch Microsoft damit auseinandersetzen.
Gelernt hab ich für mich zumindest dass das ändern der ServicePrincipalName-Einträge die KVNO erhöht, Computerkonten kann ich nebender Klicki-Bunti-Variante, dem dsadd-Kommando nun auch via PowerShell anlegen und wenn das so weiter geht, versuch ich das über die Perl-API.
Ein sehr lustiges Phänomen scheinen Computerkonten-Passwörter zu sein, wenn der Computer einen längeren Namen hat, wird das wohl irgendwie abgeschnitten, was nicht sehr hilfreich ist, wenn man sich darauf verlässt, dass das Passwort nach dem zurücksetzen auf den Namen des Kontos gesetzt wird.
Lustiges Phänomen Nummer zwei: auch Computerkontennamen scheinen einer Beschränkung von 15 Zeichen zu unterliegen, wenn man auf den SAMAccountName angewiesen ist, da ich in der Windowswelt nicht zu Hause bin war mir das nicht bewußt …

Der für mich eigentlich einzige interessante Punkt: NFSv4 mit sec=krb5[ip] funktioniert endlich nachdem ich ein bisschen im AD rumgespielt hab. Und weil ich dazu neige solche wichtigen Dinge zu vergessen (im Gegensatz zu Dingen wie z.B. Namensschildchen ..) schreibe ich das mal auf.
Wie im letzten Beitrag schon mal zu lesen war, ist der Best Practice Ansatz eine Linuxmaschine ins AD zu bekommen dieses Murkszeug mit ktpass-Aufruf und Usermapping, das findet man im Internet haufenweise. In unserem Fall bedeutet Best Practice allerdings, dass es so mal sicher nicht funktionieren wird.
Unser Massenspeichersystem hängt jetzt also auch als 0815 Computerkonto im AD. Was mich etwas überrascht hat, war die Tatsache das sich die GSSAPI wohl doch irgendwie an den ServicePrincipals entlang hangelt, jedenfalls hat es nicht gereicht den userPrincipalName zu setzen damit der NFS-Service das vernünftig ausliest.

Angelegt wird das Computerkonto also einfach mit dsadd computer toller-servername -desc “NFS Server”
Dann werden mit setspn -r toller-servername. Die Host-Service gesetzt, das sollte das AD eigentlich selbst machen, aber unseres ist da wohl nicht ganz Standardkonform, egal …
Da das ganze auch mit einem generischen Namen funkioniert, kann man das auch weglassen. Wichtig sind die ServicePrincipals nfs/hostname und nfs/fqdn und halt der UPN in der Form nfs/fqdn@REALM.
Damit lässt sich auch einfach ein kinit -k -t neue.keytab nfs/fqdn@REALM ausführen welches funktioniert .. im Gegensatz halt zum Best Practice Guide … und die spielen wir dann einfach auf dem Massenspeicher ein und gut ..

Ich möchte kurz festhalten, dass ich manchmal der Meinung bin, dass ich unterbezahlt bin :(

PS: ich werde nicht für Textlayout bezahlt, das kann ich offensichtlich nicht

Update: Ein paar lustige Details hab ich noch unterschlagen, es gab einen Firmwarebug, der deutlich negative Performaceauswirkungen hatte, weswegen ich nun auch mit GNUPlot halbwegs gut umgehen kann, sprich ich kann mehrfarbige Graphen basteln. Außerdem war mal für einen Tag die Webseite der Universität weg, weil da ein Raidsystem “abgeraucht” ist, das hat zum Glück unsere Daten auf dem System nicht betroffen…

ActiveDirectory Halbwissen

Nach einigen nervigen Stunden/Tagen des rumprobierens und lesens diverser Artikel die man als Dokumentation betrachten könnte, haben der Niels und ich es nun doch geschafft einen NFS4-Server und Client unter Linux im Microsoft Active Directory zu authentifizieren.
Wenn man sich mal durch das Internet wühlt und liest wie das funktionieren soll, wird man an einigen Stellen enttäuscht feststellen das es eben genau so nicht in der Realität funktioniert. Vielleicht liegt das auch an unserer AD-Struktur die etwas größer und untypischer ist, als die in den HowTo’s und Tutorials erwähnten. Entsprechend hatten wir bei der ein oder anderen Fehlermeldung auch mal eine Mandantentrennung in Verdacht, insbesondere als ich verzweifelt versucht hab mich mit dem Likewise-Paket der Domäne anzuschliessen.

Inzwischen ist das ganze im Clientsystem auch weitestgehend automatisiert, praktischerweise erfolgen LDAP-Anfragen an das AD nun auch über SASL. Wenn das Kerberos schon funktioniert kann man es schliesslich auch gleich für jeden Mist nutzen.

Im Prinzip ist die Einrichtung auch super simpel und selbsterklärend und ich hatte mir fest vorgenommen mein gesamtes Wissen einfach mit ins Grab zu nehmen. Aber da ich mich selbst kenne und weiß das ich in spätestens 6 Monaten nicht mehr nachvollziehen kann wie und warum das funktioniert, schreib ich hier mal kurz die wenigen Einrichtungsschritte auf um das AD dafür zu Nutzen zwei Unix/Linuxmaschinen NFSv4 mit sec=krb5[ip] nutzen zu können:

Zunächst legt man ein Computerkonto im AD an, wir haben das auf einem Windows 2008 gemacht, weil man dort wenigstens im Log sehen konnte wenn etwas schief läuft, authentifizieren tun wir allerdings gegen einen 2003 DC. In den ganzen Sambahowtos steht immer man soll ein Benutzerkonto anlegen, kann man machen, muß man aber nicht.
In unserem AD werden leider die ServicePrincipalNames nicht richtig angelegt, das kann man mit setspn.exe -r Kontenname “reparieren”,  oder man schreibt das wie ich einfach mit ADSIEdit da rein … letzlich wird das wohl ein Powershell oder Perlscript erledigen.
Als SPN sollte der FQDN z.b. “lilith.meine.domain.de” und host/FQDN “host/lilith.meine.domain.de” vorhanden sein, da wir NFS auch nutzen wollen fügen wir noch “nfs/lilith.meine.domain.de” hinzu.
An dieser Stelle sei angemerkt, dass die SPNs nicht richtig verarbeitet werden um nicht zu sagen der 2003DC interessiert sich nicht recht dafür und der 2008 bekommt das Lookup der Attribute nicht geregelt …

Damit das ganze ordentlich ist, setzten wir noch den DNS-Namen im AD, das dient in unserem Fall allerdings auch nur der Optik, weil wir dafür ein gesondertes IPAM-System benutzen. Und ganz wichtig, wir setzen den UPN auf “host/fqdn” also z.b. “host/lilith.meine.domain.de”. Der Grund ist einfach weil das mit den SPNs nicht funktioniert, davon ab wird wohl das ganze ServicePrincipalgeraffel ignoriert sobald ein Wert irgendwo im AD doppelt auftaucht.  In der Theorie sollte es reichen die SPNs zu setzen so wie es z.B. in der MIT-Kerberos Doku auch beschrieben wird, in der Praxis setzen wir halt den UPN auf den ServiceNamen den wir benutzen in unserem Fall also host ..

Normalerweise sollte man sich nun von der Linuxmaschine mit “kinit host/fqdn@REALM” anmelden können und ein TGT bekommen, falls nicht, tja Pech ..
Für den NFS-Server setzt man den UPN aber besser direkt auf nfs/fqdn, mit host/.. ist irgendwie der gssvcd das ein oder andere mal nicht richtig gestartet. In der Doku dazu steht übrigens das in den Keytabs die Einträge in der Reihenfolge “root/fqdn”, “nfs/fqdn” und “host/fqdn” und zuletzt “nfs/*@REALM” als Credentials probiert werden. Zumindest als Client funktioniert das auch und es hat den Vorteil das man über den host-Principal noch andere Dinge laufen lassen kann, das dient aber auch  nur als Übergangslösung bis das mit den SPNs klappt…

Damit das nun alles automatisch klappt, wir nutzen den Kernel-Automounter um Homedirectories zu mounten, muß  man es nur noch schaffen eine Keytab zu erzeugen und das ist wieder ein sehr spannendens Kapitel.
Im Internet steht dazu: führen sie “ktpass.exe -princ host/lilith.meine.domain.de@REALM -mapuser DOMAINlilith -pass +rndpass -DES-DBC-CRC +DesOnly KRB5_NT_PRINCIPAL -out bla.keytab” aus oder so ähnlich das ist aus dem Gedächtnis zitiert. Dieses Kommando mapped ein Nutzerkonto auf einen ServicePrincipal, zu deutsch schreibt den UPN um. Da wir kein Nutzerkonto haben und den UPN schon manuell geändert haben, weil wir wissen das die SPNs nicht gehen können wir uns das sparen.
Interessant ist eigentlich nur der Hinweis auf +DesOnly, unser AD ist leider nicht in der Lage AES zu benutzen, warum weiß ich nicht ist mir auch egal. Bleiben als mögliche Chiffren also des-cbc-crc, des-cbc-md5 und rc4-hmac, letzteres will unser AD gern haben und macht die wenigsten Probleme ist dafür halt nicht mehr State-Of-The-Art.
Was man nun wissen muß, weil das in der Knowledgebase widersprüchlich steht: ktpass verhält sich je nach Windowsversion etwas anders und bekommt es nicht hin die aktuelle KVNO aus der Kerberosdatenbank zu lesen sondern legt die Keytabs immer mit Version 1 an außer man setzt das manuell via -kvno auf einen anderen Wert, den man aber nicht so trivial unter Windows heraus bekommt …
Sollte man das doch irgendwie schaffen muß man die Keytab natürlich noch auf den Client kopieren, um sich den ganzen Scheiß zu sparen kann man die Keytab auch gleich mit den MIT-KRB-Tools auf dem Linuxclient erstellen.

Als erstes finden wir die KVNO raus, dafür gibt es den Befehl kvno, Parameter ist der Kontenname, hat man noch das gültige TGT vom kinit-Test wirft einem das direkt eine Zahl entgegen, anderfalls will es ein Passwort oder mault das es keine Credentials hat -> kinit machen, glücklich sein.
Dann startet man ktutil und erstellt sich die Keytab mit folgender Zeile:

Und schon sind wir fertig. Die Chiffren heißen übrigens “des-cbc-crc”, “des-cbc-md5″, “rc4-hmac”, “aes256-cts-hmac-sha1-96″ und “aes128-cts-hmac-sha1-96″, bei uns halt rc4, weil Baum …
Ob das klappt testet man einfach mal mit “kinit -k -c /tmp/testcc”, dann sollte man mit “klist -c /tmp/testcc” die laufenden Tickets sehen.

Herzlichen Glückwunsch, sie haben nun einen Linuxclient ohne Sambageraffel an einem Windows 2003R2 angebunden und können ihre Dienste dagegen authentifzieren.
Wenn man den rpc.gssvcd mit -vvv startet sieht man die ganzen Debugmeldungen im Log und etwaige Fehler die auftreten, die es an dieser Stelle aber nicht mehr geben dürfte.
Bei aktuelleren Linuxdistributionen muß man allerdings in der krb5.conf bei den libdefaults noch “allow-weak-crypte = true” hinzufügen, da rc4-hmac nicht mehr standardmässig akzeptiert wird, da das AD eigentlich auch Aes256 kann sollte man das zumindest ausprobieren und nehmen sofern es denn funktioniert.

Und wenn wir schon eine funktionierende Keytab haben können wir auch gleich noch die LDAP-Anfragen damit aufrufen, dazu schreibt man in die nss-ldap.conf:

Den Credentialcache lassen wir per Cron erzeugen mit einem “kinit -k -t /etc/krb5.keytab -c /var/tmp/nssldap.cred 2>&1 > /dev/null” zu Zeiten die unter der Defaultleasetime liegen, bei uns hab ich das auf alle 6 Stunden eingestellt, die Tickets sind 10 Stunden gültig.

Und alles was jetzt noch fehlt um unser cooles BlueArc in Betrieb zu nehmen ist nicht mehr direkt mein Problem, bzw. sind das nur noch Kleinigkeiten :)

acer_travelmate_290

Alte Notebooks und Linux

Normalerweise sagt man ja, dass Linux auf älterer Hardware besser läuft als “bleeding-edge”-Geräten. Das stimmt aber im Fall des vorliegenden Acer Travelmate 290 eher nicht. Was aber auch an der coolen Konstruktion von Acer liegen könnte :-)

Aber der Reihe nach: Das Notebook soll unter Ubuntu 10.04 laufen – was es auch tut, wenn man mal von der Wlan-Seite absieht. Die integrierte Intel-Lösung will nämlich nicht….bzw das Acer lässt sie nicht. Das Modul lädt vernünftig, meckert aber über den aktivierten kill switch. Kurzer Blick an die linke Seite – der steht auf “on”.

Dennis (der das Vergnügen hatte, als erster den Auftrag zu bekommen, dass Ding zum Laufen zu bringen) hat schließlich rausgefunden, dass da ein paar Faktoren zusammen kommen: Es gibt ein Tool/Module für die Acer-Notebooks (acerhk), mit dem man die Wlan-Karte aktivieren kann – theoretisch, denn das läuft unter 10.04 nicht mehr und wird auch nicht mehr mitgeliefert. Man könnte es noch selbst kompilieren (aber da sind die Erfolgsberichte in den Foren auch eher durchwachsen), aber spätestens mit 10.10 kämen auch noch ein paar Patch-Aktionen dazu. Kurz: Will man nicht.

Die aktuelle Variante wäre das Modul acer-wmi. Wäre. Denn dazu sind selbstverständlich die BIOS-Tabellen des vorliegenden Travelmates zu alt. Update wird da von den hinteren Plätzen gerufen? Gibt es aber nicht….also wahrscheinlich nicht, denn Informationen oder Bios-Updates auf den verschiedenen Acer-Seiten zu suchen, ist der Horror. Und dazu müsste man ja auch die genaue Bezeichnung des Notebooks wissen….die des vorliegenden Gerätes passt aber auch mehrere Gerätetypen. Oder keins, denn nicht ein Update ließ sich einspielen. Womit auch diese Möglichkeit raus wäre.

Es gibt auch noch ein Module names acer-apci, aber natürlich braucht das auch vernünftige ACPI-Tabellen im BIOS => gehe nicht über LOS :-(

Gut haben wir uns gedacht, nehmen wir einfach einen handelsüblichen USB-Wlan-Stick. Tja, auch das verhindert das Acer Travelmate konsequent – der kill switch gilt für alle Wlan-Geräte (hier ein kurzer Moment für den gemeinsamen Facepalm).

Egal denkt sich der Niels, dann wird halt das Intel-Module auf die Blacklist gesetzt, denn das liest ja die kill switch Infos aus. Gesagt, getan, Wlan-Stick dran…und…läuft. :-) Aber doof ist es natürlich trotzdem, dass man solche Wege gehen muss, um Wlan auf dem Ding zum laufen zu bekommen.

Ubuntu und ActiveDirectory

Ubuntu ist ja eigentlich auch Linux. Angeblich basiert das auch auf Debian. Man könnte also meinen, das es sich auch halbwegs so verhält wie ein Debian.

Diese <setzen sie hier viele Schimpfwörter ein> machen da nur leider immer irgendwas so völlig anders, das ich mehr Zeit damit verbringe, Ubuntu dazu zu bewegen sich wie Debian zu verhalten, als mit meinem eigentlich Problem. In diesem Fall halt Authentifizierung am AD.
Wie das unter Debian in 5 Minuten geht steht ja unten, unter meinem Ubuntu geht das anders -.-
Die Kerberosgeschichte ändert sich nicht, das ist auch durchaus positiv, heißt für mich, das die Ubuntuleute davon zuwenig Ahnung haben um es kaputt zu spielen. NSS scheinen sie irgendwie verstanden zu haben, zumindest funktioniert die libnss-ldap nicht so wie das in der Manpage steht. Aus einem mir nicht nachvollziehbaren Grund wollte das Teil partout nicht die Daten aus dem AD lesen, weil die Verbindung schon nicht geklappt hat, wegen falscher Credentials …
Da ich die ldap.conf von dem Debian kopiert hatte, sollte man meinen das die Credentials richtig sind, zumal sie mit ldapsearch interaktiv auch funktionieren. Warum die ldap-utils nicht so wollen wie ich, versteh ich zwar auch nicht, aber das ist unter Debian auch so. Die OpenLDAP-Entwickler halte ich ja auch für ein wenig bescheuert bzw. denke ich das deren Drogenkonsum exorbitant hoch sein muß.

Die Lösung unter Ubuntu heißt libnss-ldapd, da ist dann der nslcd bei, der sich wieder seperat konfigurieren läßt. Da die Syntax für das Mapping der Attribute nicht die gleiche ist wie beim libnss-ldap ohne d, funktioniert das linken natürlich nicht, aber das ist eher ein kosmetisches Problem.
Jetzt spricht also unser DXS-System auch mit dem AD und erzeugt TGTs für die Nutzer, immerhin.
Bleibt nur noch der Schritt die Homeverzeichnisse via NFSv4 mit sec=krb5[p|i] anzubinden, da muß ich noch ne Weile manpages lesen.

Und weil ich soviel Spass mit Ubuntu hab, hab ich mir nochmal angeschaut warum upstart und mountall mit unserer NFSroot-Umgebung nicht klar kommen, der Bug ist natürlich immer noch nicht gefixt, wozu auch -.-
Das mein lustiges Squeeze überhaupt Null Probleme mit startup hat, brauch ich wohl nicht erwähnen. Niels hat schon vorgeschlagen auf Archlinux zu wechseln…
Zumindest entwickle ich langsam einen ähnlichen Hass auf Ubuntu wie damals auf SuSE, ich vermute fast da arbeiten die selben Menschen.

Linux im Active Directory

Allein die Überschrift ist bereits irgendwie fremd. Das Microsoft ActiveDirectory ist aus meiner Sicht bereits die Hölle und ich beschäftige mich nur sehr wenig mit diesem Stück Software. Genaugenommen beschäftige ich mich damit eigentlich überhaupt nicht, oder sollte es zumindest nicht, das steht nämlich nicht in meiner Tätigkeitsbeschreibung.
Überhaupt bin ich bisher in der glücklichen Lage das ich meinen Unterhalt nicht durch Verwendung von Microsoft Produkten verdienen muß.

Für den irgendwo bereits erwähnten neuen Speicher der Firma BlueArc ist es allerdings notwendig, das sich unsere Linuxterminals mit dem am Standort eingesetzten ActiveDirectory verstehen. Eigentlich bin ich auch ganz froh das ich mich nicht selbst mit Kerberos und OpenLDAP auseinandersetzen muß, sondern dafür jemand anderes bezahlt wird :)
Wir hatten auch schon selbst mit Kerberos ein wenig experimentiert, der Niels hat sogar mal ne Hausarbeit darüber geschrieben. Nun wollen wir das ganze also auch im Produktivbetrieb haben. Als netten Nebeneffekt erhoffe zumindest ich mir, das wir mal brauchbares Single-Sign-On hinbekommen, aber das steht momentan nur auf der Wunschliste.

Im Internet findet man reichlich Zeug über Linux und AD, geraten wird einem da auch gern zu Likewyse, da gibt es bereits fertige Pakete um Linuxclienten einer Domäne hinzuzufügen. Aber wir wären ja nicht wir, wenn wir nicht das ganze selbst bauen würden und direkt der Domäne beitreten wollen wir auch nicht. Vorerst begnügen wir uns mit der Authentifizierung via PAM.
Ich weiß nicht genau womit ich damit soviel Zeit verplempert habe, wenn man erstmal alles wegwirft und nochmal in Ruhe von vorne anfängt, ist das in fünf Minuten erledigt:

krb5-client installieren, pam-krb5 dazu, nscd noch und die restlichen Pakete sind entweder Abhängigkeiten oder bereits auf dem System installiert. Winbind kann man direkt wieder runterkegeln und pam-ldap hab ich gleich mitentsorgt um sicher zu gehen das wir nicht doch noch gegen LDAP authentifiziern.
Kurz krb5.conf anpassen:

und fertig ist die Kerberos anbindung, das ganze PAM-Zeug wird automagisch bei Debian mitkonfiguriert, aber so schwer ist es jetzt auch nicht noch pam_krb5 mit einzubinden. Vorausgesetzt man schreibt nicht wie ich pro Zeile 4-5 Dinge falsch …
Danach sollte man bereits mit kinit dein-user@deine.domain ein gültiges Ticket Granting Ticket vom KDC bekommen, Aliase kann man noch hinzufügen, muß man aber nicht.

Jetzt muß man Linux nur noch beibringen die Nutzer auch im AD zu suchen. Da AD auch simpelstes LDAP kann, benutzen wir das also in der ldap.conf:

Nss-maps kann man beliebig erweitern, falls noch andere Infos aus dem AD gezogen werden sollen. Nur noch das Passwort für den authnutzer in nss-ldap.secret hinterlegen, fertig.

Danach sollte alles was mit PAM zu tun hat die Credentials via Kerberos gegen das AD authentifizieren und ein TGT nach erfolgtem Login erstellen.
Jetzt muß ich es nur noch hinbekommen die HomeDirectories via NFSv4 und sec=krb5 automatisch zu mounten, aber das kann ja eigentlich nicht so schwer sein…

Securityupdates und Bugfixes

Wir betreiben hier an der Universität bekanntermaßen ein größes Linuxsystem. Von administrativer Seite ist das sehr schön, es gibt 3 Server von denen einer das Mastersystem darstellt und dessen Inhalt dann einfach via cron/rsync auf die beiden anderen gespiegelt wird.
Auf dem Mastersystem kann man wenn man lustig ist via VMware/Xen oder aktuell KVM dann auch direkt testen was man grad bei den Linuxclients so eingestellt hat, theoretisch jedenfalls. Da neben mir eine Dell Precision rumsteht nutze ich normalerweise einfach die, da kann man wenigstens auf der Tastatur oder dem Gehäuse rumschlagen, wenn etwas nicht so funktioniert.

Unser eingesetztes Linux ist allerdings schon etwas betagter und verhält sich nicht mehr so gewohnt wie z.B. mein Laptop :)
Letzte Woche war ich dann der Meinung man müßte mal wieder ein paar Updates einspielen unter anderem Flash, da gab’s neulich ja mal das ein oder andere Problem … Was mir nicht direkt aufgefallen war, war die Fehlermeldung das zwar das Paket runtergeladen wurde, aber die Installation fehlschlug. Daraufhin hat sich relativ schnell jemand beschwert das Youtube nicht mehr geht.
Also kurz von Hand installiert, wenn der Paketmanager das nicht automagisch erledigt. Dabei ist dann irgendwie Udev ein bisschen kaputt gegangen, das hat mir eine Gruppe auf dem System angelegt mit einem komplett falschen Namen, weswegen die Soundausgabe dann nicht mehr funktioniert hat. Den Fehler zu finden hat mich dann schon ein paar Minuten länger gekostet.
Lösung war dann wieder super einfach, die Gruppe umbenennen, dann gehören die Sounddevices auch wieder der Gruppe “Studenten” mit der zugehörigen GID und nicht “Studenten” mit der GID 112 .. Das ist nämlich eigentlich die Gruppe “audio”.

Gestern hat sich dann noch jemand beschwert das USB-Wechselmedien nicht mehr funktionieren, das hat mich auch wieder ein paar Minuten gekostet. Fazit: PolicyKit ist totaler Mist, deswegen hab ich das auf meinem Laptop vermutlich auch nicht drauf. Zumindest funktioniert es jetzt wieder so wie es soll.
Zuerst war ich so schlau und hab einfach mal alles was an PolicyKit geht mit “result=yes” zurückgehen zu lassen, da war ich kurz gedanklich wohl woanders. Jetzt gibt er das nur noch für die Wechselmedien zurück und verhält sich sonst wie Ubuntu das voreinstellt :)

Jetzt muß ich nur noch herausbekommen warum udev und PolicyKit diesen Murks veranstalltet haben, das war irgendwie nicht so auf den ersten Blick ersichtlich. Vielleicht lass ich das auch einfach in Ruhe und beschäftige mich nochmal mit dem zukünftigen System, da gibt es auch noch ein paar Stolpersteine mit dem ndb als root-Device.

Standort-Übersicht mit Icinga

Wie ich hier ja schon einmal erwähnt habe, setzen wir für die Systemüberwachung unser Server und Klienten Icinga ein. Und das läuft ganz gut:

Die Konfigurationsdateien für die über 250 Windows- und Linux-Rechner werden mittlerweile per Skript erzeugt. Die dafür notwendigen Basisdaten liegen in einer Datenbank und Perl baut die Host-, Hostgroup- und Servicegroup-Configs (dabei muss man leider auch zwischen Windows- und Linux-Clients Unterschiede machen: Die Windows-Namen müssen groß geschrieben werden, da NSClient++ den Hostnamen – wenn dies automatisch geschieht – nur als Großbuchstaben zurück gibt…wieder ein paar überflüssige Zeilen Code mehr :-) ).  Irgendwann hoffe ich ja, diese Infos aus dem OTRS::ITSM zu ziehen, aber das dauert wohl noch etwas, bis ich da durchschaut habe, wie ich Hosts und Standort-Zuordungen vernünftig exportieren kann.

Jetzt haben wir zwar alle notwendigen Informationen, aber richtig interessant wird es ja erst, wenn man diese auch den Studierenden in vernünftiger Form zur Verfügung stellen kann. Am Besten bunt und einfach. Also fix Nagvis installiert und eine Übersichtskarte unserer Standorte gebaut. Aber damit war der Herr Dennis nicht zufrieden, der möchte Zoomen und Blinken und weiß der Geier. Da Nagvis sowas aber leider nicht kann (jedenfalls habe ich es damit nicht innerhalb von 5 Minuten hinbekommen), muss etwas eigenes her.

Auftritt Icinga-API: Damit ist es möglich, auf die Informationen von Icinga strukturiert zuzugreifen (die Icinga-Leute nutzen das auch selbst, bspw für ihr neues Webinterface). Nachteil (aus meiner Sicht) ist allerdings, dass man dafür PHP benötigt. Aber was tut man nicht alles für die Nutzer…  Schritt eins ist, die notwendigen Infos über die API auszulesen. Das ist kein großes Problem, die Doku dazu ist recht gut (obwohl ich ein, zwei Mal das Gefühl hatte, dass in der API-Doku Abfrage-Parameter und -objekte beschrieben werden, die die API gar nicht kennt :-) ). Für die Studierenden als interessant  befunden wurden die Infos zu Anzahl der Rechner pro Standort, Hardware-Verfügbarkeit und ob die Rechner besetzt oder frei sind.

Als nächstes kommt die grafische Darstellung dieser Daten. Da ich mit Openstreetmap nicht nach 5 Minuten zurecht kam (man mag hier vielleicht ein Muster erkennen), kommt dafür momentan GoogleMaps zum Einsatz. Auch da ist eine gute Doku vorhanden, so dass nur noch die Geo-Koordinaten der Standorte ermittelt werden müssen (Momentan habe ich diese noch manuell herausgesucht und der Datenbank gespeichert. Allerdings wäre es auch möglich, diese mittels der Adresse der Standorte per Skript zu erzeugen…allerdings hat die seperate Speicherung den Vorteil, dass man per GPS die exakten Koordinaten eines Standorts erfassen kann). Das dafür notwendige Javascript-Zeug erzeuge ich natürlich auch per Skript :-)

Aber Dennis wollte ja noch mehr: Man soll auf die Standorte klicken können, um mehr Infos zu erhalten. Gefährliches Halbwissen kommt mir wieder in den Sinn: Per CSS und Javascript kann man ja Elemente sichtbar und unsichtbar setzen… Allerdings wollte ich neben PHP nicht noch ‘ne Sprache nehmen, die ich nicht sonderlich mag und habe ich aus diesem Grund für jquery als Framework entschieden…obwohl ich das bestimmt auch sehr quick’ dirty benutze, da ich auch diesen Code über PHP und Schleifen erzeugen lasse… im Endeffekt entstehen so über 1000 Zeilen HTML aus 90 Zeilen PHP. :-) Für die Webseite selbst nutze ich Smarty als Framework – einfach, weil es durch die Trennung von Template und Skript übersichtlicher wird – klar kann man das ganze auch hardcore direkt mit PHP bauen, aber dann führt das entweder zu Kraut und Rüben oder aber – aus meiner Sicht – unnützer Mehrarbeit für die “saubere” Lösung.

TouchStick deaktivieren

Ha, endlich, endlich kann ich diesen doofen TouchStick unter Linux deaktivieren! Das nervt mich schon seit Jahren: Überall findet man Anleitungen, die beschreiben, wie man sein Touchpad deaktiviert, weil der Stick ja soviel besser, cooler, schneller, usw. ist.

Aber da die von uns eingesetzten Dell-Notebooks auch die doofe Angewohnheit haben, meinen Cursor verspringen zu lassen, wenn man auch nur in die Nähe des Sticks kommt, bin ich froh, das Ding abschalten zu können. Ein einfaches:

xinput set-int-prop “DualPoint Stick” “Device Enabled” 8 0

und ich kann in Ruhe schreiben. :-)

Jedenfalls heißt das Ding bei mir so, im Einzelfall sorgt aber ein kurze Suche mittels

xinput list |grep -i stick

dafür, den Namen auf dem eigenen System rauszufinden.

Google Chrome/Chromium

Hmm, ich habe kein Händchen für die Wahl meiner Browser. Egal, welchen ich nutze, alle haben sie doofe Bugs.

Angefangen habe ich mit dem Firefox, da war erst die DPI-Berechnung kaputt, dann mal wieder eine andere Kleinigkeit. Auch das Zusammenspiel mit dem Flash-Plugin war nie so beeindruckend und jedesmal, wenn der Player den Abgang machte, hing der ganze Browser im Nirvana fest (klar: auf der Kommandozeile konnte man den nswrapper-Prozess abschießen, dann lief wenigstens wieder so, dass man weiter surfen konnte – aber dass kann nicht der Standardweg sein ;-) ). Zwar kann der Firefox mittlerweile wohl auch seine Tabs einzeln absichern, so dass dieses Verhalten so nicht mehr vorkommen soll, aber jetzt will ich nicht mehr.. :-)

Der von Dennis bevorzugte Opera kam danach: An sich war da – so meine Erinnerung – nicht wirklich viel kaputt, aber da das Ding auf QT aufsetzt, passte es sich nie richtig in meinen Gnome-Desktop ein. Dann konnten die ersten Versionen vom Zehner nicht mit dunklen Desktop-Themes umgehen. In der Folge waren dann Formulare auf Webseiten der Horror – Schwarz auf Schwarz finde ich persönlich nicht bestmöglichste Kombination. Also musste wieder was neues her.

Nach einer kurzen Rückkehr zum Firefox nutzte ich jetzt Chromium. Und war da bis heute auch recht zufrieden mit. Aber dann habe ich vorhin mal die DPI-Auflösung angepasst und jetzt lese ich gerade im Bugtracker, dass das blöde Ding intern immer mit 96dpi rechnet. Waah, ist klar: Warum sollte man sowas auch als Variable definieren…schließlich sind ja alle Monitore der Welt gleich und zeigen die identische Auflösung.

Egal, jetzt habe ich die Fontgröße auf 24 gesetzt. Und es sieht fast so aus, wie der Rest des Systems. Ich verstehe es einfach nicht…

VMWare Player und Linux

Um die Computerprobleme unserer Studierenden nachvollziehen zu können, haben wir in eine unserer Beratungsstellen nun einen Anmelderechner stehen.
Das ist ein Windows irgendwas auf dem dann im VMWare Player zum einen unsere Windows Umgebung läuft und parallel dazu unser Diskless Linux.
Unter Windows funktioniert das natürlich völlig Problemlos, ironischerweise haben die meisten Studierenden Probleme mit der Windowsumgebung :)
Das Linuxsystem funktioniert prinzipiell auch, nur das die Maus unter Xorg sich sehr merkwürdig verhält. Angeblich soll das eine Macemulation sein, aber so 100% richtig ist das nicht. Unser Xorg wird beim booten per Script erzeugt und liefert in der Regel auch funktionierende Configs, selbst bei vorhanden ATI/nVidia-Karten wird dann der Binary-Treiber gewählt so, so daß selbst aktuelle 3D-Anwendungen unter Wine funktionieren (anders kann ich das nicht sinnvoll umschreiben).

Unter VMWare Player funktioniert dann halt die Maus nicht richtig, überläßt man Xorg sich selbst, so wie Niels das gern hätte funktioniert die Keyboardausgabe im GDM nicht mehr :(
Man sieht also nicht mehr was man da grad eintippt und es soll Helden geben, die ihren eigenen Namen nicht schreiben können. Oder wie ich ihr Passwort regelmäßig falsch schreiben. Ist also auch keine zufriedenstellende Lösung.
Konfiguriere ich die Maus manuell als vmmouse, stürzt Xorg beim start mit einem Trace ab, der selbe Treiber wird anstandslos geladen wenn ich nichts mache… wtf
Im Internet bin ich natürlich bisher auch nicht fündig geworden, dafür hab ich einen lustigen Fehler in unserem DXS System gefunden. “cmd && (cmd2 ; cmd3)” hab ich da irgendwann mal schlauerweise geschrieben und durfte grad nachlesen das () eine Subshell startet, das ist aber nicht was da passieren soll und eigentlich weiß ich das auch. Somit läuft das dritte Kommando eigentlich im falschen Kontext, funktioniert allerdings trotzdem. Damit werde ich mich dann mal bei schlechtem Wetter auseinandersetzen :)

Nebenbei hab ich mich mit einer unserer Beraterinnen unterhalten, welche Nutzerprobleme da genau behoben werden können/sollen. Unter anderem das zurücksetzen des Windowsprofils. Da benennen wir einfach den Profilordner um, der wird dann beim nächsten Login neuerstellt. Unsere Beratung macht das, wie ich finde etwas zu umständlich via WinSCP. Das kann man den Studenten auch schlecht erklären, also eher nicht Do-It-Yourself geeignet. Das geht unter Linux natürlich einfach und bunt.
Weiteres häufiges Problem, überfüllte Mailbox auf dem Exchange. Dank GMX und lustigen Forwardings unserer Nutzer, kommt es schon mal vor das innerhalb von 2 Minuten 8000 Fehlermeldungen das Postfach sprengen. Jetzt haben unsere Studierenden die Möglichkeit:
1: über den Outlook Web Access, die Fehlermeldungen Seitenweise löschen
2: dem Nutzer erklären wie er ein Mailprogramm einrichtet um dort die Mails zu löschen
oder mein Favorit, Nummer 3: sich unter Linux einloggen und einfach den Thunderbird starten. Den konfigurieren wir bereits so, daß die Studenten nur noch ihr Passwort eingeben müssen, mit AD/Kerberos fällt das dank Single-Sign-On auch irgendwann weg. Dann können die bequem per Filter markiert und gelöscht werden.

Damit das funktioniert wäre halt nur eine normal funktionierende Maus vorteilhaft und nicht der Schrott der da im Moment erkannt wird :(