Anleitung zum Ersetzen des 1&1-Rootserver-Kernels auf openSUSE-11-Installationen

Wie bereits im Heise-Forum von mir zum Heise News-Artikel openSuse-Kernel auf 1&1-Root-Servern möglicherweise veraltet angemerkt, lässt sich der 1&1-eigene Kernel, der offenbar Sicherheitslücken aufweist und sich über die Paketverwaltung nicht aktualisieren lässt, relativ einfach durch den Standard-Kernel von openSUSE ersetzen.

Die folgende Anleitung wurde erfolgreich auf 3 Root-Servern bei 1&1 getestet (1&1 Root-Server S64 mit Athlon64 Single- oder Dual-Core-CPU, 1GB RAM, NVIDIA-Chipsatz (lspci.txt)).

Wie immer bei Anleitungen aus dem Internet gilt auch hier:

Verwendung der Anleitung auf eigene Gefahr. Zu Risiken und Nebenwirkungen fragen Sie Ihren kompetenten Systemadministrator!

Wir aktualisieren die lokale Datenbank des Paketmanagers und schauen uns an, wieviele Updates darauf warten, eingespielt zu werden:

zypper refresh && zypper patch-check

Die letzte Zeile der Ausgabe könnte z.B. so aussehen:

4 patches needed (2 security patches)

Das Release bzw. die Versionsnummer des aktuell laufenden Kernels lassen wir uns mit

uname -r

anzeigen:

2.6.27.31rootserver-20090819a

Durch den Zusatz “rootserver” können wir erkennen, dass hier der von 1&1 selbstgebackene Kernel läuft, den wir gerne ersetzen wollen.

Wir installieren den openSUSE-Standard-Kernel mittels

zypper install kernel-default

Wie ich durch eigene Tests herausgefunden habe, stört sich der SUSE-Kernel an dem Boot-Parameter ro (das Root-FS wird dadurch read-only gemountet, openSUSE mountet dies während der Boot-Phase offenbar selbst nicht read-write).

Ob wir davon betroffen sind, verrät uns

grep kernel /boot/grub/menu.lst

Die Ausgabe könnte z.B. so aussehen:

kernel /boot/vmlinuz-2.6.25.20-0.5-default root=/dev/md1 ro console=tty0 console=ttyS0,57600
kernel /boot/vmlinuz-2.6.25.20-0.5-default root=/dev/md1 showopts ide=nodma apm=off acpi=off noresume edd=off x11failsafe console=tty0 console=ttyS0,57600

Falls bei Euch das ro in der Zeile auftaucht, die mit kernel beginnt, solltest Du mit Deinem Lieblingseditor (z.B. vim oder nano) die Datei /boot/grub/menu.lst bearbeiten und das ro entfernen.

Die Angabe root=/dev/md1 ist darüber hinaus ein Indiz, dass im Server ein Software-RAID eingerichtet ist.

Überprüfen lässt sich das mit

cat /proc/mdstat

Tauchen hier ein oder mehrere md-Devices (md1, …) auf, so ist ein Software-RAID eingerichtet.

Bei den von mir aktualisierten 1&1-Root-Servern war die Datei /etc/mdadm.conf nicht vorhanden.

Diese Datei sollte unbedingt vorhanden sein und die aktuellen RAID-Einstellungen widerspiegeln, wenn man den SUSE-Kernel booten will:

test -e /etc/mdadm.conf && mv /etc/mdadm.conf /etc/mdadm.conf.backup
mdadm –detail –scan > /etc/mdadm.conf

Wichtig: Das initrd-Image muss neu gebaut werden, damit dies die mdadm.conf enthält:

mkinitrd

Die Fehler bzgl. des 1&1 Kernels ignorieren wir.

Anschließend via

reboot

den Server rebooten.

An dieser Stelle empfiehlt es sich, sich zu Diagnose-Zwecken über den seriellen Konsolen-Server von 1&1 mit dem Server zu verbinden – damit ist man in der Lage, dem Kernel beim Booten zuzusehen und eventuelle Unregelmäßigkeiten zu erkennen. Die Zugangsdaten zum Konsolen-Server findest Du im 1&1 Control-Center unter dem Menüpunkt Server-Verwaltung/Serielle Konsole.

Sobald der Server wieder erreichbar und Du per SSH eingeloggt bist, kannst Du mit

uname -r

prüfen, dass nun der SUSE-Kernel geladen wurde. Der aktuelle SUSE-Kernel (Stand 26.11.2009) für openSUSE 11.0 ist:

2.6.25.20-0.5-default

Damit ist das Update des Kernels abgeschlossen.

Hansenet mit abgelaufenem SSL-Zertifikat

Das SSL-Zertifikat für Hansenets Webmail-Seite ist seit Donnerstag Mittag abgelaufen:

Sowas ist extrem peinlich und vor allem unprofessionell, zumal wahrscheinlich alle Monitoring-Lösungen (zumindest aber Nagios) rechtzeitig vor abgelaufenen SSL-Zertifikaten warnen können.

Via: Herr Binich Ahjako (IRC)

Power-On-Passwort im Thinkpad z60m zurücksetzen

Das hat man davon:

