

Anbieterkennung
Sponsor-Partner:
(ich danke für klick & shop) |
|
|
|
|
/dev/brain
zurück zur Tagebuchübersicht
|
- - - - D
i e s e W o c h e - - - - |
| 08.07.2002,
Mo. |
Gut geschlafen, aufgewacht. Dann hatte ich auf der Arbeit
einen kleinen, erfolgreichen Moment für mich alleine. Ich hatte meinen
Intranetserver während des laufenden Betriebes auf PHP 4.12 mit (fast) allen
Modulen aufgerüstet, die auch vorher schon drin waren - nur in der jeweils
neuesten Version. Somit war eine Sicherheitslücke erst einmal geschlossen. Als
nächstes werde ich dann auf eine neue Apache-Version aufrüsten, aber das
würde einfacher werden. Meine gestrigen Erfahrungen hatten mir gezeigt, daß es
einfacher war, sobald man PHP schon einmal soweit hatte... Nun konnte ich in
aller Ruhe den Webserver meiner bevorzugten Konfiguration zusammenstellen...
|
| 09.07.2002,
Di. |
Die Medizin, die ich mir letzten Donnerstag (ist das erst so
lange her?) gekauft hatte, bewährte sich. Ich hatte kaum Beschwerden.
Streß hatte ich auf der Arbeit. Als es gegen Mittag wieder heißer wurde, fing
mein PC (mein Notebook) an zu spinnen: die
Verarbeitung setzte immer wieder aus und je länger es dauerte, um so länger
hielt es an. Paradox: je heißer es wurde, je mehr fror der Rechner ein :-)
Nach einem Reboot ging es aber wieder. Auf dem Rückweg versuchte ich die neuen
Spezialitäten von McDonald: Der Honolulu-Burger ist recht lecker, aber die Maui
Cheese Potatoes sind für die Leistung (und den Geschmack) einfach zu
teuer.
|
| 10.07.2002,
Mi. |
Heute wollte ich es tun. Heute wollte ich das Intranet auf
neue Serverversionen umstellen, was hieß: Apache 1.3.26, OpenSSH 3.4 und PHP
4.2.1 (alles aus Sicherheitsgründen). Nebenbei noch alles ausgetauscht, was
gerade aktuell war: neue Modules für den Apache und PHP. Auf der Arbeit
bereitete ich das ganze vor und machte auch einen Versuch - aber anscheinend
machte es Probleme, wenn zwei Webserver auf einem Rechner liefen, wobei beide
auf eine bestimmte virtuelle Domain und IP-Adresse lauschten. Ich dachte,
dadurch, daß es jeweils andere Ports wären, wäre es kein Problem - aber
anscheinend doch. Ich startete dann den zweiten einfach mit SSL und sprach ihn
mit https an. Das funktionierte und ich konnte ein bißchen testen. Sah gut aus,
deswegen fuhr ich den anderen einmal herunter und wollte den neuen testen. Ging
dann doch nicht so glatt, weil die alte httpd.conf nicht richtig verarbeitet
werden konnte. Also den alten wieder gestartet... und er fuhr nicht hoch,
verdammt. Nach 10 Minuten stand fest: das neue mod_perl hatte einfach eine
bestimmte Perl-Bibliothek gegen eine neue Version ausgetauscht, aber (ganz im
Gegensat zu den anderen Paketen) hatte es keine getrennten Dateien angelegt.
Jetzt war ich froh, daß ich heute morgen einfach mal die komplette
Betriebssystem-installation in ein Backup - Verzeichnis kopiert hatte. Das waren
dann zwar 5 Gigabyte Plattenverschwendung, aber so konnte ich die alte Datei
(Apache.pm) wieder herkopieren und gottseidank der Webserver startete wieder
hoch. Ich merkte, wie sehr ich schwitzte. Warum hatte ich das denn beim Test vom
Sonntag festgestellt? Die Server liefen
doch parallel!
Dazu kamen nämlich noch über den Tag verteilt wiederholte Ausfälle meines
Notebooks wegen der Hitze.
Um 20:00 Uhr war ich wieder zu Hause. Ich fuhr meinen Testrechner hoch und
stellte fest: ja, mein (alter) Apache 1.3.14 fuhr auch nicht mehr hoch -
dieselbe Meldung. Ich hätte halt nicht einfach nur den neuen kompilieren und
starten sollen, sondern auch mal den alten restarten und es wäre mir
aufgefallen. Also hatte ich wieder etwas gelernt.
Mit dem passenden Wissen ausgestattet ging ich dann von zu Hause aus online und
wollte den Intranet-Server nachts umstellen (es liefen immerhin ja auch ein paar
virtuelle Domains drauf mit 170.000 Requests pro Woche). Doch auch gute
Vorbereitung mit httpd.conf und php.ini und Konsorten konnten einem gewissen
Ausfall nicht vorbeugen. Die wichtigen Sachen waren allerdings sofort
verfügbar, Intranet lief soweit. Auf beliebige Dokumente einer Domain wurde nur
per User-Authentifizierung (.htaccess / http Code 401 "Authentifizierung
erforderlich") zugegriffen, doch ich bekam vom Server schon ein generelles
"Zugriff verweigert" (Code 403) bekam, als ob ich keine Leserechte
hätte. Das war der erste Kampf. Anscheinend hatte sich etwas bei der
.htaccess-Datei oder den Verzeichniseinstellungen von Apache 1.3.14 zu 1.3.26
verändert, was dieses seltsame Verhalten hervorbrachte. Ich werkelte eine gute
Stunde an den .htaccess-Dateien (ohne ging es natürlich, aber die Dateien
mußten geschützt sein!) herum und hatte schließlich erfolg. Es ging. Dann
investierte ich noch ein bißchen Zeit in die Beobachtung und die
Systemüberprüfung. Ich überprüfte perl-Scripte auf dem Intranet... und dabei
fiel mir ein anderer Fehler auf... und zwar war das so: wenn ich ein einzelnes
Dokument (ohne äußere Navigation) aufrief, dann wurde durch Javascript
gesteuert vom Browser die Framestruktur selbständig aufgebaut und das innere
Dokument in den Inhaltsframe geladen, indem es seinen Dateinamen ermittelte und
nachlud. Das lief per PHP. Seltsamerweise wurde nur die Standardseite geliefert,
als ob kein Parameter übergeben wurde. Dasselbe bei diversen anderen
PHP-Scripten, denen Parameter in der URL übergeben wurde - keine Funktion. Ich
suchte bis drei Uhr Nachts, was an den Scripten falsch wäre und sagte mir
dann... das hatte Zeit bis morgen.
|
| 11.07.2002,
Do. |
Um 8:00 Uhr klingelte zwar schon der Wecker, ich war dann
aber erst um 09:10 wach. Da ich ja wußte, daß Teile meines Intranets nicht
richtig arbeiteten, wollte ich so schnell in der Firma sein, deswegen
beschränkte ich mich bei der Körperhygiene auf das optische Mindestmaß
(=kämmen), verzichtete auf das Aufbügeln einer Hose und zog ein Hemd an, daß
ich diese Woche schon einmal an hatte. Um 09:30 war ich an meinem Arbeitsplatz
und die Sucherei ging los.
Schließlich stieß ich auf den entscheidenden Hinweis: es gab ab Version PHP
4.2 in der php.ini einen neuen Parameter, der das Verhalten von Scripts
steuerte, wenn über die URL Parameter übergeben wurden (sogenannte
GET-Methode): register_globals. GET ist ein mögliches Sicherheitsloch, wenn der
Script-Programmierer seine Variablen nicht sorgfältig überprüft. Allerdings
war es früher (<4.2) uneingeschränkt erlaubt, aber das neue Flag in der
php.ini war (eben aus Sicherheitsgründen) auf das Gegenteil eingestellt: die
Scripte durften die Parameter nicht mehr verarbeiten. Na bitte, das wars dann.
register_globals=on und die Sache funktionierte wieder wie vorher. Daß dies
natürlich wieder "possible unsafe" war, war mir schon klar. Aber
erstens schrieb ich meine Scripte selbst (und überprüfte die Daten recht
genau) und zweitens konnte ich so das Umschreiben der Scripte auf die neuen
Gegebenheiten auf später verschieben. Jetzt hatte ich keine Lust mehr dazu.
Der Gag mit der Serverumstellung war noch ein ganz anderer: anscheinend waren
die installierten Versionen performanter als der installierte Vorgänger und
zudem noch schlanker? Jedenfalls nahm ein einzelner httpd-Prozess nur noch 5-6
MByte Hauptspeicher weg und nicht 13-20 MByte wie vorher. Was auf der anderen
Seite bedeutete, daß der Rechner noch gut ein paar Prozesse mehr verkraften
konnte...
Da ich den ganzen Tag schon müde war, ging ich schon um 16:00 Uhr wieder nach
Hause - und schlief erst einmal bis 20:30.
Ich holte noch einmal meine Mail ab, checkte die Systeme, vernichtete 1120
Einheiten in Command & Conquer und ging früh wieder schlafen.
|
| 12.07.2002,
Fr. |
Heute passierte nicht viel. Ich hoffte schon auf einen
normalen Arbeitstag (Freitag war Intranet-Tag) und bestellte erst einmal zwei
Domains. Um 12:30 Uhr fing dann die Katastrophe wieder an. Mein Notebook
ärgerte mich immer mehr. Schließlich konnte ich innerhalb von 2 Stunden nur 5
Minuten arbeiten - den Rest des Tages verbrachte der Notebook in eingefrorenem
Zustand. Ich war gerade in Versuchung, mit meinen Händen nackte Gewalt
auszuüben und das Notebook in einen Zustand abrupt positiver beschleunigter
Bewegung in Kombination mit starker negativer Beschleunigung zu versetzen, da
sagte ich mir: jetzt war Wochenende, ich hatte sowieso schon genug Stunden
gearbeitet.
Ich legte keinen Wert mehr darauf, daß die Dateien ordnungsgemäß geschlossen
waren und schaltete das Ding einfach aus, packte es ein und fuhr im real vorbei.
Mir war nach Spaghetti Bolognese und so kaufte ich alles ein, was mir dazu
fehlte. Tomaten und Hackfleisch.
Zuhause setzte ich den Plan in die Tat um und lag schließlich mit vollem Bauch
auf meiner Couch. Mann, tat das gut.
|
| 13.07.2002,
Sa. |
Das Schicksal war ein Consultant, dessen Entscheidungen man
teurer bezahlt als die teuerste Alternative, unter denen man auszuwählen hatte.
Hä?
Nachdem ich heute morgen frohen Mutes aufgestanden war und gefrühstückt hatte,
da wollte ich zum PC Spezialist vorbei fahren, um *vielleicht* für Maschinenraum
eine billige IDE Platte und ein billiges IDE CD-ROM zu kaufen (nach der SCSI
Katastrohphe vom letzten Wochenende, abgesehen davon, daß der Plattenplatz von
2GB doch ein wenig beschränkt war).
Ich setzte mich also in mein Auto und fuhr los. Es regnete heute morgen. Ich
fuhr zur Bank und stattete mich erst einmal mit dem nötigen Kleingeld aus. Dann
ging es auf die Schnellstraße Richtung Eschborn. Während ich darüber
nachdachte, ob ich diese Ausgaben tätigen sollte oder nicht, kam auch schon die
Ausfahrt. Ich steuerte auf sie drauf und in dem Moment fiel mir wieder ein, daß
die Fahrbahn naß war. Bremsen, Bordstein, Grasnarbe, Stop-Schild (im wahrsten
Sinne des Wortes). Ich stellte den Warnblinker an, schaltete den Motor aus und
stieg aus. Fluchend betrachtete ich meinen zerstörten Frontspoiler, den etwas
eingedrückten Kotflügel und den zersplitternten Scheinwerfer. Ich erinnerte
mich an den 29.06.2002: wenn ich finanziell
wieder im Lot war, machte ich irgendetwas Dummes - und das war hier definitiv
passiert.
Da diese Ausfahrt dieselbe war, über die ich auch meinen (verhaßten)
Fordhändler erreichte, fuhr ich direkt dort hin, stellte mein Auto in den Hof,
nahm mir einen Mietwagen. Der Verkäufer sagte etwas von vermutlichem Schaden in
Höhe von ungefähr 1600 Euro. NA DANKE. Jetzt mußte ich erst mal meine
Versicherung fragen, inwiefern sich das auf meinen Vertrag auswirkte - immerhin
hatte ich Vollkasko. Ich meldete den Schaden telefonisch, hoffentlich artete das
nicht in eine Bürokratie-Schlacht aus, da war ich nicht besonders geschickt
darin. Mein Nachteil: Selbstbeteiligung 332 Euro und ich verliere 5
"Schadensfreiheitsjahre", was mich pro Jahr 109 Euro 44 Cent kosten
würde, d.h. 869,20 Euro Kosten kämen insgesamt auf mich zu.
Mit dem Mietwagen fuhr ich dann trotzdem zum PC Spezialist - allerdings jetzt
ohne jede Kaufabsicht. Mein Geld für heute hatte ich ja schon ausgegeben.
Hmmm... die hatten ihre Verkaufsfläche reduziert ohne daß der Rest vom Laden
voller wirkte. Das war eingentlich kein gutes Zeichen - der Filiale ging es wohl
auch nicht besonders gut. Allerdings zählte ich an diesem Samstag morgen 9
Leute, die als Verkäufer oder Techniker anwesend waren. Nu, vielleicht waren
das ja alles "Teilhaber"...
Mit meinem gemieteten, roten Ford Fiesta fuhr ich anschließend noch zum real
und bedachte meinen aktuellen Lottoschein mit sehr viel Hoffnung. Er mußte
einfach gewinnen. Hoch gewinnen. Ja, ja, ja. Glück und Unglück glichen sich
aus. Ganz bestimmt...
|
| 14.07.2002,
So. |
Von wegen. Mit einer Zahl lag ich ganz gut (war in fünf
Reihen vorhanden), eine andere in zwei, aber der Rest war bescheuert verteilt.
Nu denn...
Den Tag verbrachte ich zu Hause. Ab 18:00 Uhr bestimmten trändende Augen meinen
Abend. Ich war überzeugt, daß war nicht die Allergie, sondern das andauernde
Starren auf irgendwelche Bildschirme. Urlaub? Würde wohl noch ein bißchen
dauern...
|
|