Posts Tagged ‘howto’

Linux verschlüsseltes Software Raid

Samstag, April 17th, 2010

Die Überschrift habe ich absichtlich etwas offen gehalten, da es kurz um die Installation, einem Test und dann einem gewollten Datenverlust und Rebuild geht.

Mein Testsystem ist eine aktuelle Debian Installation mit einer Festplatte für das System und zwei identischen Festplatten für mein verschlüsseltes Software Raid das ich während der Installation von Debian kinderleicht erstellt habe. Es handelt sich um ein Raid 1, gespiegelt. Es spielt keine Rolle, ob ihr das System per Passwort oder nach der Installation per Flash-Speicher frei schalten lasst.

Wenn dann alles geklappt hat, dann könnt ihr ganz einfach mal testen ob alles glatt gelaufen ist mit:

sudo mdadm -D /dev/mdX

wobei das X für eine Zahl steht, die ihr bei der Installation oder beim booten sehen könnt.

Wichtig ist, dass ihr dann in der Konsole sehen könnt, ob das Raid vollständig ist oder nicht und welche Platte, also /dev/sd[a|b|c|d] etc. angeschlossen ist. (zu lesen ist das als entweder a oder b oder c, also sda oder sdb, etc.)

In meinem Testfall hat mit dem Raid nach der Installation alles gut geklappt und der Konsolen Output zeigt mir, dass mein Raid funktioniert. Jetzt habe ich den Rechner runter gefahren und eine der beiden Platten abgesteckt und wieder gebootet. Jetzt kann ich sehen, dass mein Raid nicht mehr vollständig ist. Anschließend habe ich die abgesteckte Platte an einem Windows System mit NTFS formatiert und anschließend ein paar Daten darauf kopiert und dann wieder an meine Debian Installation angesteckt.

Jetzt muss man eben heraus finden, wie die neue Festplatte intern gemapped wird. Ihr schaut also wieder mit dem gleichen Befehel wie oben angegeben, welcher Buchstabe für die schon vorhandene Festplatte vergeben wurde und dann könnt ihr zum Beispiel in gparted sehen, welchen Buchstaben die neu (wieder) angesteckte Festplatte bekommen hat und ihr solltet die vorhandene NTFS Partition in gparted einfach löschen.

Wenn ihr das geschafft habt, dann geht es wieder ins Terminal und ihr gebt folgenden Befehl für ein Rebuild ein:

sudo mdadm --re-add /dev/mdX /dev/sde

(/dev/sde ist hier nur ein Beispiel!)

und was der Rechner jetzt treibt könnt ihr mit

watch -n .1 cat /proc/mdstat

verfolgen und beobachten. Vielen Dank hier schonmal für diesen Beitrag.

Anschließend habe ich den Rechner wieder runter gefahren und habe die andere Festplatte abgesteckt und wieder gebootet und siehe da, alles funktioniert! Jetzt könnte man natürlich die andere Festplatte abstecken und das gleiche Szenario nochmal durch spielen, aber mir ging es eig. nur darum, ob der Rebuild trotz der Verschlüsselung klappt und ich bin froh, dass alles so einwandfrei funktioniert hat.

Links zu gparted, debian oder mehr wurden deshalb nicht angegeben, da ich erwarte, dass der Leser es schafft, die genannten Seiten trotzdem aufzurufen.

Und immer schön Backups machen, bevor ihr mit wichtigen Daten herum spielt!
Viel Spaß mit Linux, dm-crypt und OpenSource.

PhpDocumentor unter Xampp (Windows 7)

Sonntag, März 21st, 2010

Hallo,

nach einer kleinen Pause soll es jetzt wieder weiter gehen mit hilfreichen Blogeinträgen (jetzt habe ich ja Unterstützung siehe Beitrag vor diesem).

Heute geht es um eine kurze Anleitung, wie man in ein paar Schritten unter xampp(lite) PhpDocumentor installiert und natürlich anschließend nutzen kann.

Ich setze voraus, dass xampp oder in meinem Fall xampplite installiert ist.

Und los gehts:

Als erstes setzen wir mal, falls noch nicht getan php in die PATH-Variable von Windows, d.h. rechts Klick auf den Arbeitsplatz, dann Eigenschaften anklicken und dann “Erweiterte System Einstellungen” (ich nutze kein deutsches Windows, aber so ähnlich müsste der Button heißen). Dann unter Erweitert (Advanced) auf Systemvariablen und dann bei PATH (nicht alles löschen!!!) sondern einfach folgendes hinzufügen:

;C:\xampplite\php

(der Semikolon dient hier als Trenner zwischen den angegeben Pfaden)

Jetzt können wir in der cmd.exe auf alle Programme unter C:\xampplite\php zugreifen, also auch auf PEAR. Erstmal müssen wir PEAR kurz konfigurieren:

 pear config-set data_dir c:\xampplite\htdocs\pear\ 

Ok, jetzt die Installation von PhpDocumentor:

pear install PhpDocumentor

Schwierig oder?

Ok, jetzt müsst ihr natürlich passend kommentierte PHP-Dateien haben dann könnt ihr mit dem Befehl hier loslegen:

phpdoc -t <targetdir> -o HTML:default:default -d parsedir

Have fun und immer schön Code dokumentieren!

apache virtual hosts mit ssl unter linux

Dienstag, Februar 2nd, 2010