Vor langer Zeit im BIOS des Thinkpads ein Power-On-Passwort definiert, zusätzlich aber auch ein Supervisor-Passwort.

Immer nur das Supervisor-Passwort benutzt.

Vergessen, dass ein Power-On-Passwort gesetzt ist.

Vor der Übergabe des Thinkpads das “BIOS-Passwort” entfernen wollen.

Sich beim anschließenden Booten wundern, dass immer noch ein Passwort verlangt wird.

Leichte Panik, weil das ehemalige Supervisor-Passwort (logischerweise) nicht funktioniert.

Große Panik, weil man irgendwann im Netz mal gelesen hat, dass man BIOS-Passwörter bei Thinkpads nur duch den Austausch eines Bausteins auf dem Mainboard resetten könne.

Erleichterung, nachdem man im Netz das Dokument Lost or forgotten password gefunden hat und erfährt, dass das Power-On-Passwort anders als das Supervisor-Passwort _nicht_ im Security-Chip gespeichert wird.

Freude darüber, mit dem Kauf eines Thinkpads die richtige Entscheidung getroffen zu haben, nachdem man im 164 Seiten umfassenden ThinkPad Z60m Hardware Maintenance Manual detailliert nachgelesen hat wie man das Gerät zerlegen muss, um die BIOS-Batterie abzuklemmen.

Sich wie ein Honigkuchenpferd über die Warnmeldung freuen, die BIOS-Einstellungen seien auf die Standard-Werte zurückgesetzt worden.

:)

Festplattenverschlüsselung angreifbar

Gerade bei Fefe gefunden:

Ein paar schlaue Leute an der Princeton University haben nachgewiesen, dass der Inhalt von DRAM-Bausteinen auch noch nach mehreren Minuten ausgelesen werden kann, nachdem der Rechner ausgeschaltet wurde. Insbesondere Festplattenverschlüsselung ist dadurch angreifbar.

Fast schon obligatorisch zu Zeiten von Web2.0 gibts natürlich auch ein Video dazu.

(Vermeintlich) verseuchte Windows-Kisten

Gerade eben aus aktuellem Anlass mal das error_log eines unserer Webserver näher angeschaut und was sieht man da:

[..]
[Tue Jan 15 10:21:00 2008] [error] [client *.*.*.*] File does not exist: /home/foobar/html/_vti_bin
[Tue Jan 15 10:21:00 2008] [error] [client *.*.*.*] File does not exist: /home/foobar/html/MSOffice
[Tue Jan 15 10:21:41 2008] [error] [client *.*.*.*] File does not exist: /home/foobar/html/_vti_bin
[Tue Jan 15 10:21:41 2008] [error] [client *.*.*.*] File does not exist: /home/foobar/html/MSOffice
[Tue Jan 15 10:24:45 2008] [error] [client *.*.*.*] File does not exist: /home/foobar/html/_vti_bin
[Tue Jan 15 10:24:45 2008] [error] [client *.*.*.*] File does not exist: /home/foobar/html/MSOffice
[..]

Normalerweise ignoriert man sowas ja, da das zum normalen Hintergrundrauschen im Internet gehört.

Aber neugierig ist man manchmal ja doch:

$ whois *.*.*.*
inetnum: *******
netname: *******
descr: *******

Noch Fragen?

Edit:

Laut http://lists.jammed.com ruft anscheinend auch der IE mit einer gewissen Erweiterung diese URLs auf, um bestimmte Fähigkeiten des vermeintlichen IIS-Webservers abzufragen.

Es gibt also scheinbar neben Nimda & Co. doch noch legitime Requests für solche URLs.

Deshalb auch IP-Adresse und Netblock-Owner unkenntlich gemacht.

Der Gewinner der US-Präsidentschaftswahlen 2008 steht fest

Der Gewinner der US-Präsidentschaftswahlen 2008 steht bereits fest.

So zumindest umschreibt die Gruppe des HashClash-Projekts der Fakultät Mathematik und Informatik der technischen Universität Eindhoven das Experiment, bei der es der Gruppe gelungen ist, mit Hilfe einer Playstation 3 zwölf unterschiedliche PDF-Dokumente zu generieren, die den gleichen MD5Hash bilden.

Alle 12 PDF-Dokumente enthalten jeweils den Namen eines Präsidentschaftskandidaten im US-Wahlkampf 2008.

Session-IDs in veröffentlichten URLs sind evil

Das zeigt das aktuelle Beispiel beim Shopblogger:

Eine Unachtsamkeit seitens des Bloggers Björn Harste der auf einen Artikel in seinem Shop verlinken wollte, aber vergaß, die Session-ID aus der URL zu entfernen.

Jedem Besucher seines Blogs offenbarte er damit unfreiwillig (s?)einen Account, den auch scheinbar sofort Leute nutzten, um Artikel aus seinem Shop zu bestellen:

Session-ID in veröffentlichter URL führt zur Übernahme des Accounts

Einmal im Shop als ominöser Philipp “eingeloggt” gewesen, ließen sich auch die Kontaktdaten inklusive Emailadresse, Telefon- und Faxnummer

Session-ID in veröffentlichter URL führt zur Übernahme des Accounts

sowie die bereits getätigten Bestellungen einsehen:

Session-ID in veröffentlichter URL führt zur Übernahme des Accounts

