Freier multidimensionaler OLAP-Server für Linux angekündigt - könnte interessant sein, wenn er aus dem Status angekündigt in den Status implementiert wechselt.
sysadmin - 31.1.2005 - 23.2.2005
Apache2, php5-fcgi, php4-fcgi, mod_fastcgi HowTo
Apache2, php5-fcgi, php4-fcgi, mod_fastcgi HowTo liefert alles was man wissen muss um PHP als FCGI-Prozess laufen zu lassen. Und sogar in Deutsch. Das bischen Apache2 da drin kann man selber auf Apache 1.3 umdenken, der Apache ist eigentlich kaum betroffen.
FCGI bietet über Kombination mit suexec die Möglichkeit um PHP pro virtuellem Host unter einem dedizierten User laufen zu lassen und damit die Möglichkeit in shared hosting Umgebungen Files in einem virtuellen Host so anzulegen das ein anderer User mit seinem PHP diese nicht auslesen kann. Man könnte sogar die FCGI-PHPs in einem chroot Jail laufen lassen, um sie noch stärker abzuschotten.
Ausserdem ist FCGI für PHP oft deutlich resourcenschonender, da weniger PHP-Prozesse als Apache-Prozesse laufen können und die Apache-Prozesse nicht so aufgeblasen werden. Wenn man natürlich viele virtuelle Hosts hat, kann das dazu führen das die FCGI-Prozesse wieder an Anzahl gleichziehen - aber dann sollte man sowieso überlegen ob die FCGI-Prozesse nicht besser auf einer dedizierten Maschine laufen sollten.
Für simon wär das genau das richtige, zumal ich dann den anderen Usern auch PHP erlauben könnte.
Ape kann Python-Objekte in Zope transparent auf Filesystemobjekte oder PostgreSQL Datenbanken mappen. Könnte auf der Arbeit sehr interessant sein. Kann auch standalone (ohne Zope) benutzt werden.
mod_fastcgi und mod_rewrite
Tja, da hab ich das doch glatt mal ausprobiert mit dem PHP als FastCGI - unter anderem weil ich dann auch gleich ein neueres PHP benutzen könnte. Und was ist? Nix ist. Und zwar gab es ein massives Problem mit mod rewrite Regeln. In der .htaccess vom WordPress wird nämlich alles auf die index.php umgeschrieben. Dazu wird der eigentliche Pfad der angesprochen wurde als PATH INFO an die index.php angehängt. Tja, und das PHP flöht dann diese Informationen da wieder raus und macht das richtige.
Aber als ich FastCGI aktiviert hatte, klappte das nicht - das PHP behauptete immer, das kein Input-File übergeben wurde. Also als hätte ich das PHP ohne Parameter aufgerufen. Die WordPress Administration - die mit normalen PHP Files arbeitet - funktionierte wunderbar. Und auch die Rechtegeschichte klappte gut, alles lief unter meinem eigenen User.
Nur die Rewrite-Rules halt nicht - und damit die ganze Site nicht. Ziemlich blöd, das ganze. Vor allem weil ich das nicht vernünftig testen kann ohne meine Hauptsite runterzureissen. Blöd ist auch, das scheinbar suexec die eigentlichen FCGI-Starter in der Document-Root des primären virtuellen Servers sucht - nicht in denen der eigentlichen Virtuellen Server. Macht die ganze Situation etwas unübersichtlich, da die Programme (die Starter sind ja kleine Shellscripte) nicht da liegen, wo die Dateien liegen. Ausser man hat seine virtuellen Server unterhalb des primären virtuellen Servers angelegt - aber das halte ich persönlich für hochgradig schwachsinnig, da man dann unter Umständen durch direkte Pfadangaben über den Default-Server an im virtuellen Server geladenen Perl-Modulen vorbeikommen kann.
Ergo: ein Reinfall. Leider. Ärgerlich. Jetzt muss ich mir irgendwie erstmal eine Testkiste zusammenstellen mit der ich dieses Problem analysieren kann ...
Update: ein bischen Suchen und Wühlen im Netz und ein kurzer Test und ich bin schlauer: PATH_INFO bei PHP als FCGI-Version unter Apache ist kaputt. Scheinbar kriegt PHP den falschen PATH INFO Eintrag geliefert und den falschen SCRIPT NAME. Dadurch findet der Interpreter bei gesetztem PATH INFO einfach schlicht sein Script nicht und nix geht mehr. Jetzt muss ich also weiter suchen, ob es eine Lösung gibt. cgi.fix pathinfo = 1 (was allgemein als Hilfe dafür geboten wird) funktioniert jedenfalls nicht. Aber wenn ich das richtig sehe gibts keine brauchbare Lösung dafür - jedenfalls keine für mich offensichtliche. Mist.
Update 2: Ich hab eine Lösung gefunden. Diese basiert darauf einfach nicht den Apache zu benutzen, sondern den lighttpd - und den Apache nur als transparenten Proxy vorne vor zu stellen. Das geht ganz gut, vor allem wenn ich den Apache stark entkerne und das PHP dort rauswerfe wird er auch deutlich schlanker. Und lighttpd kann unter verschiedenen User-Accounts laufen, dadurch spare ich mir auch das wilde gehacke mit suexec. Allerdings läuft dann pro User ein lighttpd Prozess (lighttpd braucht nur einen Prozess pro Server, da es mit asynchroner Kommunikation arbeitet) und die PHPs toben sich als FastCGI Prozesse aus, nicht als Apache-integrierte Module. Apache selber ist dann nur für rein statische Präsenzen oder Sites mit Perlmodulen zuständig - davon habe ich nämlich noch eine ganze Reihe. Im Moment habe ich da nur eine Spiel-Site laufen, aber vielleicht wird das in den nächsten Tagen umgestellt. Die Methode wie cruft-free URIs produziert werden ist übrigens recht witzig: bei WordPress kann man einfach das index.php als Error-Document eintragen: ErrorDocument 404 /index.php?error=404 wäre der Eintrag in der .htaccess, bei lighttpd gibt es eine äquivalente Eintragung. Dadurch werden automatisch nicht existierende Files (und die cruft-free URIs existieren ja nicht als physikalische Files) auf WordPress umgeleitet. Dort wird dann geguckt ob wirklich keine Daten da sind für die URI und wenn doch was da ist (weil es eine WordPress URI ist), wird einfach der Status zurückgesetzt. Für letzteres musste ich einen kleinen Patch in WordPress einbauen. Dadurch spart man sich die ganzen RewriteRules und kommt mit fast jedem Server zurecht. Und weil jetzt 1:41 ist, geh ich jetzt mal pennen ...
Entwarnung: Mozilla schaltet Umlaut-Domains nicht ab - wobei die Lösung ja einem Abschalten gleichkommt: der Browser zeigt einfach die Punycode-Schreibweise an. Man kann also eine Umlautdomain zwar eingeben und auf dem richtigen Server landen, aber eben mehr nicht.
rdiff-backup und duplicity
rdiff-backup und duplicity sind sehr praktische Backupwerkzeuge die mit dem rsync-Algorithmus übers Netz effizient kopieren und im Gegensatz zum normalen rsync auch historische Versionen abspeichern. rdiff-backup benutzt ein Mirror+reverse-Delta Format und duplicity ein Basis-Version+forward-delta Format. Die neueste Version von librsync auf der beide Projekte aufbauen soll wohl auch Mac OS X Metadaten transportieren, von daher könnte es auch für OS X brauchbar sein. rdiff-backup benutze ich schon für Linux-Backups erfolgreich.
mod_dosevasive ist ein Apache-Modul das DOS-Attacken versucht zu erkennen und dann an andere Mechanismen abgeben kann um den Angreifer auszusperren. Es kann zum Beispiel Firewalling-Regeln erzeugen, die diesen Angreifer blocken. Man sollte es aber nicht auf einem SVN-Host laufen lassen, denn ein SVN update sieht unter Umständen wie eine gescriptete Attacke aus ...
Bei Nebenwirkungen schlagen Sie Ihren Softwarehersteller ...
Microsoft vs. Wine: Deja Vu on the FUD Front beschreibt wie durch das WGA-Zeugs von Microsoft - die Prüfung einer legalen Systemsoftware nach Microsoft-Definition auch bei Updates für normale Anwendungen - der Update von Anwendungen die unter Wine oder Crossover-Office laufen (Windows-Emulatoren unter Linux) unmöglich macht.
Let me spell that out for you: You can have a legal copy of Microsoft Office, and because you choose to run it on a Linux box using Wine, you won't be able to update it.
Wer wissen will wie sicher oder vielmehr unsicher die T-Mobile-Seiten in den USA sind (sind ja kürzlich gehackt worden), hier gibts eine kleine Analyse: Ethical Hacking and Computer Forensics: Secret Service hacker, how did he do it? Ergebnis ist wohl das der Hacker normale SQL-Injection oder ähnliches verwendet hat und das es aufgrund der Systemstruktur von deren Server ziemlich einfach ist falsche Informationen einzuschleusen.
heise Security - Know-how - Konsequenzen der erfolgreichen Angriffe auf SHA-1 erklärt recht brauchbar was Hash-Algorithmen in der Sicherheitstechnik bedeuten und wie die aktuelle lage um SHA1 einzuschätzen ist. Lohnt sich zu lesen.
Alternative Rewrite Rules ergeben eine wesentlich einfachere .htaccess, vor allem eine die nicht ständig von WordPress aktualisiert werden muss. Gerade wenn man selber die .htaccess für andere Sachen noch mitbenutzt ist das praktisch. Ausserdem wird der Apache durch die komplizierten Rewrite-Rules von WordPress auch nicht unbedingt schneller. Ich hab die bei mir mal aktiviert, mal schauen wie sich WordPress 1.5 mit diesen Eintragungen macht. Wenns keine Probleme gibt, bleiben die so drin, denn sie gefallen mir wesentlich besser als die andere Variante. Und sie haben nicht die Probleme die die anderen haben - alte mod_rewrite können nur greedy matching, was die Erstellung von komplizierten Listen von Rewrites ziemlich haarig macht ...
heise online - Wenn Computer-Oldies nicht mehr wollen [Update]. Toll, der C64 war ne Ente und in Wirklichkeit ist es was viel schrecklicheres ...
Kryptoverfahren SHA-1 geknackt - autsch. Wenn Bruce Schneier mit seiner Einschätzung Recht hat, wars das dann für SHA-1. Umstieg auf SHA-256 oder SHA-512 ist wohl angesagt (hatte sich aber in letzter Zeit eh angedeutet).
sohu-search ist ein seltsamer Bot
Bei mir sammelt gerade der Suchmaschinenbot von sohu.com die Seiten ab. Soweit, so gut. Er benutzt die robots.txt, was schon mal gut ist. Aber was mich wirklich stutzen lässt, sind zwei Sachen:
Erstens greift er auf jede Seite zweimal zu. Einmal eine HEAD Zugriff und ein GET Zugriff. Das ist ziemlich dämlich aus mehreren Gründen. Zum Einen kann man es mittels Conditional GET ganz einfach direkt erledigen und zum Anderen provoziert das bei dynamisch generierten Seiten doppelte Seitengenerierung - denn auch wenn der HEAD Request nur die Headerzeilen holt, um z.B. die Content-length zu berechnen muss die seite trotzdem erstellt werden (hängt natürlich davon ab wie das generierende System geschrieben ist).
Zweitens greift er alle paar Seiten auf eine Seite namens abcdefghijklmn.htm zu. Und was der Quatsch soll, verstehe ich wirklich nicht. Irgendein Keep-Alive-Check? Keine Ahnung. Sehr strange.
Workaround for IDN Spoofing Issue - mittels AdBlock Erweiterung einfach alle URIs sperren die Namensbestandteile haben die nicht in 7bit-ASCII liegen.
Internet Explorer 7 beta due out this summer - und zwar wohl nur für Windows XP SP2. Na klasse. Damit werden die ganzen Müllhalden an kaputten Windows-Systemen draussen weiter mit den verkorksten IE-Versionen rummachen. Andererseits - wenn man sich so die Entwicklung von IE anguckt, will man dann überhaupt das sich eine neue Version verbreitet?
Mozilla entfernt Unterstützung für Umlaut-Domains
Mozilla entfernt Unterstützung für Umlaut-Domains - meiner Meinung nach die einzig richtige Reaktion. Der IDN-Mist ist sowieso nur Moppelkotze ohne jeden wirklichen Sinn. Sorry, aber Umlautdomains die nur im Web funktionieren aber bei Mail nicht sind nur ein Debakel das darauf wartet stattzufinden. Und die technische Realisierung - das eben nur ein kleiner Ausschnitt aus Unicode überhaupt abbildbar ist - ist auch lächerlich. Alles nur um die Domainvermarktung anzukurbeln und irgendwelchen Deppen das Ego zu streicheln ...
Neohapsis Archives - Full Disclosure List - #0258 - [Full-Disclosure] Advisory: Awstats official workaround flaw - ich hab das Teil jetzt hinter einen Passwortschutz gepackt und Ende mit Exploits. Ohne entsprechende Absicherung kann man awstats.pl wohl vergessen - scheint ein klassischer Schweizer Käse zu sein ...
News.Individual.DE ab 1.4. nicht mehr kostenlos
Der Newsserver news.individual.de ist demnächst kostenpflichtig weil sich keine Sponsoren finden liessen. Den Hinweis habe ich über den Rabenhorst mitbekommen. Wirklich schade, das es nicht weiter kostenlos betrieben werden kann. Nunja, die Leistung des Servers ist so gut, die 10 Euro ist es mir allemal wert.
phpOpenTracker ist ein Live-Access-Auswerter für Webseiten. Er kann direkt in PHP-Anwendungen integriert werden oder über Webbugs (kleine unsichtbare Grafiken) aus statischen Webseiten gesammelt werden. Man kann damit ziemlich viel über das Benutzerverhalten in den Webseiten erkennen. Und bei Asymptomatic wird gerade an einem WP-Plugin dafür gestrickt, mit dem man die entsprechenden Auswertungen im WP-Backend zu sehen bekommt ...
Cooperative Linux ist ein Linux-Kernel der als normaler Prozess innerhalb von Windows läuft. Weird.
Etomite Content Management System
Das Etomite Content Management System(gefunden via Netbib) ist eine recht interessante Angelegenheit. Was mir an dem CMS nicht so gut gefällt: das Standardtheme. Sorry, aber das ist bunt und sieht für mich aus wie Windows . Ausserdem benutzt es ein Tabellenlayout, was mir auch nicht so gut gefällt. Aber ansonsten muss ich schon sagen, das Teil hat was. Das Backend vor allem ist sehr interessant - es benutzt massiv JavaScript und DHTML, was natürlich erstmal nicht so gut ist wenn man JavaScript nicht mag. Aber es bietet darüber eine ganze Menge interaktiver Features die sehr nett sind - zum Beispiel Feedback über die laufende Aktion, automatische Aktualisierung der diversen Oberflächenelemente und insgesamt eine recht runde Bedienung.
Auch gut gefällt die Idee der Snippets - sowas wie in PyDS die Nuggets. Kleine Schnipsel von Code die man einfach in der Datenbank speichert und die dann über Tags in den Templates abgerufen werden. Sehr praktisch, da man so oft einfache kleinere Erweiterungen bauen kann, ohne extra ein grosses Rad zu drehen.
Ebenfalls recht interessant ist das automatische Caching - nichts wirklich neues, aber in diesem Fall eine nette Idee: man kann an den Elementen selber festlegen ob sie gecached werden sollen oder nicht. Und zwar für jedes Element einzeln. Deutlich besser als die üblichen Sekt-oder-Selters-Ansätze anderer CMS.
Insgesamt ist Etomite wesentlich stärker Full-CMS-orientiert als Blog-orientiert. Das stellt es funktional eher in eine Gruppe mit Drupal als z.B. WordPress. Es gibt auch schon eine Reihe von Snippets zur einfachen Erweiterung, genauso wie Themes. Auch verschiedene Sprachfiles existieren schon. Die Dokumentation existiert auch schon, ist sogar nach erstem überfliegen schon recht brauchbar für den Start.
Die Lizenz ist GPL, was schon mal gut ist. Allerdings kommt beim ersten Login ein spezieller Hinweis, der nicht entfernt werden darf - eigentlich beisst sich sowas mit der GPL, denn die GPL sagt ja gerade das ich mit dem Paket alles mögliche machen darf, sofern ich den geänderten Source zur Verfügung stelle. Ok, ich darf nicht behaupten das es von mir ist und muss ursprüngliche interne Copyright-Hinweise erhalten, aber ansonsten kann ich alles ändern. Und das umfasst normalerweise auch Hinweistexte. Zwangslinks und Zwangshinweise beissen sich nunmal mit der GPL. Entweder muss man dann die GPL explizit um diesen Hinweis erweitern - womit es eine GPL+Zusatz wird, die dann allerdings zur normalen GPL inkompatibel wird - oder man verkneift sich Zwangshinweise. Das ganze ist ein nicht unbekanntes Problem der Leute mit der GPL, aber stören kann sowas bei kommerziellem Einsatz definitiv.
Hat jemand Kubrick auf Etomite portiert? Ich bräuchte für meine Spielereien noch ein etwas hübscheres Theme als das mitgelieferte
Wie man den geografischen Ort aus einer dynamischen IP-Adresse ermittelt. Autsch. Klar, die Provider haben ja für ihre dynamischen Einwahlknoten auch wieder Namen von Routern etc., alsom muss die Information irgendwie daraus ermittelbar sein. Soviel zum Thema anonym durch dynamische Einwahl ...
Und nochmal Logfiles
Da ich ja nun ein interessantes Studienobjekt hatte, wollte ich mal gucken inwieweit ich mit ein bischen Clusteranalyse in meinen Logfiles irgendwas interessantes zutagefördern würde. Ich habe also eine Matrix angelegt aus Referrern und zugreifenden IP-Adressen und mir damit mal einen Überblick über typische Userszenarien gemacht - also wie sehen normale User aus im Log, und wie sehen Referrer-Spammer aus und wie sieht unser Freund aus.
Alle drei Varianten lassen sich gut unterscheiden, auch wenn ich im Moment da noch eher davor zurückschrecken würde das algorithmisch zu fassen - das lässt sich nämlich alles recht gut simulieren. Trotzdem sind ein paar Auffälligkeiten zu sehen. Zuerst mal ein ganz normaler Benutzer:
aa.bb.cc.dd: 7 Zugriffe, 2005-02-05 03:01:45.00 - 2005-02-04 16:18:09.00
0065*-
0001*http://www.tagesschau.de/aktuell/meldungen/0,1185,OID4031994 ...
0001*http://www.tagesschau.de/aktuell/meldungen/0,1185,OID4031612 ...
0001*http://mudbomb.com/archives/2005/02/02/wysiwyg-plugin-for-wo ...
0001*http://www.heise.de/newsticker/meldung/55992
0001*http://log.netbib.de/archives/2005/02/04/nzz-online-archiv-n ...
0001*http://www.heise.de/newsticker/meldung/56000
0001*http://a.wholelottanothing.org/2005/02/no_one_can_have.html
Man sieht schön wie dieser User von meinem Weblog weggeklickt hat und wieder zurückgekommen ist - die Referrer sind nämlich mitnichten alles Links auf mich, sondern falsche Referrer die die Browser schicken, wenn der Benutzer von einer Site auf eine andere wechselt. Eigentlich sollen Referrer ja nur dann geschickt werden, wenn auch wirklich ein Link geklickt wird - kaum ein Browser macht das aber richtig. Der Besuch war an einem definierten Tag und er ist direkt eingestiegen durch Eingabe des Domainnamens (die "-" Referrer stehen oben und oben steht der früheste Referrer der vorkommt).
Oder hier mal ein Zugriff von mir:
aa.bb.cc.dd: 6 Zugriffe, 2005-02-04 01:11:56.00 - 2005-02-03 08:27:09.00
0045*-
0001*http://www.aylwardfamily.com/content/tbping.asp
0001*http://temboz.rfc1437.de/view
0001*http://web.morons.org/article.jsp?sectionid=1&id=5947
0001*http://www.tagesschau.de/aktuell/meldungen/0,1185,OID4029220 ...
0001*http://sport.ard.de/sp/fussball/news200502/03/bvb_verpfaende ...
0001*http://www.cadenhead.org/workbench/entry/2005/02/03.html
Ich erkenne mich daran, das Referrer mit temboz.rfc1437.de vorkommen - das ist mein Online-Aggregator. Sieht ähnlich aus - ne Menge falsch geschickter Referrer. Noch ein anderer User:
aa.bb.cc.dd: 19 Zugriffe, 2005-02-12 14:45:35.00 - 2005-01-31 14:17:07.00
0015*http://www.muensterland.org/system/weblogUpdates.py
0002*-
0001*http://www.google.com/search?q=cocoa+openmcl&ie=UTF-8&oe=UTF ...
0001*http://blog.schockwellenreiter.de/8136
0001*http://www.google.com/search?q=%22Rainer+Joswig%22&ie=UTF-8& ...
0001*http://www.google.com/search?q=IDEKit&hl=de&lr=&c2coff=1&sta ...
Dieser kam öfter (also mehrere Tage) über meine Update-Seite auf muensterland.org und zusätzlich hat er noch nach Lisp-Themen gesucht. Und vom Herrn der Schockwelle ist er auch mal gekommen. Absolut typisches Verhalten.
Jetzt mal im Vergleich ein typischer Referrer-Spammer:
aa.bb.cc.dd 6 Zugriffe, 2005-02-12 17:27:27.00 - 2005-02-02 09:25:22.00
0002*http://tramadol.freakycheats.com/
0001*http://diet-pills.ronnieazza.com/
0001*http://phentermine.psxtreme.com/
0001*http://free-online-poker.yelucie.com/
0001*http://poker-games.psxtreme.com/
Alle Referrer sind direkte Domain-Referrer. Keine "-" Referrer - also keine Zugriffe ohne Referrer. Keine sonstigen Zugriffe - würde ich es genauer analysieren nach Seitentyp, würde auffallen das keine Bilder etc. zugegriffen werden. Leicht zu erkennen - sieht einfach mager aus. Typisch ist auch das jede URL nur einmal oder zweimal angegeben ist.
Jetzt unser neuer Freund:
aa.bb.cc.dd: 100 Zugriffe, 2005-02-13 15:06:16.00 - 2005-02-11 07:07:55.00
0039*-
0030*http://irish.typepad.com
0015*http://www208.pair.com
0015*http://blogs.salon.com
0015*http://hfilesreviewer.f2o.org
0015*http://betas.intercom.net
0005*http://vowe.net
0005*http://spleenville.com
Was auffällt sind die Referrer ohne abschliessenden / - untypisch für Referrer-Spam. Ausserdem halt ganz normale Sites. Was auch auffällt, es werden Seiten zugegriffen ohne Referrer - dahinter verstecken sich die RSS-Feeds. Auch dieser ist also leicht von Usern zu unterscheiden. Vor allem da ein gewisser Rhythmus drin ist - scheinbar immer 15 Zugriffe mit einem Referrer, dann den Referrer wechseln. Entweder ist die Referrer-Liste recht klein, oder ich hatte Glück das er zweimal den gleichen bei mir probiert hat - einer ist nämlich 30x da.
Normale Bots braucht man nicht gross zu vergleichen - die wenigsten schicken Referrer mit und sind deshalb völlig uninteressant. Ich hatte einen, der mir aufgefallen war:
aa.bb.cc.dd: 5 Zugriffe, 2005-02-13 15:21:26.00 - 2005-01-31 01:01:07.00
2612*-
0003*http://www.everyfeed.com/admin/new_site_validation.php?site= ...
0002*http://www.everyfeed.com/admin/new_site_validation.php?site= ...
Eine neue Suchmaschine für Feeds die ich noch nicht kannte. Scheinbar hat der Admin gerade vorher irgendwo meine Adresse eingetragen und dann hat der Bot losgelegt die Seiten zu sammeln. Danach hat er dann im Administrationsinterface meine von ihm neu gefundenen Feeds freigeschaltet. Scheint ein kleines System zu sein - der Bot läuft von der gleichen IP wie das Administrationsinterface. Die meisten anderen Bots kommen von ganzen Botfarmen, Webspidern ist halt eine aufwändige Sache ...
Zusammenfassend lässt sich also feststellen, das die derzeitige Generation von Referrer-Spammer-Bots und anderen Mal-Bots noch recht primitiv aufgebaut ist. Sie benutzen keine Botnetze um viele unterschiedliche Adressen zu verwenden und sich dadurch zu verstecken, sie benutzen reine Server-URLs statt Seiten-URLs und haben auch sonst recht viele typische Kennzeichen wie z.B. bestimmte Rhythmen. Ausserdem kommen sie fast immer mehrfach.
Leider sind das keine guten Merkmale um sie algorithmisch zu fassen - ausser man lässt seine Referrer in eine SQL-Datenbank laufen und prüft jeden Referrer mit entsprechenden Selects auf die typischen Kriterien. Darüber könnte man dann durchaus die üblichen Verdächtigen erwischen und gleich auf dem Server blocken. Denn normale User-Zugriffe sehen deutlich anders aus.
Allerdings sind auch schon neue Generationen in der Mache - wie mein kleiner Freund, der mit dem fehlenden /, zeigt. Und dank der dämlichen Browser mit ihren falsch erzeugten Referrern (die viel mehr über die History des Browsers aussagen als über tatsächliche Link-Verfolgung) kann man nicht einfach die referenzierten Seiten gegenchecken, da viele Referrer reine Blindreferrer sind.
vermutlich verkleideter Bot in den Logs
Ich hab gerade mal in meinen Referrern einige Referrer gefunden, auf denen ich absolut nichts finden konnte das auf mich verweist. Soweit nichts ungewöhnlich - Referrer-Spam wäre die erste Vermutung. Aber die in den Referrern genannten Seiten sind ganz normale Weblogs und andere Sites - keine Leute die Grund hätten für ihre Site zu spammen (zum Beispiel ein Blog mit ca. 1 Post pro Monat, oder eine Irin und noch so ein paar seltsame Referrer). Auch sind die Anzahlen anders als bei normalem Referrer-Spam: der kommt normalerweise entweder nur 1-2x oder wenn dann mit vielen Adressen und jede dann gleich 100x oder ähnliches. Dieser kommt ca. 15 mal.
Also habe ich mal in den Logs etwas gewühlt, ob ich da was finde. Und siehe da, die Referrer haben ungwöhnliche Merkmale: sie schliessen nicht mit einem / ab. Normalerweise wird eine Adresse die nicht auf / endet automatisch umgeleitet auf die /-Variante. Referrer sind also normaleweise /-terminiert oder direkte HTML-Seiten oder etwas vergleichbares. Reine Site-Angaben ohne / hinten dran sind eher selten.
Auch noch was anderes fällt auf: die Seiten wurden wirklich angesurft - bzw. mindestens runtergeladen. Und die zu einem Referrer gehörigen Seiten sind recht wild gewürfelt - bei normalen Usern erwartet man eigentlich eher irgendeine Form von Konsistenz in dem was per Referrer rüberkommt. Vor allem kommen selten 15 Links auf einen Schlag auf eine Seite ...
Und das wesentliche Kriterium: die IP des zugreifenden Rechners ist bei den verschiedenen immer die gleiche. Eine Auswertung ergab dann folgendes Bild:
15 betas.intercom.net
15 blogs.salon.com
15 hfilesreviewer.f2o.org
30 irish.typepad.com
5 spleenville.com
5 vowe.net
15 www208.pair.com
Alles eindeutig falsche Referrer. Zusätzlich noch 34 Zugriffe auf meine RSS-Feeds ohne Referrer. Zugriffe waren nur auf direkte Postings und RSS-Feeds - nicht auf Übersichtsseiten oder Archivseiten. Sieht sehr danach aus, das der Bot hier wie folgt vorgehen: RSS-Feeds suchen, diese abgreifen, da drin dann nach Permalinks auf Artikel suchen und diese runterziehen um z.B. an die Kommentarformulare zu kommen. Das ganze schön getarnt als angebliche Besucher, inkl. gefälschten Referrern die unverdächtig wirken. Auch nicht zu viele zugriffe eines Referrers, lieber das ganze öfter gewechselt.
Eigentlich nichts neues, beim eMail-Spam sind ja gefälschte echte Absender durchaus üblich und gängig um schwerer zu filtern zu sein. Aber bei Sammelbots sehe ich diese Art der Mimikry zum ersten Mal life - die Symptome beobachte ich auch erst ca. 1-2 Wochen bei mir.
Für Admins ist das ganze natürlich ziemlich nervig, da man die Referrer-Logs noch weniger gebrauchen kann als bisher schon. Bisheriger Referrer-Spam war zwar ein Ärgernis, aber aufgrund der ziemlich dämlichen Namen der Referrer leicht zu erkennen. Diese Form von Logphänomen verfälscht auch die Referrer - fällt aber wesentlich weniger auf. Könnte für Weblogs interessant sein die ihre Referrer direkt im Beitrag anzeigen.
Und natürlich bleibt auch noch das Problem, das ich ja noch nicht weiss was der Bot mit den gesammelten Erkenntnissen anfangen will. Wobei ich stark auf Spam tippe, aber das ist nur eine Vermutung - könnte auch ein Bot sein, der nach typischen Sicherheitslöchern sucht. Auf jeden Fall ist es ein Bot und auf jeden Fall hat er nichts gutes vor - denn sonst bräuchte er sich nicht zu verstecken.
Passend zu meinem vorigen, längeren, Text: Weblog Tools Collection leidet unter Referer Spam DoS. Solche Vögel - also Referrer-Spammer die in die Tausenden gehen bei den Zugriffen - sind in meiner Loganalyse (noch?) nicht aufgetaucht.
Nicht über den Inhalt meines Weblogs wundern ...
... da ist nur ein amoklaufender Admin mit einem saublöden Script drübergedengelt und hat alle Inhalte vernichtet. Wird irgendwie alles wieder rekonstruiert und repariert und gebügelt und gefaltet. Irgendwie. Und danach stell ich mich in die Ecke und geissel mich ...
Update: jetzt ist alles wieder weitestgehend restauriert. Was war passiert: ich habe von Exhibit für die Bilder auf ein eigenes Plugin umgestellt. Und dabei halt per Script alle Postings mit Bildereinträgen umgeschrieben. Bei dem generierten UPDATE habe ich aber dummerweise die WHERE-Klausel vergessen ...
Verluste: mein Posting zum DGB und die Formulierungen in den Postings von heute. Alles andere war aus einem Backup zu rekonstruieren. Und ein paar Nerven. Und mir zum x-ten Mal hinter die Ohren geschrieben, das ich demnächst vor der Bastelei einen aktuellen Backup machen sollte. Was natürlich nix nutzen wird, weil hinter den Ohren kann ich ohne zwei Spiegel nicht lesen ...
Update 2: und natürlich war ich so klasse bei der Rekonstruktion des Weblogs die geänderten Bilderpostings auch zu überschreiben, weshalb jetzt sämtliche Beiträge im Bilderblog ohne Fotos sind. Ich fasse es nicht. Irgendwie ist heute Vollmond oder sowas ...
Was bedeutet, das ich noch mal kreativ werden muss, um die Bilder wieder in die Postings zurückzupulen, denn natürlich habe ich mir die Zuordnungstabellen alle gelöscht, da ich diese ja nicht mehr brauche. Aber die hab ich ja alle noch im Backup, so schlimm wie vorher wirds also nicht
Update 3: jetzt sollte alles wieder weitestgehend so sein wie vorher. Und die letzte Reparatur ging tatsächlich ohne grössere Katastrophen von statten
Was einen erwartet wenn man MySQL 4.0 auf 4.1 aktualisiert. Ok, Datenbankversionsupgrades sind nie einfach und können immer mal Probleme machen.
Don't reset existing password on request, prevent DoS password reset abuse | drupal.org
Don't reset existing password on request, prevent DoS password reset abuse - tja, genau das Problem hab ich auch bemerkt und konnte nicht fassen das tatsächlich jemand sowas in ein CMS eingebaut hat. Man kann in Drupal für einen Benutzer das Passwort wechseln - und zwar für jeden. Das neue Passwort wird dann diesem Benutzer per Mail zugeschickt. Man kann also darüber keinen illegalen Zugriff erlangen, ausser man kann die Mails des Benutzers abfangen (was in der Regel wohl hoffentlich nicht der Fall sein wird). Aber man kann einen Admin aussperren: einfach einen Job aufsetzen der minütlich das Passwort des Admins zurücksetzt. Und dann diese zwangsweise Abwesenheit des Admins dazu nutzen um das Drupal vollzuspammen zum Beispiel.
Sowas ist wirklich ein peinlicher Patzer. Wird leider viel zu gerne und viel zu häufig gemacht. Wer also Drupal betreibt, dem sei der Patch empfohlen (aufpassen, der Autor hat zwei Patches reingereicht, der erste war noch buggy). Liess sich problemlos installieren und behebt zumindestens die Aussperrung des Admins. Nervige Mails kriegt man natürlich trotzdem dabei.
Jupp, Drupal will mich in den Wahnsinn treiben
Ganz eindeutig. Ich weiss nicht was es gegen mich hat, aber es hasst mich heute. Ganz massiv.
Ich hab mir das kubrick-Theme einfach unter einen eigenen Namen kopiert, damit ich es anpassen kann ohne das Kubrick-Theme selber zu ändern. Witzigerweise benutzt es jetzt aber nicht mehr die phptemplate-Engine. Oder genauer: der Eintrag in der Tabelle system (type='theme' und dann für das page.tpl.php) zeigt nicht auf phptemplate.engine, sondern auf phptemplate - das .engine fehlt. Wenn ich es per Update anhänge, funktioniert das genau ein mal. Danach wird dieser Eintrag in der Tabelle system überschrieben und .engine ist futsch und das Template kaputt. Mit Kubrick tuts das natürlich alles. Und natürlich findet man nirgendwo eine Info wo verflixt nochmal das Theme sagt welche Template-Engine benutzt werden soll - und wie dieser Eintrag in der Tabelle system entsteht. Nein, so einfach nach phptemplate.engine grepen bringt nix.
Ok, mir ist jetzt klar das die Engine die Einträge erzeugt - jedenfalls nachdem ich mir den Source zur Engine mal näher angeguckt habe. Da wird nach page.tpl.php gesucht und wenn das gefunden wird, wird mit der phptemplate.engine verbunden. Aber warum sollte die Engine ihren eigenen Namen falsch eintragen? Zumal sie es bei Kubrick ja richtig macht. Das hab ich ja auch einfach nur ausgepackt in das themes-Verzeichnis.
Jut, also weiter forschen. Ein grep -r auf INSERT in Kombination mit system findet dann im system.module die Funktion system_obtain theme info, in der diese Sätze geschrieben werden. Aber wie und wo genau da jetzt was damit gemacht wird - sorry, aber das findet man nicht raus ohne längeres Studium. Irgendwie wird das description Attribut mit einem Wert gefüllt der beim Kubrick-Theme mit .engine endet und bei allen anderen nicht. Kubrick referenziert die Theme-Engine exakt und korrekt, aber eine beliebig benamste Kopie von Kubrick mit identischem Inhalt referenziert eine Theme-Engine ohne .engine im Namen und tuts nicht. Toll. Aber Kubrick umbenennen funktioniert. Hä?
Ok, nächster Ansatz. Mein Template umbenennen in was anderes und Kubrick umbenennen in meinen eigentlich gewünschten Namen. Verwirrung komplett: mein Template tut nicht, aber das jetzt kubrick heissende und vorher nicht funktionierende tut jetzt auch nicht. Äh .. Also das Kubrick in was anderes umbenannt. Und mal mein zwischengelagertes ausprobiert. Das tuts jetzt. Unter einem Namen der nicht Kubrick ist. Hä? Hütchenspiel? Benenne jetzt die Themes so lange um bis ich irgendwann unter dem von mir gewünschten Namen ein funktionierendes habe und dann ist gut?
Also mal versucht das Hütchenspiel aufzulösen. Computer sind doch deterministische Kisten, das muss doch gehen. Ok, beide Templates (originales Kubrick und mein Hugo) umbenannt. In aa und bb. Und welches funktioniert? Das was bb heisst. Nochmal das ganze, nur jetzt die Rollen vertauscht. aa wird bbb und bb wird aaa. Welches funktionert jetzt? Das was "bbb" heisst. Wenn zwei phptemplate.engine basierte Themes im System installiert sind, funktioniert nur das zuletzt im System gefundene zum Zeitpunkt wo nach den Themes gesucht wird. Die anderen gehen kaputt.
Also muss ich jetzt erstmal rauskriegen was eigentlich mit den alten Themes los ist, warum die nicht zum Funktionieren zu kriegen sind. Erster Ansatz: einen Dump der Datenbank machen und mit grep gucken wo überall meine Freunde auftauchen. Dabei hab ich dann gleich gefunden was mit dem ominösen phptemplate ohne .engine ist: die entsprechenden Einträge enthalten statt des Punktes einen chr(0). Ascii-Null. Wird von MySQL zwar gespeichert, aber von PHP wohl abgeschnitten beim Zugriff. Und für die ganzen alten Templates sind diese ganzen kaputten Einträge da. Ausserdem hat sich noch die engine im Eintrag phptemplate extra templates in der Tabelle variable gemerkt welche Themes sie schon gesehen hat.
Noch mal ein clean room Test: die Einträge in der Tabelle system mit type='theme' und description like 'themes/engine/phptemplate%' rauswerfen. Dann weiss er nix mehr von den Themes und ihren Namen. Dann nur mein gewünschtes Template haben und dieses dann aktivieren. Und siehe da, es funktioniert auf Anhieb. Dann mal kubrick ausgepackt. Und es funktioniert. Danach tuts aber mein eigenes Theme nicht mehr. Wie erwartet - kubrick kommt im Alphabet nach hugo. Kubrick wieder löschen und schon tuts mein eigenes Theme wieder - nach entsprechendem Refresh.
Also nachforschen wo zum Kuckuck diese Geschichte passiert und wieso. Es passiert ja nur mit den phptemplate.engine Themes. Die xtemplate.engine Themes tuns ja problemlos. Wobei sich herausstellt das die es trotz des Bugs tun - er betrifft sie auch. Denn im system.module in system_theme data (wie ich das rausgefunden habe erspare ich den Lesern mal - es war einfach sukzessives Einsetzen von echo Befehlen um zu gucken wann wo was kaputt geht) wird im letzten Schritt - im Aufruf von system obtain theme info - an den Files das description-Element zerstört. Und das ist es, das in die Systemtabelle gespeichert wird um auf die Theme-Engine zu referenzieren. Nur das letzte Theme einer Engine behält den korrekten Eintrag, alle anderen sind kaputt.
Hmm. Der basename-Aufruf in Zeile 336 ist der einzige Kandidat - er liefert eigentlich nur die Theme-Engine ohne das .engine hinten dran raus. Aber er sollte das eigentliche Feld nicht verändern, deshalb hatte ich ihn vorher nicht sonderlich beachtet - die PHP-Doku sagt nix über Seiteneffekte dieser Funktion. Aber wenn ich den Eintrag auskommentiere, funktinioniert mein Theme und Kubrick auch - gleichzeitig. Im PHP Handbuch steht aber nix davon, das basename den ursprünglichen String verändert.
Also ein kleines Testscript geschrieben, das nur einen basename-Aufruf macht. Örks. Ja, das ist es - basename verändert den Ursprungsstring, und zwar haut es einen chr(0) anstelle des Punktes rein. Und siehe da, es gibt einen Bugreport aus 2002 dazu - ja, ich hab ne alte PHP 4.1.2 Version laufen, da Debian Stable. Beim Bugreport steht eine brauchbare Lösung für mein Problem - einfach die Variable in "" setzen und so mit String-Interpolation arbeiten. Und siehe da, Problem gelöst. Und Knoten ins Ohr machen: bei 4.1.2 macht basename die Quellvariable kaputt.
Und mit so einem Scheiss (damit mein ich den Bug, nicht Drupal) beschäftigt sich ein Programmierer beim Debugging
Ich hätte auch einen anständigen Job erlernen können. Whisky-Fass-Bewacher bei Jack-Daniels zum Beispiel ...
Neuer Phishing-Angriff in vielen Web-Browsern möglich
Bei golem gelesen: Neuer Phishing-Angriff in vielen Web-Browsern möglich. Klasse. Wieder mal schludrig implementierte Lösung und schludriger Standard. Das ganze Umlaut-Domain-Geraffel ist eh so ein Unfug das man sich fragt wieso das überhaupt umgesetzt wurde - allein schon die Tatsache das der Mist nur für Webseiten funktiniert und die IDNs nicht für irgendwas anderes sinnvoll nutzbar sind hätte jeden drauf stoßen müssen was für ein Quatsch das ist. Und jetzt ist es auch noch ein Phishing-Loch.
Doing the GNUstep two-step
Doing the GNUstep two-step ist ein schon älterer Bericht über die GNUStep Live CD. Ich verlink den nur, weil dort ein Problem drin beschrieben ist, das mich selber auch schon genervt hat: die CD bootet nicht. Was für eine Live-CD ziemlich dämlich ist. Und nein, die Argumentation das es auf einigen alten Rechnern nicht bootet zieht nicht - der Rechner der hier das Problem hat ist gerade mal ein Jahr alt.
Die GNUStep Live CD Entwickler sollten wirklich das Problem mal angehen und lösen - denn wenn auf einem Rechner alle möglichen Knoppix-Varianten booten, auch die Gnoppix-CD bootet - dann gibt es keinen Grund, das die GNUStep CD nicht booten sollte. Und nein, Disketten sind keine Alternative - der Rechner hat kein Diskettenlaufwerk. Dafür ist er einfach zu neu ...
Falls ich mal eine web-basierte Projektverwaltung angucken will, dotproject - Open Source Project and Task Management Software sieht ganz brauchbar aus.
Oralux: Linux für Blinde
Wo wir gerade bei Live-CDs sind: Oralux ist eine Live-CD mit einer Debian-basierten Distribution die speziell auf Menschen mit Sehbehinderung ausgelegt ist. Sie fragt sehr früh nach einem Sprachinterface und ist insgesamt darauf ausgelegt das man mit Sprache gesteuert wird.
Bill Gates bekennt sich zur Interoperabilität und macht die begnadete Beobachtung das Open Source zu vielen ähnlichen Lösungen führt, weshalb man dann ja Interoperabilität mehr testen müsse und das sei ein Problem. Übersetzung: Open Source findet Bill Moppelkotze, weil es nagt an seinem Monopol
Kosmischer Streifschuss in 24 Jahren - also sollte der uns doch noch 2037 erwischen könnten wir es schaffen ausgelöscht zu sein bevor der Unix-Epoch-Overflow uns erwischt
fallback-reboot ist ein kleiner Daemon der sich im Speicher lockt (so das er nicht ausgelagert werden kann) und dann auf einem Port auf ein Passwort wartet. Kommt das Passwort, wird die Kiste ohne jegliche Sicherheitsvorkehrungen oder Platten-Sync gebootet. Interessant als letzte Rettung wenn die Kiste zwar noch auf Pings und ähnliches reagiert, aber ein Shellprompt nicht mehr zu kriegen ist.
Zope.org - FileStorageBackup ist eine Beschreibung vieler guter Hinweise wie man mit ZODB Datenbankfiles umgehen sollte. Speziell Replikation, Sicherung, Reparatur - also alles das was einen früher oder später in den Arsch beisst wenn man grössere Zope-Systeme betreibt.
Microsoft: Fehler in Buffer-Overflow-Schutz ist keine Schwachstelle - klar. Bill Gates will ja das Netz sicherer machen. Deshalb wird mal eben fix ein Bug nicht als Sicherheitslücke deklariert. Egal das man sich ja immer noch unter Windows schneller einen Trojaner oder Virus einfängt als man Piep sagen kann - und das dieser dann genau diese Lücke nutzen kann um das ganze schöne Sicherheitssystem zu kippen. Was für ein Unfug mal wieder ...
schnelle kleine Webserver
lighttpd ist ein kleiner schneller Webserver mit einem recht beeindruckenden Featureset und dem klaren Antritt schneller und resourcenschonender als Apache zu sein. CGI, FastCGI und PHP (über FastCGI) wird ebenfalls unterstützt, er ist also auch für dynamische Seiten geeignet. Sollte ich mir vielleicht mal anschauen.
leahhttpd ist ein weiterer kleiner Webserver mit Schwerpunkt auf niedrigen Resourcen und hoher Performance. Auch hier ein recht beeindruckendes Featurespektrum.
boa ist der Opa unter den Webservern mit Performance und Resourcen Fokus. Allerdings bietet er nur CGI als Möglichkeit für dynamische Inhalte an. Also besser für die Auslieferung von rein statischen Inhalten geeignet.
Von allen dreien sieht lighttpd am interessantesten aus, unter anderem wegen der guten Unterstützung an Schnittstellen für dynamische Inhalte. Zumal der Server durch einen integrierten FastCGI-Loadbalancer auch schon von Hause aus für grössere Lasten ausgelegt ist. Und die Konzentration auf FastCGI anstelle von integrierten Modulen bietet zusätzliche Möglichkeiten bei der Security - der FastCGI-Prozess kann unter einem anderen (eingeschränkten) Benutzer laufen.
Seltsame Business-Ideen bei Providern
So nett ich Hetzner ja als Provider finde, manchmal haben die spinnerte Ideen. Jetzt kann man auch für seinen Entry-Server (das Einstiegspaket bei denen) zusätzliche IPs bekommen. Allerdings kosten die pro IP eine Monatsgebühr - ist zwar eigentlich ziemlich strange, da ja IP-Adressen nicht verkauft werden sollen laut RIPE - aber naja, ok, wegen meiner. Ich wär ja bereit für eine zusätzliche IP einen moderaten Betrag abzudrücken.
Aber die Vorstellung, das meine 250 GB Freivolumen nur auf die Haupt-IP gehen und auf den zusätzlichen IPs jedes angefangene GB bezahlt werden muss, auch wenn auf der Haupt-IP noch haufenweise freies Volumen ist - sorry, aber das ist schlicht bescheuert. Damit darf man die zusätzlichen IPs doppelt und dreifach bezahlen. Nix da. So wichtig ist mir eine zweite IP-Adresse für Testinstallationen oder ein isoliertes chroot-Jail mit isolierter Softwareinstallation dann doch nicht.
Der Fairness halber sollte man natürlich erwähnen das die nächstgrössere Rootserver-Lösung bei Hetzner dann IPs nach Bedarf ohne Monatsgebühr hat. Aber wie das dann mit der Verteilung des Freivolumens aussieht, weiss ich nicht - aus deren Webseiten geht das jedenfalls nicht hervor.
Nunja, bisher hat mich Hetzner dann immer irgendwann damit überrascht das seltsame und absurde Ideen irgendwann schlicht aufgegeben und durch sinnvolle Lösungen (z.B. das lange überfällige und jetzt verfügbare Notboot-System oder die Möglichkeit des Hardware-Updates beim Entry-Server) ersetzt. Ich geb auch bei den zusätzlichen IPs nicht die Hoffnung auf
Heise.de wegen DDOS unten
Der Schockwellenreiter hat die Presseerklärung von Heise dazu. Sowas ist echt sch und ich drück den Heise-Technikern die Daumen das sie das möglichst bald in den Griff kriegen. Als Sysadmin leidet man bei sowas immer mit.
IBM zieht Intel in den SCO-Fall mit rein
GROKLAW hat den Text mit dem IBM Intel in das Verfahren gegen SCO mit reinzieht und zu einer Aussage zwingen will. Interessant - denn bisher war Intel meines Wissens noch nicht mit im Gespräch das die irgendwas damit zu tun haben könnten. Das IBM die mittels Vorladung dazu holt lässt auf jeden Fall darauf schliessen das IBM meint das Intel etwas wissen könnte was Intel nicht freiwillig offenlegen will.
Nuclear Elephant: DSPAM
Nuclear Elephant: DSPAM ist ein bayesian Spam Filter. Allerdings einer der nicht nur für einen User läuft, sondern üblicherweise für ein ganzes Rudel von Usern. Ich hab das auf simon.bofh.ms laufen um die Mailpostfächer dort alle zu scannen - es ist gut integrierbar und hat eine ganze Reihe interessanter Features. Zum Einen die Weboberfläche zur Verwaltung des Spamfilters, zum Anderen die recht pragmatische Methode um Fehlerkennungen an den Filter zu melden. Auch nett die recht weite Unterstützung von Datenbanken (MySQL, PostgreSQL, SQLite und mehrere db* Typen). Alles in allem macht es einen wirklich runden Eindruck - einziges Manko ist die fehlende Übersetzung der Oberfläche.
Ob es auch wirklich filtert kann ich natürlich mangels Masse noch nicht sagen - die Mails müssen sich erst ansammeln und trainniert werden. Userberichte sind aber - bayesian Spam Filter typisch - aber recht positiv.
Bei Schneier on Security gefunden: the weakest link. Soviel zum Thema Security
Solaris 10 steht ab sofort kostenlos zum Download bereit - auch wenn ich es sicherlich nicht produktiv einsetzen werde, angucken wär schon mal ganz sinnig.
Interview with a link spammer | The Register - kann natürlich ein Fake sein, aber die Jungs vom Register behaupten sie haben hier ein Interview mit einem Blog-Spammer.
IT Manager's Journal | Bitter struggle to control SCO Group parent company - cool, das SCO-Management zerfleischt sich gegenseitig in Gerichtsverfahren
SSH auf dem Handy
MidpSSH | SSH and Telnet client for MIDP / J2ME devices wurde mir in den Kommentaren zu einem älteren Posting empfohlen. Ich hab das mal auf meinem Handy installiert und muss sagen, ich bin beeindruckt. Unabhängig davon wie bescheuert die Idee ist eine SSH-Shell über ein Handy zu bedienen, es funktioniert. Und mit den Makros könnte das sogar für einige Spezialfälle brauchbar sein.
Ok, es macht nicht sehr viel Sinn bei unserem Park an Servern - die wenigsten unserer Server sind direkt von außen erreichbar. Und auf den nächsten Server zu wechseln ist doch ziemlich nervig mit der Handy-Texteingabe. Aber meist brauche ich eh nur auf die Frontserver um von dort aus Aktionen anzustossen - und da wo diese noch fehlen kann man sicherlich auf den Frontservern Scripte basteln.