EMU – Everybody Meet Unix

October 23, 2011

SRTM-Höhendaten und Openstreetmap

Filed under: how to's,technik — Tags: , , , , , , , , , , — Martin @ 5:36 pm

Openstreetmap hat mir schon oft in Städten und/oder beim finden von Wegen auf dem Land gute Dienste erwiesen, oft ist OSM aktueller als die meisten anderen kostenfreien Onlineangebote. Allerdings sind OSM-Karten für Wildniswanderungen kaum zu gebrauchen. Um es kurz zu fassen: Es fehlen Höhenlinien, wie sie auf jeder guten topografischen Wanderkarte zu finden sind, aber zum Glück hat die Nasa in den neunziger Jahren ein Projekt zur Elevationsmessung durchgeführt und stellt die Daten unter public Domain zur Verfügung. Mit Hilfe dieser Karten und Openstreetmap lassen sich so Karten erstellen, welche auf dem Handy oder Ausgedruckt als Unterstützung für eine topografische Wanderkarte dienen können.

Ist man ein Anfänger in Sachen Navigation und Kartenkunde, so empfehle ich die Lektüre folgender Fachbücher:

http://www.lehmanns.de/shop/sachbuch-ratgeber/13590801-9783866863132-karte-kompass-gps

http://www.lehmanns.de/shop/reisen/19853769-9783768833141-orientierung-mit-karte-kompass-gps

Ich beschränke mich hier auf die Erstellung von Karten für gpsmid, ein sehr beliebtes routingfähiges Navigationsprogramm für die J2ME-Plattform. Es wandelt die OSM-Karten in ein eigenes Vektorformat um. was neben der Routingfähigkait auch Platzersparnis bringt.

Grund für diesen Post ist mein neues mobiles Fernfunksprechgerät Samsung B2710 und meine diesjährige sechswöchige Reise durch Skandinavien. Die für dieses Handy erstellten Karten und die Handhabung können natürlich nicht mit einem professionellem Garmin-Gerät mithalten, aber die Karten stehen unter CreativeCommons und das B2710 hat lediglich 100€ (+25€ Ersatzakku und Datenkabel) gekostet. Testberichte und Funktionsvielfalt können in unzähligen Beiträgen im Netz eingesehen werden, daher werde ich mich hier nur mit der Software zur Kartenerstellung (mit Höhenlinien) befassen.
Voraussetzung ist ein sicheres Umgehen mit der Kommandozeile. Als Host-System benutze ich ein Debian-GNU/Linux System, aber die Kommandozeilen für Osmosis und srtm2osm können aber auch analog auf anderen Systemen benutzt werden.

Für die folgenden Abläufe habe ich mir eine kleine Toolchain angelegt, ich empfehle die gleichen Versionen der Werkzeuge zu verwenden:

Osmosis (Java):

Kommandozeilenwerkzeug für die Bearbeitung von Karten im Openstreetmap Format. Versionen (0.39 und 0.35!)
srtm2osm (.net(mono)):

Werkzeug für die Kommandozeile, welches srtm Daten (.hrt) lesen kann und diese in eine .osm Datei exportiert (Achtung Tool verwendet Api 0.5 (aktuell: 0.6))
osm2gpsmid (Java):

Tool mit GUI, wandelt die OSM-Datei in ein Jar-File für gpsmid um.
[Maperative (.net (mono)]:

Programm zum bearbeiten von OSM-Karten und zum Export in Bitmap und SVG (Druckvorbereitung) Version: Build 1219]

Zu allererst benötigt man eine Openstreetmap im .osm format. Da allerdings der Export von Openstreetmap.org die meisten Downloads größer als 10km² Fläche nicht zulässt und man nicht unbedingt den ganzen Datenbankdump von Openstreetmap laden möchte, existieren unter geofabrik.de auch schon voreditierte Karten für bestimmte Gebiete. Ansonsten ist es möglich Karten über das Webfrontend oder aber per JOSM herunterzuladen.

1. Karte besorgen!

Ich empfehle allerdings die Karte von geofabrik.de zu besorgen. Man hat die Auswahl ein ganzen Kontinent als OSM-Karte herunterzuladen, einzelne Staaten oder in Deutschland sogar einzelne Karten der Bundesländer.
http://download.geofabrik.de/osm/

Nachdem eine lokale Kopie existiert muss die Karte noch dekomprimiert werden (Achtung die Datei ist extrahiert um ein Vielfaches größer: circa Faktor 8 bis 9).