Darum: Beim Veröffentlichen von URLs (das gilt auch für Instant Messenger und Emails) immer die Session-IDs entfernen!

(Zur Ehrrettung Björns sei gesagt, daß er relativ schnell reagiert und den Blogeintrag offline genommen hat)

Dem Apachen & PHP die Geschwätzigkeit austreiben

Möchte man vermeiden, dass der Apache Webserver allerlei Informationen über die geladenen Module und Versionsnummern preisgibt, sollte man in der Datei httpd.conf (oft auch apache.conf o.ä.) die Option ServerTokens auf den Wert Prod stellen:

#
# ServerTokens
# This directive configures what you return as the
# Server HTTP response Header. The default is
# ‘Full’ which sends information about the OS-Type
# and compiled in modules.
# Set to one of:
# Full | OS | Minor | Minimal | Major | Prod
# where Full conveys the most information,
# and Prod the least.
#
ServerTokens Prod

Damit wird aus der für Dritte sehr wertvollen Information

Server: Apache/2.2.3 (Debian) mod_python/3.2.10 Python/2.4.4 mod_ruby/1.2.6 Ruby/1.8.5(2006-08-25) mod_ssl/2.2.3 OpenSSL/0.9.8c mod_apreq2-20051231/2.6.0 mod_perl/2.0.2 Perl/v5.8.8 Server at foo.bar Port 80

ein simples

Server: Apache

Wer PHP auf seinem Server einsetzt wird sicher auch den Header X-Powered-By kennen – der verrät in der Standard-Einstellung nämlich immer noch die verwendete PHP-Version:

X-Powered-By: PHP/4.4.2-1

Möchte man auch dies unterbinden, so setzt man in der php.ini die Option expose_php auf off:

; Decides whether PHP may expose the fact that it is
; installed on the server (e.g. by adding its signature
; to the Web server header). It is no security threat
; in any way, but it makes it possible to determine
; whether you use PHP on your server or not.
expose_php = Off

Damit wäre auch diese unnötige Informationsquelle für Dritte abgestellt.

Anschliessend nicht vergessen, den Apache Webserver neu zu starten oder ihn z.B. mittels SIGHUP zum Neueinlesen seiner Konfiguration zu überreden.

Zum Überprüfen der HTTP-Header bietet sich zum Einen wget mit den Optionen –spider und -S an, zum Anderen kann man Online-Tools wie z.B. http-header-online-check nutzen.

RAID5 Recovery

Wie bereits im Artikel Mein RAID5 löst sich auf beschrieben, zeigte eine der Samsung Platten in meinem privaten Rechner Ermüdungserscheinungen.

Heute war es dann endlich so weit, vom Cron-Daemon bekam ich folgende E-Mail:

Subject: Warning: Degraded RAID detected on lisa.local
Date: Sun, 15 Apr 2007 21:00:02 +0200 (CEST)

Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]
md1 : active raid1 sdd1[3] sdc1[2] sdb1[1] hda1[0]
96256 blocks [4/4] [UUUU]

md2 : active raid5 sdd2[3] sdc2[2] sdb2[0] sda2[4](F)
17566848 blocks level 5, 64k chunk, algorithm 2 [4/3] [U_UU]

md3 : active raid5 sdd3[3] sdc3[2] sdb3[1] sda3[4](F)
216684288 blocks level 5, 128k chunk, algorithm 2 [4/3] [_UUU]

unused devices: <none>

Wie ihr seht, hatte ich hda1 bereits als Ersatz für sda1 im RAID md1 (/boot-Partition) in Benutzung, nun verabschiedete sich sda2 aus md2 (/) und sda3 aus md3 (/home), zu erkennen an dem (F) – F wie Faulty.

Das dumme war nun, daß die IDE-Platte hda mit 9729 Zylindern um genau 4 Zylinder kleiner war als die Samsung SATA-Platten – mit mal eben 2 Partitionen auf hda1 anlegen und zu den MD-Devices dazupacken war es leider nicht getan.

Im Endeffekt lief es darauf hinaus, md1 zu verkleinern, damit alle 3 Partitionen auf hda gross genug wären für die RAID-Devices.

Was folgte, war hda1 aus md1 zu entfernen, ein Backup der Daten aus /boot zu machen, md1 mit mdadm zu verkleinern, die Daten zurückzuspielen und 3 neue Partitionen auf hda anzulegen, diesmal mit einer um ein paar Blocks kleineren Partition hda1.

Dann kurz mit mdadm /dev/md$foo -a /dev/hda$foo die 3 Partitionen den 3 RAID-Devices hinzufügen und fertig ist der Lack:

Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]
md1 : active raid1 hda1[0] sdd1[3] sdc1[2] sdb1[1]
32768 blocks [4/4] [UUUU]

md2 : active raid5 hda2[1] sdd2[3] sdc2[2] sdb2[0]
17566848 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]

md3 : active raid5 hda3[4] sdd3[3] sdc3[2] sdb3[1]
216684288 blocks level 5, 128k chunk, algorithm 2 [4/3] [_UUU]
[===>……………..] recovery = 16.2% (11748992/72228096) finish=27.8min speed=36228K/sec

unused devices: <none>