Es wird immer wichtiger, dass man Daten nicht einfach so durchs Netz schickt, sondern die Daten verschlüsselt transportiert. Die Lösung ist ein apache, mit ssl und verschiedenen virtuellen hosts. Meine Grundidee ist folgende: schnell und einfach https://<dienstname>:<port> zu implementieren. Dazu braucht es natürlich erstmal eine funktionierende apache Installation. Aber das erkläre ich hier sicher nicht! Und wir gehen noch davon aus, dass wir nicht den Standard Port 443 nehmen wollen, sondern einen beliebigen. Das Ziel ist ja mehrere Seiten/ Dienste zu erstellen.

Zuerst kümmern wir uns um die Zertifikate:

  • sucht euch einen beliebigen Ort, z.B. /tmp/test um dort die Zertifikate zu erstellen und erstmal zu speichern
  • und los gehts:
    $ sudo openssl genrsa -des3 -out <name>-ssl-cert-private.key 1024
    

    ihr müsst nichts eingeben, außer dem Passwort und das natürlich gut merken!

  • ok, dann nehmen wir den erstellten Key und erstellen ein ‘certificate request’:
    $ sudo openssl req -new -key <name>-ssl-cert-private.key -out <name>-ssl-cert-file.pem
    
  • und jetzt erstellen wir noch das selbst-signierte Zertifikat:
    $ sudo openssl x509 -req -days 365 -in <name>-ssl-cert-file.pem -signkey <name>-ssl-cert-private.key -out <name>-ssl-server.crt
    
  • jetzt müssen die Zertifikate an den richtigen Ort kopiert werden:
    $ sudo cp <name>-ssl-server.crt /etc/ssl/certs
    
    $ sudo cp <name>-ssl-cert-private.key /etc/ssl/private
    

Das wars auch schon fürs Erste.

(weiterlesen…)

SSL mit stunnel – https the simple way

Dienstag, Januar 12th, 2010

Hallo,
der eine oder andere Leser hat vielleicht schon mal überlegt einen Webserver zu installieren. Ob jetzt Apache oder lighttpd (oder andere), liegt natürlich bei euch und je nach Anwendungsfall ist der eine oder andere besser geeignet.

Ich will heute nicht auf die Installation eines Webservers eingehen, sondern auf die Installation und Konfiguration von stunnel. Einfach gesagt, statt unverschlüsseltem http ein verschlüsseltes https via Zertifikaten. Ein lauffähiger Webserver wird voraus gesetzt.

Die Anleitung geht von einem Debian Linux oder Ubuntu aus. Stunnel gibt es aber auch für Windows.

Erstmal müssen wir uns um SSL und die Zertifikate kümmern:

sudo openssl req -new -x509 -days 3650 -nodes-out stunnel.pem -keyout stunnel.pem

einfach alle Fragen irgendwiebeantworten und danach per

openssl x509 -subject -dates-fingerprint -in stunnel.pem 

anschauen, was ihr so eingegeben habt. stunnel.pem ist ein frei gewählter Name und kannauch foo.pem genannt werden.
So,jetzt installieren wir stunnel:

sudo aptitude install stunnel4

dann unter “/etc/default/stunnel4″

von ENABLED=0 auf ENABLED= 1

abschließend in  “/etc/stunnel/stunnel.conf” folgendes editieren:


; Certificate/key is needed in server mode and optional in client mode

cert = /etc/stunnel/stunnel.pem
key= /etc/stunnel/stunnel.pem

; Protocol version (all, SSLv2, SSLv3, TLSv1)
sslVersion= SSLv3

; Some security enhancements for UNIX systems - comment them out on Win32
chroot = /var/lib/stunnel4/
setuid = stunnel4
setgid = stunnel4
; PID is created inside chroot jail
pid= /stunnel4.pid

; Some performance tunings
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1

[https]
accept = 443
connect = 8080

Erklärung: accept = stunnel lauscht auf Port 443 und leitet an connect Port, hier 8080 weiter. Ganz am Anfang müssen natürlich die Dateinamen mitden generierten Zertifikaten übereinstimmen.

Jetzt noch ein freundliches

sudo /etc/init.d/stunnel4 restart

und schon müsstet ihr euch per https://localhost/ verbinden können. Es kommt ein kurzer Hinweis mit einem nicht signierten Zertifikat, das müsst ihr annehmen und schonläuft die verschlüsselte Verbindung.

Mehr Informationen über SSL findet ihr bei www.google.de oder www.bing.de< /A> .

Das wars mit https in 10 Minuten.

JavaScript und CSS-Dateien verkleinern

Samstag, September 26th, 2009

Als Web-Entwickler sollte man trotz gängigen Breitband Anschlüssen darauf achten, dass der User nicht zuviel Bytes laden muss. Um seine Seite etwas zu optimieren, kann man mit dem Firebug Plugin YSlow seine Seite analysieren und prüfen, welche Dateien die länsten Ladezeiten haben. YSlow macht zusätzlich aber noch viel mehr und gibt Vorschläge, wie man die Seite optimieren könnte (siehe Guidelines!!!)

Ein Punkt ist zum Beispiel, dass man versucht seine JS- und CSS-Dateien jeweils in eine große Datei packt und am besten auch noch alle Kommentare und Whitespaces entfernt.

Um die besagten Dateien zu komprimieren kann man entweder YUI Compressor oder JSMin nehmen.
Ich gehe hier nur auf JSMin ein:

Installation:

wget http://www.crockford.com/javascript/jsmin.c
gcc -o jsmin jsmin.c

Und los gehts:

./jsmin < bloated.js

oder die komprimierten Zeilen direkt in eine neue Datei schreiben:

./jsmin < bloated.js > minified.js

Das ganze funktioniert auch mit CSS-Dateien. Mit YUI Compressor hat man noch ein paar mehr Möglichkeiten, mir reicht JSMin vorerst jedoch völlig.

Have fun