2. Karte mit osmosis Beschneiden

Ist eine Karte von geofabrik.net heruntergeladen, so kann man diese auf den lediglich benötigten Kartenausschnitt zuschneiden. Wenn man nicht die genauen Grenzkoordinaten kennt, so empfehle ich eine visuele Markierung des ungefähr benötigten Bereiches im Export-Webfrontend von OSM um sich so die Grenzkoordinaten zu besorgen (Tip für Fortgeschrittene: OSM-Karten und deren Koordinaten verwenden das Kartendatum WGS84/ETRS89 und geografische Koordinaten, nicht UTM und auch nicht Gauß-Krüger-Geoide). Sind die vier Grenzkoordinaten besorgt, wird nun mit Hilfe des Werkzeuges Osmosis die Karte von Geofabrik zugeschnitten:

./osmosis/osmosis-0.39/bin/osmosis --read-xml geofabrik/finland.osm --bounding-box top="69.25" bottom="68.58" left="26.64" right="27.94" --write-xml ~/akt_karte/Inari-See.osm

3. Prüfen ob SRTM-Daten für Bereich zur Verfügung stehen
Weiterführende Informationen zu SRTM-Daten bietet Wikipedia an: http://de.wikipedia.org/wiki/SRTM-Daten

Für unsere Zwecke reicht es zu wissen, dass es sich um Höhendaten für große Teile unserer schönen Kugel handelt. Diese Daten müssen nicht zwangsweise mit extraterrestrischen Mitteln ermittelt werden, im Gegenteil, sie können von schon vorhandenen topografischen Karten stammen von denen die Höheninformationen in das SRTM-Format konvertiert werden.

Es stehen leider nicht für alle Gebiete auf der Erde SRTM-Daten zur Verfügung. In folgenden Dokumenten kann in Erfahrung gebracht werden, ob für die Zielkarte SRTM-Daten von der Nasa zur Verfügung gestellt werden. In der PDF Datei werden auch Angaben zur Genauigkeit auf den verschiedenen Kontinenten gemacht:

(http://dds.cr.usgs.gov/srtm/version2_1/Documentation/Continent_def.gif)
(http://dds.cr.usgs.gov/srtm/version2_1/Documentation/SRTM_Topo.pdf)

Für viele andere Gebiete existieren SRTM-Daten vom VIEWFINDERS-Projekt, inbesondere für Island, Skandinavien und Russland.

Abdeckung der SRTM-Daten vom Viewfinders Projekt:

VIWEFINDERS: http://www.viewfinderpanoramas.org/Coverage%20map%20viewfinderpanoramas_org3.htm

Gedownloadet werden die SRTM-Daten des Viewfinders-projekt hier, die NASA-SRTM-Daten werden von dem Werkzeug srtm2osm selbst vom Nasa-Server heruntergeladen:

4. Webserver einrichten und Ordnerstruktur erstellen

(mkdir Australia Eurasia Africa Islands North_America South_America)
(Daten Entpacken –> Eurasia (z.B. Eurasia) und zippen “for i in `ls -1` ; do zip $i.zip $i  ; done”)

Sollten keine NASA-SRTM-Daten für das Zielgebiet zur Verfügung stehen, so lädt man sich die benötigten .zip Dateien vom Viewfinders-Projekt herunter und richtet sich ein lokal laufenden Webserver ein. Damit srtm2osm auch die korrekten SRTM-Daten findet, muss die gleiche Verzeichnisstruktur wie auf dem NASA-Webserver eingerichtet werden und die Dateien aus den ZIP-Archiven in das richtige Verzeichnis kopiert werden und wieder gezipped werden, nur so kann srtm2osm mit den Daten umgehen.

5.Erstellen einer Karte mit Höhenlinien für bestimmte Grenzkoordinaten

mono strm-nasa-evelation/Srtm2Osm/Srtm2Osm.exe -large -bounds1 68.58 26.64 69.25 27.94 -o ~/akt_karte/Inari-See_srtm_V5.osm -source 'http://localhost/srtm/version2_1/SRTM3/'

6.Daten in Version 6 Konvertieren:

Dazu benötigt: ältere Version von OSMOSIS wegen alter API 0.35!!!!!!! (http://dev.openstreetmap.org/~bretth/osmosis-build/osmosis-bin-0.35.tgz)

./osmosis/osmosis-0.35/bin/osmosis --read-xml-0.5 enableDateParsing=no ~/akt_karte/Inari-See_srtm_V5.osm --migrate --wx ~/akt_karte/Inari-See_srtm_V6.osm

7. Die beiden Daten verschmelzen (wieder mit Version 0.39):

./osmosis/osmosis-0.39/bin/osmosis --rx ~/akt_karte/Inari-See.osm --sort --rx ~/akt_karte/Inari-See_srtm_V6.osm --sort --merge --wx ~/akt_karte/Inari-See_FINAL.osm

8. Style-File für osm2gpsmid bearbeiten:

8.1 Style-File aus der .jar Datei extrahieren: Dazu am besten das ganze Jar-Paket in das aktuelle verzeichnis extrahieren:

jar xf *.jar

8.2 style-file.xml in dem Tag <Way> um folgenden Tag erweitern:

<keyW tag = “contour”>
<Wvalue name =”elevation”>
<description desc = “Meter”/>
<namekey tag = “ele”/>
<isArea area = “false”/>
<scale scale = “17″/>
<lineColor color = “009C004B” />
<lineStyle dashed = “false” />
<wayWidth width=”1″ />
</Wvalue>
</keyW>

8.3 osm2gpsmid über ein neues Startskript starten, auf 64 Bit z.B. damit:

java -Xmx4096m -XX:+UseCompressedOops -jar Osm2GpsMid-0.7.6-map67.jar

8.4 Style-File und finale Karte wählen und ein Midlet daraus erstellen.

8.5 Auf das Handy kopieren und als Karte wählen oder Midlet installieren.

9. Beachte
Das ersetzt auf keinen Fall eine aktuelle topografische Karte!

September 11, 2011

Zwischenmeldung

Filed under: Bildungsreisen,Neuigkeiten — Tags: , , , , — Martin @ 8:36 pm

Da es ja doch nun noch einige Leute gibt welche ab und an auf dieser Seite vorbei schauen, möchte ich mich einmal aus meinem kleinen Wanderurlaub melden.
Ich befinde mich schon wieder auf dem Rückweg, von meinem Primärziel Finnisch-Lappland musste ich mich schmerzlich trennen, einfach unbeschreiblich, unbeschreiblich Menschenleer, atemberaubende Natur.

Leider hat mich die Zivilisation wieder, ich befinde mich gerade in einer Jugendherberge (Vandraheim) in Östersund (Schweden). Selbst diese 40K Einwohnerstadt ist schon zuviel nach 3 Wochen Finnisch-Lappland. Zudem muss ich mir gerade das Geheule eines jungen deutschen Mannes anhören, welcher gerade mit seiner Mutter telefoniert: Moor ist nass (Nein ….), Nebel macht Sachen nass (Nein …), Abends wird es dunkel und kalt (nein …), Ein Rucksack muss man den ganzen Tag tragen (Nein …) Wahnsinn was manche Menschen so in ein paar Tagen in Mittelschweden lernen …

Ich habe äußerst differenzierte Eindrücke aus Skandinavien mitgenommen, besonders die unterschiedliche Mentalität der drei großen Bevölkerungsgruppen (Finnen, Schweden und Norweger), könnte nicht größer sein. Am wohlsten habe ich mich ohne Frage in Finnland gefühlt. Die Finnen sind wahrlich auf dem Boden geblieben, was man von den anderen Nationen nicht wirklich sagen sagen kann. Finnland hat mich von der Mentalität sehr an Island erinnert, Norwegen und Schweden erinnern mich eher an einem USA-Deutschland-Mix aus Hektik und Arroganz.

Statistik: In den letzten vier Wochen habe ich ca. 200KM per Fuß zurückgelegt und ca. 4000Km per Auto. Fünf Nationalparks habe ich bewandert: Oulanka, Urho-Kekkonen, Pallas (alle drei Finnland), Muddus und Skuleskogen (beide Schweden). Meine Ausrüstung hat alles gut überstanden, allerdings gibt es jede Menge Optimierungspotenzial (Zelt, Klappspaten). ABER: Eine ausführliche Ausrüstungskritik wird folgen, es sei allerdings schon einmal erwähnt, dass sich der Wasserfilter als unerlässlich herausgestellt hat und mein neuer Gaskocher mich absolut positiv überrascht hat; das Gummistiefel echt praktisch in Finnland sind, Gammaschen nie vergessen werden sollten und Expeed-”expeditions”-Luftmatratzen kacke sind!
KO-Pefferjetspray zur Bärenabwehr ist verschlossen geblieben …

Jetzt geht es noch einmal an die norwegische Grenze, einige Natureindrücke sammeln und vlt. schon einmal den Kungsleden begutachten, welchen ich mir (wenn auch noch nicht fest). für nächstes Jahr vorgenommen habe. Danach noch ein kurzer halt in Stockholm und Malmö.

bis später

June 16, 2011

Zertifikat erneuert

Filed under: Der Rest — Martin @ 6:02 pm

Das SSL-Zertifikat von meet-unix.org wurde aktualisiert. Betroffen sind Nutzer von Subversion, Jabber und natürlich HTTPS.

Weitere Infos sind hier zu finden.

May 12, 2011

12. Deutscher IT-Sicherheitskongress

Filed under: Bildungsreisen,Neuigkeiten — Tags: , , , , , — Martin @ 6:13 pm

Vom 10. bis zum 15. Mai diesen Jahres fand der, durch das Bundesamt für Sicherheit in der Informationstechnik veranstaltete, Deutsche IT-Sicherheitskongress zum 12. mal in Bonn statt. Der diesjährige Slogan lautete „Sicher in die digitale Welt von morgen“, als Hauptthemen waren Cloud-Computing und der neue elektronische Personalausweis annonciert.
Ich habe dem Kongress am 10. sowie am 11. Mai beigewohnt und möchte meinen Eindruck von diesen beiden Tagen kurz schildern.
Erstmal ist es ratsam alles über sonstige IT-Sicherheitstagungen oder ähnliche Veranstaltungen zu vergessen, der deutsche IT-Sicherheitskongress (DISK) hat sehr wenig mit Konferenzen zu tun die ein ähnliches Thema aufgreifen. Der DISK grenzt sich sicher am meisten von anderen Veranstalltungen, wie dem Chaos Communication Congress, der SigINT oder auch der FrosCon, durch seine Zielgruppe ab. Mich hat ein mittelschwerer Schock getroffen, als ich sah, dass die nicht-Schlipsträger in der Audienz nur einen kleinen einstelligen Prozentwert ausmachten. Auch die Keynotes (von denen es am ersten Tag gleich vier hintereinander gab) erinnerten an politische Reden vor dem Parlament, aber nicht an überzeugende und richtungweisende Ansprachen mit sachlicher Tiefe, eigentlich wurde die gleiche Thematik viermal wiederholt. Es kann schon sehr einschläfernd sein, wenn von den Vortragenden in Sachen Datenschutzlecks immer wieder hintereinander die selben Beispiele und Vorsätze offeriert werden.
Aber auch über die sonstigen Beiträge waren nicht sehr fesselnd, wenn auch schlagkräftig durch häufige Verwendung von kräftigen aber hohlen Phrasen. Am informativsten waren sicherlich die Vorstellungen von Projekten, welche durch das BSI in Auftrag gegeben wurden (.z.B. Anti-Botnetz-Beratungszentrum und Projekt Janus). Die Beiträge mit dem höchsten (Technik-)Niveau waren sicherlich die sechs studentischen Beiträge, einer dieser Beiträge wird mit dem sog. „Best Student Award“ belohnt, wobei sich auch da eine Farce anbahnt: Von fünf Studentischen Beiträgen die ich besuchte, stellte sich heraus, dass lediglich zwei Referenten noch Studenten sind. Der Rest hat lediglich seine Diplomarbeiten vorgestellt und hofft wohl auf den „Best Student Award“, obwohl Sie (zum Teil schon sehr lange) in Lohn und Brot bei einem Unternehmen stehen. Als besonderen studentischen Beitrag möchte ich explizit das Projekt RIPS nennen, aus meiner Sicht den „Best Student Award“ wert.
Der zweite Tag begann mit einem Vortag über Cloud-Computing vom Microsoft-Deutschland Geschäftsführer Ralph Haupter, wie gewohnt reich an Buzz-Words „coolen“ englischen Begriffen und Totschläger wie „Security“,“Privacy“ und “Accessibility“. Anschließend folgte eine Podiumsdiskussion, wo der Datenschutzbeauftrage des Landes Schleswig-Holstein Dr. Weichert Herr Haupter tüchtig Paroli bot, indem er schwächen im Cloud-Computing-Konzept aufzeigte und eine Verwendung in Behörden die mit Bürgerdaten hantieren strikt ablehnte. Moderiert wurde die Diskussion von Dr. Müller-Schmid von Dradio-Wissen; die beiden anderen Teilnehmer (Chef des BSI und ein Vertreter eines Interessenverbandes) hätten der Diskussion mangels Informationsgehalt des Gesagten auch fernbleiben können.
Da man bei einen Kongress mit lediglich zwei Vortragssälen und einem Programm das 16:30 endet nicht die gewünschte Themenauswahl hat scheint klar zu sein, aber das es beim Ausfall eines Referenten keinen Ersatz gibt oder improvisiert wird ist eher Traurig (besonders bei einem Eintrittsgeld von 320-600 Euro). So geschehen bei Herr Mishra (Probleme bei der Einreise nach Deutschland), welcher den “protected Mode” im neuen Adobe-Reader vorstellen wollte. Den Vogel im Themenbereich „elektronischer Personalausweis“(ePA) hat sicherlich Frau Dr. Bräunlich abgeschossen. Sie referierte über die Möglichkeit den ePA bei elektronischen Wahlen einzusetzen, sie scheint sich wohl nicht ausgiebig mit Für und Wieder dieses Themas auseinandergesetzt zu haben, da sicher alle schon formulierten Argumente gegen Wahlcomputer auch bei ihrem „Forschungsprojekt“ zutreffen. Dementsprechend gab es auch Anmerkungen von der nicht-schlipstragenden Fraktion des Auditoriums.
Der Höhepunkt (auch so im Programm vermerkt) des DISK sollte eine „Live-Hacking“ Vorführung von zwei BSI-Mitarbeitern sein. Was allerdings wirklich geschah, war lediglich eine Vorführung von zwei bekannten und älteren Sicherheitslücken, die mithilfe von Exploits des Metasploit-Projektes vorgeführt wurden. Durch Ausnutzung dieser beiden Lücken war jeweils ein Remote-Zugriff auf das Opfer möglich, sodass das Ziel, die Schlipsträger zum „OH“ rufen zu bewegen, erfüllt war.

Genug der kritischen Worte! Auch wenn dies sicherlich mein letzter Besuch des ca. zweijährig stattfindenden Kongresses war, so hat man dort durchaus die Möglichkeit interessante Menschen zu treffen und sich sachlich zu unterhalten, sei es nun mit einem Studenten, welcher eines der kontingentierten Studententickets erhalten hat (wie ich, Preis 50 Euro), dem Mitarbeiter einer Bundesbehörde wie der Bundesnetzagentur oder sogar Mitarbeitern aus dem Stab des Bundesdatenschutzbeauftragten. Lobenswert ist auch ein professionell gestalteter Tagungsband in dem alle gehaltenen Vorträge enthalten sind und welcher im Preis mit inbegriffen ist.

April 13, 2011

apt-offline

Filed under: how to's — Tags: , , , — Martin @ 6:42 pm

Ein wirklich hilfreiches und nützliches Werkzeug, besonders für Trafficthreshold geplagte UMTS-Nutzer mit einer Debian testing/unstable (o.ä.) installation, ist apt-offline. Es kann über das Debian-Repository installiert werden, oder für Windows heruntergeladen werden.

Beispielszenario

Ich bin UMTS-Nutzer habe aber mehrmals die Woche Zugang zu einem Rechner der an einem flotten Internetanschluss hängt (z.B. mit Windows). Über meine UMTS-Verbindung habe ich eine Informationsübertragungsbegrenzung von 5 GiB/Monat, möchte aber dennoch debian/testing verwenden für welches das Debian-Team auch mal gerne täglich mehrere hundert MiB an Paketen zur Verfügung stellt. Dank apt-offline kann ich nun eine Signaturdatei auf meinem Debian-Rechner erstellen und die Tatsächlichen Pakete dann auf der Windows-Kiste herunterladen. Das ist schnell, einfach und ich belaste mein Traffickonto nicht!

Debian:
# aptitude update $$ apt-offline set plop.sig
Signaturdatei wird mit den Daten aus der apt-Datenbank erstellt

Win:
C:\Python26\apt-offline> md debs
C:\Python26\apt-offline> python apt-offline get -d debs -t 2 plop.sig

Auf Grundlage der Signaturdatei plop.sig werden die Pakete in das Verzeichnis debs heruntergeladen. Nun das Verzeichnis deb auf den Debian-Rechner überführen und

Debian:
# apt-offline install /root/debs && aptitude upgrade
apt-offline die Daten in das /var/cache/apt/archives Verzeichnis kopieren lassen, damit dann aptitude die Pakete nur noch zu installieren brauch.

Apt-offline ist in Python geschrieben (benötigt mindestens Version 2.5), was ja auf fast jedem Linuxrechner zu finden sein sollte, aber bei Windows sieht das anders aus. Ich empfehle daher Python 2.6 da diese Version unter Windows 2000 bis hin zu Win7 ohne Probleme läuft.

April 10, 2011

hide your data

Filed under: how to's,technik — Tags: , , , — Martin @ 10:27 am

Immer wieder wird durch Contentfilter (GenuGate, McAfee,IT-Watch, …) versucht (sofern die Filter nicht nur auf die Dateiendungen achten) bestimmte Dateitypen zu blocken, sodass diese nicht in das Firmennetz gelangen können. Dies ist insofern sinnvoll, da man 95% der Nutzer damit abschreckt und eine gewisse Pseudosicherheit vorgaukelt. Für sogenannte “Poweruser” kann es aber auch hinderlich sein, wenn man sich seine Arbeiten nicht in dem benötigten Format nach Hause oder an einen externen Rechner senden kann und auf die (eventuell) beschränkten Mittel in der Firma angewiesen ist.

Aus diesem Grund möchte ich heute ein kleines Tool vorstellen, es nennt sich steghide und arbeitet nach dem Prinzip der Steganographie und verschlüsselt die eingebetteten Daten zusätzlich mit einem symmetrischen Kryptoalgorithmus. Steghide unterstützt leider als einziges sinnvolles Containerformat JPG, aber dieses wird von den wenigsten mir bekannten Contentfiltern bei Firmen/Behörden o.ä. geblockt.

Verwendung

Die Verwendung ist denkbar einfach, steghide besitzt mehrere Modi:

  • info : Anzeige der eingebetteten Daten sowie die Maximalgröße der einzubettenden Daten
  • embed: Modi zum Einbetten und Verschlüsseln der einzubettenden Daten
  • extract : Extrahieren und Entschlüsseln der eingebetteten Daten

In diesem Bild lassen sich insgesamt 331,1 KB an Daten verstecken. Mit folgendem Befehl lässt sich das mit dem Parasit gnuplot.pdf (256KiB) bewerkstelligen, da steghide gegen libmcrypt gelinkt ist, hat man sogar die Qual der Wahl welchen Verschlüsselungsalgorithmus man verwenden möchte, ich entscheide mich für Twofisch.

steghide embed -cf Hund_Katze.jpg -ef gnuplot.pdf -e twofish
Man wird zur Eingabe der Passphrase aufgefordert und die Datei Hund_Katze.jpg wird mit den eingebetteten Informationen ersetzt: parasitäre Bilddatei

Möchte man den Parasiten wieder extrahieren reicht folgender Befehl:
steghide extract -sf Hund_Katze_Parasit.jpg -xf dokument.pdf
[update]Das Passwort lautet: 1234567890 [/update]

Achtung

JPG-Dateien enthalten sogenannte Exif- (und Andere) Informationen, die Auskunft über Herkunft, Autor, Rechner, Bearbeitungsprogramm und Aufnahmedatum geben. Um lediglich die Bildinformationen in einem .JPG zu behalten empfehle ich folgendes Werkzeug mit dem entsprechendem Parameter:

jhead -purejpg Hund_Katze.jpg

February 11, 2011

http-header Filterung beim großen Bruder

Filed under: politik,Wichtig — Tags: , , — Martin @ 1:45 pm

In dem Laden wo ich gerade als Sklave diene, kam irgendein schlaues Kerlchen auf die Idee, eine clientseitige HTTP-header Filterung einzuführen Damit man mit keinem anderen Browser als dem 10 Jahre alten und sicherheitskritischen IE6 in Netz kann. Gibt es denn keine anderen Probleme? Nein! Denn wenn es für 3000 Nutzer schon kein IT-Sicherheitskonzept gibt und dafür Generation 50+ Internetausdrucker zuständig sind, brauch man sich auch nicht wundern…
Naja, jemand kam halt auf die Idee diese Filterung in ihrer vorkonfiguriertem FIrewall zu aktivieren.
Genug aufgeregt, diesen Filter zu umgehen kostet mich rund 1 Minute Zeit:

1. In der Firefox-Konfiguration (about:config) folgende neue Variable vom Typ String hinzufügen: general.useragent.override (v. 3.0.6, bei neueren Firefox-Versionen: general.useragent.extra.firefox)
2. Dieser Variable z.B. folgenden Wert zuweisen: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) (IE6 mit w2k)

January 20, 2011

raid, der alte weg (squeeze)

Filed under: how to's,technik — Martin @ 7:45 pm

Nachdem mir Grub2 bei meinem neuen MD-Raid-System ein Strich durch die Rechnung gemacht hat, habe ich mich halt für die gute alte /boot-Partition entschieden. Nachdem erstellen des neuen Partitionslayout auf der neuen Festplatte, dem erstellen des Raid-Arrays und dem anschließenden kopieren aller Daten auf die neuen Dateisysteme, musste ich leider feststellen, dass sich Debian-Squeeze nicht von einem degraded-Array booten lässt. Der initramfs wurden die benötigten Kernel-Module mitgegeben und auch eine aktuelle mdadm.conf existiert, dennoch möchten die Skripte nicht meine /dev/md0-Root-Partition erkennen und einbinden.
Der erste Lösungsansatz bezog sich auf den Fakt, dass es sich um ein degraded-Array handelt und so habe ich dem Kernel folgenden Parameter übergeben:

md-mod.start_dirty_degraded=1

ohne Erfolg. Nach einigen Probieren und der Lektüre der initramfs-Skripte, bin ich zudem Schluss gekommen, dass eigentlich alles funktionieren müsste…
Letztendlich hat nur folgender mdamd-Aufruf am Ende des Skripts /usr/share/initramfs-tools/scripts/local-top/mdadm geholfen:

/sbin/mdadm --assemble --scan --auto=yes
geholfen. Das hätte eigentlich genau dieses Skript erledigen sollen, doch genau dazu kommt es nicht; wo genau das Skript die falschen Entscheidungen trifft konnte ich nicht herausfinden.

Auch ein normales raid1-Array konnten die initramfs-Skripte nicht einbinden, obwohl die Partitionen auf den Typ 0xfd gesetzt sind und eine saubere mdadm.conf existiert! Somit verbleibt diese unsaubere Lösung in meiner Initramfs.

January 17, 2011

Grub2: “Error: fd0 read error”

Filed under: how to's,technik — Martin @ 10:37 pm

Vor einiger Zeit hat der smartd-Dienst auf meiner Debian-GNU/Linux-Workstation eine Änderung gemeldet, der Reallocated_Sector_Count wurde um einen Wert inkrementiert (auf 1). Das bedeutet, dass ein Sektor nicht mehr gelesen werden konnte und ein Ersatzsektor aus dem Ersatzsektorvorrat der Festplatte die LBA-Adresse des defekten Sektors zugewiesen bekommen hat. Dieser Fehler deutet häufig auf einen mittelfristigen Ausfall der Festplatte hin, wobei ich bei Ausfall Datenverlust meine.

Also beschloss ich eine weitere Festplatte zu kaufen und diese dann, zusammen mit der älteren, in einem Software-Raid1-Verbund laufen zu lassen. Gesagt getan, eine weitere Seagate gekauft, Modell 7200.12.
Wichtig zu erwähnen wäre hier, dass auf der Festplatte mein / zu finden ist, eine weitere /boot-Partition ist nicht vorhanden.

Nun hat Grub2 ein super Feature von seinen Entwicklern geschenkt bekommen: natives booten von einer GNU/Linux MD-Raid – Partition! Super Sache, bei einem Festplattenausfall bootet das System dennoch ohne Probleme und man wird dann lediglich per Mail informiert das eine Platte im Raidverbund Fehler wirft/ausgefallen ist. Nach dem Erhalt der Platte habe ich mich schnellstmöglich an die Konfiguration begeben, jedoch musste ich nach einiger Zeit feststellen, dass es gar nicht so einfach ist … Grub hat mir schon manchmal ein Strich durch die Rechnung gemacht, aber meistens konnte ich es noch halbwegs wieder hinbiegen.

Hier mal ein kleiner Abriss der Arbeiten, die erledigt werden mussten, um das Raid1 lauffähig und viel wichtiger bootfähig zu bekommen (ich habe mich da teilweise an die Anweisungen aus dieser Anleitung gehalten, besonders was die Grub2 Konfiguration angeht.):

1. Neue Platte nach neuen Bedürfnissen Partitioniert (lvm ist meines erachtens nicht zwingend notwendig bei einer so kleinen Installation)

2. Neue Raid-Arrays erstellt, mit einer Platte als missing(derzeitige Systemplatte) erstellt und anschließend mit ext4 formatiert.
mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1

3. Einbinden der neuen Partition und Kopieren der Daten auf der Systempartition auf das neue Raid-Array:
mount /dev/md0 /mnt/newroot/
cp -dpRx / /mnt/newroot/
mount --bind /proc /mnt/newroot/proc
mount --bind /dev /mnt/newroot/dev
mount --bind /sys /mnt/newroot/sys
chroot newroot

4.Innerhalb der Chroot-Umgebung muss man zuerst die Datei device.map neu erstellen, damit Grub alle neuen Fesplatten/Array erkennt.
grub-mkdevicemap --no-floppy
Vorsicht! MD-Raid-Arrays werden müssen per Hand nachgetragen werden z.B. diese Zeile:
/boot/grub/device.map:
(md0) /dev/disk/by-id/md-uuid-11bb8dd5:95973df2:95ef38ca:33f5f579
Welche UUID das Array besitzt erfährt man hierdurch:
mdadm --detail /dev/md0

5. Die Grub Konfiguration habe ich aus oben genannten How-To übernommen etc/grub.d/09_swraid1_setup:

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry 'Debian from RAID1' --class gnu-linux --class gnu --class os {
        recordfail
        insmod raid
        insmod mdraid
        insmod ext2
        set root='(md0)'
        linux   /boot/vmlinuz-2.6.32-5-amd64 root=/dev/md0 ro  nouveau.modeset=0
        initrd  /boot/initrd.img-2.6.32-5-amd64
}

update-grub2
grub-install /dev/sdb --no-floppy

6. Nun ist das System meines Erachtens für einen Neustart von der neuen Platte bereit:

– - – FAIL – - –

Error: fd0 read Error

…. mehr sagt Grub2 nicht mehr … fd0? Ist doch überhaupt nicht in der device.map?

Nachfolgende Bugs beschreiben das Problem, das blöde ist nur, dass diese nicht gefixt werden und die angegebenen Workarounds nicht funktionieren. Alles probiert, vom Deaktivieren des Controllers, des Floppy-Laufwerks, des USB-Controllers – nichts hat geholfen.
Das Problem betrifft nur die raid und lvm Module von Grub2 und das auch nicht auf allen Rechnern, allerdings sind es doch gerade die Module die Grub2 so interessant machen, insbesondere für den professionellen Einsatz!

Bug-Historie
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=550083
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/568720
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/396564

Derzeitig verwendete GRUB2-Version: 1.98+20100804-13 (Debian Squeeze – unstable)

January 9, 2011

Aus der Rumpelkiste

Filed under: funny things,technik — Martin @ 5:34 pm

Heute habe ich ein bisschen in Angleslayers Rumpelkiste gestöbert, da bin auf folgenden Eintrag gestoßen. Da hat mich die Neugier gepackt, und ich wollte wissen was dort codiert ist. Leider war der Code, den Angleslayer im Nachfolgenden Post verfasst hat, für mich unslesbar. Scheint sich wohl um die Skriptsprache eines exotischen Betriebssystems zu handeln ;).

Habe dann mal das Problem, einer ASCII-Kodierten Textdatei voller 0..F zu lesbaren Text umwandeln, in Pascal gelöst:

Geht sicher auch kürzer und weniger kompliziert, aber soll für diese Zwecke reichen.

Ich weiß jetzt über die größte Hollywoodlüge bescheid, danke Angleslayer.

program HextToASCII (input,output);
{reads PSEUDO-HEX from STDIN}
    var
    inHex : text;
    procedure convert (var inFile : text);
    {converts a ascii-formated File with a bunch of Hex-digits to readable text}
        type
        tIndex = 0..maxint;
        tcurrentDec = array [tIndex] of integer;
        var
        i : integer;
        currentDec : tcurrentDec;
        aktChar : char;
        function toDec ( inChar : char ) : integer;
        { got a Hex-char an gives a Dec integer }
            const
            HEXVAL='0123456789ABCDEF';
        begin
           toDec := pos(upcase(inChar),HEXVAL) -1 ;
        end;
    begin
        i := 1;
        while (not eof(inFile)) and (i < maxint) do
        begin
            read(inFile,aktChar);
            if (aktChar = char(10)) and odd(i) then
            begin
                {if you want a LineFeed(unix only)}
                {write(char(10));}
                i := i - 1;
            end
            else
            begin
                currentDec[i] := toDec(aktChar);
                    if not odd(i) then
                        write(char((currentDec[i-1] * 16 ) + currentDec[i]))
            end;
        i := i + 1;
       end
    end;
begin
    Assign(inHex,'');
    Reset(inHex);
    convert(inHex);
    writeln();
end.
Older Posts »

Powered by WordPress