Eine halbe Stunde später sollte dann, wenn alles gut geht, das RAID5 wieder redundant und damit fault-tolerant sein.

Migration Infrastruktur

Die letzten 2 Wochen war ich auf Arbeit damit beschäftigt, die Migration unseres Firmennetzwerks vorzubereiten.

Bis gestern hatten wir stinknormale 100MBit-noname-Switches in Benutzung und haben darüber 3 verschiedene Subnetze gefahren. Da das nicht wirklich schön ist und die Bandbreite oft zu wünschen übrig ließ, fiel die Entscheidung, auf Gigabit umzurüsten.

In Zuge dessen werden wir die Switches dank VLANs in mehrere logische Switches unterteilen, so daß die verschiedenen Subnetze dann auch wirklich “physisch” getrennt sind.

Angefangen hat alles mit der Auswahl der passenden Switches – für die dafür notwendigen Switches von HP habe ich leider keine Erlaubnis von Cheffe bekommen, da die zu anderen Alternativen doch recht hochpreisig sind. Letztenendlich fiel die Entscheidung auf Netgear.

Ja ja, ich kann das Geschrei schon hören – im Datacenter wird auch weiterhin nur HP verbaut, in der Firma musste es leider kostengünstiger sein.

Die Entscheidung viel auf einen Netgear GSM7224 mit insgesamt 24 Gigabit-Kupfer-Ports, wovon 4 auch per Fiber genutzt werden können

Netgear GSM7224 Managed Switch
Netgear GSM7224

und zwei Netgear FSM726 mit je 24 100MBit-Ports und 2 Gigabit-Ports, die wahlweise per Kupfer oder Fiber genutzt werden können.

Netgear FSM726 Managed Switch
Netgear FSM726

Die Verbindung vom GSM7224 zu den beiden FSM726 wird dann über je 2x Gigabit Kupfer geschehen, die jeweils zu einem Channel (Link aggregation, Trunking) zusammengefasst werden, um Bandbreite und Ausfallsicherheit zu erhöhen.

Verkeilt

Ein (leider) sehr schönes Beispiel für Sicherheit in Theorie und Praxis:

Brandschutztuer
Gefunden in der FHM in Bielefeld

SQL-Injection bei frosch-sportreisen.de

Im 23C3 Wiki wurde es bereits erwähnt: scheinbar haben eine ganze Reihe von Reiseportalen große Sicherheitslücken.

Eines der genannten Reiseportale ist frosch-sportreisen.de, das ich mir eben mal etwas näher angesehen habe.

Ich bin ziemlich geschockt, daß man sich mittels simpelster SQL-Injection in fremde Accounts einloggen kann, ohne das entsprechende Passwort zu kennen:

frosch-reisen nach login
frosch-reisen profil eines mitglieds

Bleibt nur zu hoffen, daß Frosch Sportreisen seine rund 4000 User über die hoffentlich bald gefixte Sicherheitslücke informiert.

Update 04.01.2007 16:20 Uhr

Nach einem kurzen Mailwechsel und einem sehr freundlichen Telefonat mit einem Techniker, der die Plattform für Frosch Sportreisen betreibt, scheint der SQL-Injection-Bug nun behoben zu sein. Der Techniker bestätigte, daß die Eingaben nicht geparst bzw. escaped wurden und so der Login ohne gültiges Passwort möglich war.

Nach einem kurzen Test meinerseits kann ich bestätigen, daß die von mir ausgenutzte Lücke nun nicht mehr zu funktionieren scheint.

Wardriving-Jackpot

Da sucht man am Sonntag Morgen gegen 2 Uhr in Jena einen offenen AccessPoint um mal seine Emails zu checken und was findet man? Wenige offene APs, bei denen die Verbindung immer wieder abreißt.

Schlussendlich hat es dann doch irgendwo geklappt, die Verbindung zum AP war stabil, es gab auch ne IP per DHCP nur nen Ping ins Internet wurde vom Default Gateway mit “Network unreachable” beantwortet.

Nach einem kurzen Blick auf das Webinterface des WLAN-Routers (nach Eingabe des Default-Passwortes “0000”) war dann auch klar, warum es da keine Route ins Internet gab:

Telekom Sinus 154 unkonfiguriert
(Bild anklicken für große Ansicht)

Da findet man nach halbstündiger Fahrt mit dem Lappi auf dem Beifahrersitz endlich einen brauchbaren AP und dann ist auf diesem Teil kein DSL-Zugang konfiguriert.

Soviel Glück kann auch nur ich haben. :-)

PS: Interessant finde ich auch, daß sich der Webserver des Routers als Apache/0.6.5 meldet.

Antwort auf Beschwerde über Kommentar-Spam

Nachdem ich in letzter Zeit auch vermehrt Ziel von Kommentar-Spam bin und ich mir mittels

<Files “wp-comments-post.php”>
Order Deny,Allow
Deny from 58. 59. 60. 61. 121. 122. 123. 124. 125. 126. 202. 203. 210. 211. 218. 219. 220. 221. 222.
</Files>

sowie

<Location ~ “/blog/.*/trackback/?”>
Order Deny,Allow
Deny from 58. 59. 60. 61. 121. 122. 123. 124. 125. 126. 202. 203. 210. 211. 218. 219. 220. 221. 222.
</Location>

in der Apache-Config den ganzen Kommentar- und Trackback-Spam aus Asien (siehe APNIC in IANA IPv4 Address Space Allocation) vom Leib halten kann, kommt nun eigentlich nur noch Spam von einigen verseuchten Kisten aus dem nicht-asiantischen Raum im Blog an.

Diese Woche war es mal wieder so weit. Da der Spam von einer IP aus Deutschland abgesetzt wurde, habe ich an den entsprechenden Abuse-Desk eine kurze Email geschrieben (in diesem Fall Hetzner):

Hallo,

wie im Attachment zu sehen, wurde von der IP 85.10.xxx.yyy aus Ihrem
Netz Kommentar-Spam abgesetzt.

Da es sich hierbei nur um einen in einer ganzen Flut von
Kommentar-Spams handelt, ist der entsprechende Server
höchstwahrscheinlich unter fremder Kontrolle.

Mit freundlichen Grüßen,
Vorname Name.

Rund 4 Stunden später trudelte dann die Antwort von Hetzner ein:

Sehr geehrte Damen und Herren,

vielen Dank fuer die Informationen.

Wir haben umgehend mit unserem Kunden Kontakt aufgenommen und ihn darum gebeten, sich um das Problem zu kuemmern. Falls Sie nochmal Probleme mit dieser IP bzw. diesem Server haben, bitte ich Sie, sich einfach nochmals kurz zu melden.

Bitte entschuldigen Sie die Unannehmlichkeiten.

Mit freundlichen Grüßen

xxxx yyyyyy

Hetzner Online AG
Industriestr. 6
91710 Gunzenhausen

Weitere 2 Stunden später kam dann auch eine Email von dem entsprechenden Hetzner-Kunden:

Ich bitte um Entschuldigung fuer die Belaestigung durch Dienste auf einem von mir betreuten Server (85.10.xxx.yyy). Er ist bereits seit mehreren Wochen nicht mehr im Regelbetrieb und stand deshalb leider nicht unter angemessener Beobachtung von meiner Seite. Nach einem Neustart wurde unbeabsichtigt ein ungeschuetzter Squid wieder hochgefahren. Dieser Dienst (neben einigen anderen) ist nun voellig deaktiviert.

Besten Gruss

xyz

Das finde ich ja mal nett – eine Entschuldigung mit der Erklärung, daß nun wieder alles im grünen Bereich ist.

Wenn denn mal alle Complaints so verlaufen würden *träum*.

Testbericht: IBM Thinkpad z60m

Nachdem ich hier vor kurzem bereits über mein neues Firmen-Notebook kurz berichtet habe, wollte ich nach nun fast 4 Wochen doch etwas detailierter meine Erfahrungen mit dem Thinkpad z60m niederschreiben.

Allgemeines

Das von mit verwendete Gerät ist ein IBM/Lenovo Thinkpad z60m (2529) mit Pentium M 760 (Dothan) 2,0 GHz auf Centrino-Basis, 1GB RAM, 100GB SATA-Platte, ATI Mobility Radeon X600 mit 128MB eigenem Speicher, WLAN (a/b/g) und dem ganzen anderen Krempel, der halt bei einem Notebook heutzutage so dabei ist (Sound, Bluetooth, DVD-Brenner, Speicherkartenleser, …).

Verarbeitung

Das Gehäuse ist rundum solide verarbeitet und entgegen Erfahrungen mit anderen elektronischen Geräten sehr verwindungssteif: Es quietscht oder knarzt absolut nichts.

Tastatur

Die Tastatur ist eine der ersten, die nach dem Verkauf der PC-Sparte von IBM an Lenovo diese beschissenen Windows-Tasten verpasst bekommen hat.

Damit muss man leider leben. Ansonsten sind die Tasten aber schön groß und im Vergleich zum JVC-Notebook macht damit auch das Arbeiten auf der Konsole Spaß.

Touchpad/Trackpoint

Das Thinkpad z60m wird mit Touchpad und dem genialen Trackpoint geliefert – ich liebe diesen Knubbel :-).

Das Touchpad funktioniert so wie es soll, das war es dann aber auch schon (bei mir). Als erste Amtshandlung wurde das Touchpad von mir im BIOS deaktiviert, da man mit dem “Knubbel” eh besser arbeiten kann und versehentliche Betätigungen des Touchpads durch Handballen einfach nerven (Linuxer können davon ein Lied singen).

Das z60m hat unter (vor?) dem Touchpad 2 Maustasten, für den Trackpoint über (hinter) dem Touchpad sogar 3. Damit muss man sich unter Linux nicht mit Emulate3Button und dem gleichzeitigen Drücken der linken und rechten Maustaste zur Simulation eines Klicks auf die mittlere herumschlagen.

Erwähnenswert ist noch, daß 3 verschiedene Aufsätze, allesamt rot, für den Knubbel mitgeliefert werden. Wer wie ich, den werksseitig installierten Trackpoint-Aufsatz nicht mag, wird sich vielleicht mit einem der 2 anderen anfreunden können.

Mein RAID5 löst sich auf

Eben etwas gestutzt, warum GRUB geschätzt 30 Sekunden gebraucht hat, um mir den Bootmanager meines Desktop-PCs zu präsentieren.

Inzwischen weiß ich warum:

end_request: I/O error, dev sda, sector 56
Buffer I/O error on device sda, logical block 7
ata1: translated ATA stat/err 0x51/40 to SCSI SK/ASC/ASCQ 0x3/11/04
ata1: status=0x51 { DriveReady SeekComplete Error }
ata1: error=0x40 { UncorrectableError }

Eine meiner vier 80GB-Samsung-SATA-Platten (SP0812C) scheint den Geist aufzugeben. Scheinbar ist genau einer der Blöcke defekt, auf dem Teile der Partitionstabelle liegen.

Nun stehe ich hier mit einem RAID1 über alle 4 Platten (/boot) sowie RAID5 für / und /home. Die RAID-Devices scheinen noch in Ordnung zu sein:

root@lisa:~>cat /proc/mdstat
Personalities : [raid0] [raid1] [raid5] [raid4]
md1 : active raid1 sdd1[3] sdc1[2] sdb1[1] sda1[0]
96256 blocks [4/4] [UUUU]

md2 : active raid5 sdd2[3] sdc2[2] sdb2[0] sda2[1]
17566848 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]

md3 : active raid5 sdd3[3] sdc3[2] sdb3[1] sda3[0]
216684288 blocks level 5, 128k chunk, algorithm 2 [4/4] [UUUU]

unused devices:

Allerdings wäre es leichtsinnig, den Fehler trotz RAID zu ignorieren – deshalb muss Ersatz her. Die Plattenbelegung sieht wie folgt aus:

root@lisa:~>df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/md/2 ext3 17G 7.9G 7.9G 50% /
/dev/md/1 ext2 92M 9.1M 78M 11% /boot
/dev/md/3 ext3 204G 172G 33G 85% /home

Mir stellt sich nun die Frage, ob es sich überhaupt noch lohnt, die 80GB-Platte zu ersetzen oder ob ich besser ein neues RAID mit größeren Platten aufsetzen sollte.

Als Ersatz für die 4x 80GB gibt es z.B. folgende Möglichkeiten:

3x 250GB à 65€ = 195€ & 500GB netto bei RAID5 => 0.39€/GB
4x 250GB à 65€ = 260€ & 750GB netto bei RAID5 => 0.347€/GB
3x 300GB à 95€ = 285€ & 600GB netto bei RAID5 => 0.475€/GB
4x 300GB à 95€ = 380€ & 900GB netto bei RAID5 => 0.42€/GB
2x 400GB à 120€ = 240€ & 400GB netto bei RAID1 => 0.60€/GB

Durch den Verkauf der vier 80GB-Platten sollte sich, optimistisch gerechnet, ein kleiner Teil der Kosten wieder reinholen lassen (Gedankennotiz für Ebay: 4. Platte für “Bastler” :-)).

Der Kauf einer einzelnen 80GB-Platte schlägt mit immerhin rund 43€ zu Buche, so daß das auch nicht gerade die günstigste Alternative ist, schaut man sich das Preis-/Leistungverhältnis an.

Hat jemand … günstigere … Vorschläge? ;-)

Wardriving in der Nachbarschaft

Resultat von ca. 60 Minuten mit dem Laptop und Kismet in der näheren Umgebung.

Die Fritzbox-WLAN-Router scheinen sehr beliebt zu sein, schaut man sich die Anzahl dieser SSIDs an (knapp 20%).

Rund 28,5% aller gefundenen Access-Points verzichteten komplett auf Verschlüsselung, 46,5% nutzten nur WEP, die restlichen 25% waren mit WPA gesichert.

Sehr interessant ist auch, daß die Kirche scheinbar doch keinen Draht nach oben hat sondern auf Funk setzt. ;-)

21 WLAN
18 NETGEAR
15 espot
12 FRITZ!Box Fon WLAN 7050
11 FRITZ!Box SL WLAN
10 FRITZ!Box Fon WLAN 7170
9 default
6 Speedport W 501V
5 Wireless
4 T-Mobile_T-Com
4 FRITZ!Box Fon WLAN
3 ArcorWirelessLAN
2 Hansanetz
2 FRITZ!Box WLAN 3050
2 FRITZ!Box WLAN 3030
2 ElkerBS
1 Zerr
1 X-Herford
1 wlandesgrauens
1 WLAN
1 WLan
1 wlan
1 WittAir
1 wireless
1 White
1 weserbogen
1 vr
1 touran
1 toker
1 tobias
1 Tingelhoff-Praxis-Internet-SSID
1 Tina
1 stewartmelvin
1 SpeedTouchFEB571
1 SMC
1 Sharpel1801E
1 Sewda
1 SDTS
1 Schmidt-SSID
1 RSCH
1 rossge
1 ring
1 PundK
1 prxluehring
1 PrhFkv3
1 POCKET_AP
1 PetschisLAN
1 Paddys internet
1 office
1 NetzBo
1 Netz
1 MyWLAN
1 mywirelessstuff
1 MT
1 MSI
1 mikephot
1 MIKA
1 Mehmet
1 MediSpring
1 louise2003
1 linksys_SES_44558
1 linksys
1 lg.net
1 Lämmschen
1 L1-ED
1 KripoHerford
1 KrallesNetzwerk
1 KircheSundern
1 jensdrahtlos
1 Javelin Broadband Ltd
1 ISAT-WLAN
1 Internet
1 ICS02
1 icher
1 huettely
1 HOME
1 holger
1 HFbuero
1 hf123
1 hasselbach
1 harry
1 HappyFamily
1 Haberhauer
1 GRODOWSKI
1 GOPARC
1 gateway
1 FUNKNETZ
1 FRITZ!Box SL WLAN KP
1 FRITZ!Box Fon WLAN 7141
1 FRITZ!Box Fon WLAN 7140
1 fritzbox 7050
1 FritzBox
1 FickDich
1 EventVoiceMedia
1 dinorouter
1 Devils_Place
1 Default
1 Dachgeschoss
1 ConnectionPoint
1 Compifunke
1 CM
1 CITPGE001
1 celübhf
1 bunter
1 belkin54g
1 Beck1W
1 Bartsch
1 ArcorWirelessLANQ7t9
1 ArcorWirelessLANq22B
1 ArcorWirelessLANhZtt
1 ArcorWirelessLAN1AAr
1 ArcorWirelessgolf20
1 Arcorrouter
1 AP
1 Alex’s W-LAN
1 A.Hüyng
1 absofort
1 ]9\Wfx)cl>
1 4712
1 1234567

Windows XP in ADS-Domäne ohne Domänen-Kennwort integriert

Letzte Woche Montag war mal wieder Berufsschule angesagt. In einem der Fächer setzen wir uns seit Anfang des Schuljahres mit Microsofts Variante von X.500 auseinander: ADS.

In Gruppen arbeiten wir nun praktisch daran, in einer Übungsdomäne eine Firma abzubilden und entsprechende Zugriffsrechte und Berechtigungen zu verteilen.

Wie Winterraven bereits in seinem Blog andeutete, hat er sein Windows XP (in VMware) dazu überreden können, der Schul-Domäne beizutreten – zu unser beider Erstaunen war dies ohne Administrator-Rechte möglich, es reichte sein normaler Benutzeraccount innerhalb der Domäne.

Selbst der Lehrer, der in Sachen ADS einen sehr fitten Eindruck macht und auch die oben genannte Schul-Domäne co-administriert, war etwas verdutzt und konnte sich dies nicht so recht erklären.

Bin gespannt, ob wir uns Montag noch mit unseren Laptops an der Domäne anmelden können oder die Rechner im Poolraum benutzen müssen :(.

Nachtrag: Der Lehrer meinte heute, daß das absichtlich so konfiguriert worden sei, damit die Schüler mit ihren Notebooks zwecks Unterricht der (Übungs-)Domäne beitreten können.

Spam leichtgemacht

Wer schon immer einmal hemmungslos Spam verschicken wollte, kann dies nun nach Herzenslust unter ghostmails.de tun.

Ich wette, der Betreiber wird dieses Angebot nicht allzu lange in dieser Form weiterführen können – genügend Urteile einstweilige Verfügungen in ähnlichen Fällen gab es dafür in letzter Zeit ja genug.

Update: Inwzischen kann man über die Seite keine Emails mehr verschicken. Vielleicht ist der Betreiber ja doch zur Einsicht gekommen, daß so eine Dienstleistung in der heutigen Zeit nicht mehr ohne Sicherheitsmaßnahmen machbar ist.

Access-Point mit WPA im Wireless Distribution Mode (WDS) gesucht

Habe heute im Auftrag von Cheffe nach Access-Points Ausschau gehalten, die den Traffic auch im WDS-Modus (Bridging) mit WPA(2) verschlüsseln können.

Alle “billigen” Consumer-Geräte können durch die Bank weg nur maximal WEP, was die Sache ziemlich witzlos macht.

Erschwerend kommt hinzu, daß die Hersteller natürlich nicht in ihren Datenblättern erwähnen, daß im WDS-Modus nur maximal WEP funktioniert – das findest man meist nur im Handbuch.

Auf der Verpackung und den Webseiten stehen hingegen die Buzzwords WEP, WPA, WPA2, Client-Mode, AP, WDS (Bridging) und WDS (Repeater) meist recht nah zusammen.

Also kurz eine Email verfasst und einige Hersteller angeschrieben:

Sehr geehrte Damen und Herren,

wir würden uns freuen wenn Sie uns mitteilen könnten, ob Sie ein
Gerät im Programm haben, welches folgende Kriterien erfüllt:

-WDS (Wireless Distribution System) im Bridge-Modus
-WPA Verschlüsselung im Bridge-Modus
-SMA-Antennenanschluss für externe Antenne

Unsicheres WEP im Bridge-Modus ist für uns keine Alternative.

Mit freundlichen Grüßen,
xxx yyy.

Neben einigen vielversprechenden Antworten kam u.a. auch diese Antwort per Email:

Sehr geehrter Herr yyy,

vielen Dank für Ihre Anfrage. Sie finden in Ihrem Text meine Antworten.

Für weitere Fragen stehe ich Ihnen gerne zur Verfügung.

Mit freundlichen Grüßen

i.A. … …

[..]

Sehr geehrte Damen und Herren,

wir würden uns freuen wenn Sie uns mitteilen könnten, ob Sie ein
Gerät im Programm haben, welches folgende Kriterien erfüllt:

-WDS (Wireless Distribution System) im Bridge-Modus (WG602, WG102, WAG102, WG302, WAG302)
-WPA Verschlüsselung im Bridge-Modus (keine Unterstützung)
-SMA-Antennenanschluss für externe Antenne (WG602, WG102, WAG102, WG302, WAG302)
-WEP im Bridge-Modus (WG602, WG102, WAG102, WG302, WAG302)

Mit freundlichen Grüßen,
xxx yyy.

“Thema verfehlt, 6, setzen!” fällt mir dazu nur ein.

Naja, mal gucken was aus den anderen Emails wird. Einige Produkte sehen in technischer Hinsicht schon recht lecker aus, kosten aber auch ein klein wenig mehr als ‘nen Appel und ein Ei.

Nachtrag:

Wir suchen 2 Geräte, die als Bridge fungieren, nicht als Repeater. Damit sollte das in den Kommentaren beschriebene Problem mit der geringen Bandbreite nicht auftreten. Auch sollen die 2 Bridges keine Wireless-Clients bedienen sondern ausschließlich 2 Netzwerksegmente verbinden.

Da die Geräte eventuell auch von nicht-Geeks konfiguriert werden müssen, fallen Konsolen-only Distributionen wie OpenWrt leider aus. Momentan schaue ich mir DD-WRT an, das wird wohl in Verbindung mit 2 Linksys Geräten die günstigste Wahl sein.

Alternativ könnte man auch rund 2x 280 Euro für 3com oder Zyxel ausgeben.

Ich werde Euch auf dem Laufenden halten.

PHP-Sicherheit

Da lese ich doch gerade auf heise online einen Beitrag von Peer Heinlein über die Gefahren bei der Benutzung von popen() und proc_open() in PHP.

Empfohlen wird dem umsichtigen Administrator das Deaktivieren von einigen PHP-Funktionen mittels disable_functions:

disable_functions = show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open

Wem das nicht reicht und so wie ich in Sachen Sicherheit leicht paranoid ist, der kann mittels disable_functions in der php.ini eine ganze Menge Funktionen deaktivieren, ohne daß es großartig den Betrieb stört (das ist natürlich von Fall zu Fall unterschiedlich):

Bei mir laufen WordPress, phpMyAdmin, Squirrelmail, Gallery, Sitebar & Co. ohne diese Funktionen ohne Probleme.

Richtig zensieren in PDFs für Anfänger (und Anwälte)

Da stolpere ich doch heute morgen über einen Beitrag im Lawblog, wo Udo über einen Kollegen berichtet, der wiederum einen anderen Kollegen abgemahnt hat.

Anwalt I stellt, scheinbar damit sich auch der geneigte Leser ein Bild von dem Sachverhalt machen kann, die Abmahnung an Anwalt II als PDF ins Netz.

Dumm nur wenn man zum Unkenntlichmachen der eigenen Unterschrift und Bankverbindung einfach einen “zensiert”-Balken über die relevanten Stellen legt,

Auszug aus dem PDF

der sich, da es sich bei dem Balken nur um eine weitere Ebene handelt, ganz leicht entfernen läßt:

Auszug aus dem PDF ohne Balken

Hätte Anwalt I den Artikel Pentagon blamiert sich mit geschwärztem PDF-Dokument bei heise online gelesen, wäre ihm diese Peinlichkeit wahrscheinlich erspart geblieben.

Glauben

Für viele unserer Kunden holen wir Dateien zur Weiterverarbeitung entweder via FTP oder HTTP von deren Servern ab.

Eine Mitarbeiterin sprach mich an, da in unserem Backend die Daten einer CSV Datei eines neuen Kunden nicht auftauchten, obwohl die Mitarbeiterin die URL des Kunden korrekt im Backend eingepflegt hatte.

Naja, wenn eine Mitarbeiterin schon mal in die Technik kommt und nett fragt, dann guckt man da natürlich auch gleich mal nach ;)

Also auf unserem Server, der die CSV Datei abholen soll, eingeloggt und lftp im debug Modus angeschmissen. Einloggen ging wunderbar, aber ein Directory Listing blieb scheinbar hängen.

Nach genauerem Hinsehen bemerkte ich, daß der FTP Server des Kunden als die zu kontaktierende IP 192.168.x.y an den Client übermittelte – klarer Fall von NAT, wenn der Paketfilter die IP-Adresse in den FTP-Paketen nicht maskiert. Also Kunden angerufen und Problem geschildert.

Antwort: “Glauben Sie mir, unsere Firewalls machen alle richtiges NAT. Sie sind der Erste mit diesem Problem.”

Ja ne, is klar – deshalb sehe ich auch die private IP Deiner FTP-Kiste.

Ich habe dann noch versucht ihm zu erklären, daß es da für iptables ein Modul gibt, das das erledigt … aber nachdem ich mehrmals gehört habe, wie er hastig auf seiner Maus herumklickte und scheinbar seine “Firewall” konfigurierte, hab ich ihm dann angeboten, einen Account auf unserem FTP Server anzulegen, wo er die Daten dann regelmäßig hochladen kann.