Archive for the ‘howto’ Category

Eclipse – Markierten Text über sysout ausgeben

Donnerstag, Juni 2nd, 2011

Hallo,

wer viel programmiert und auch noch mit eclipse, der kommt um shortcuts nicht rum. Wer innerhalb einer Methode “syso” eingibt erhält direkt: “System.out.println();”

Das ist ja schon wirklich sehr gut, aber oft markiert man einen Code-Schnippsel und will diesen ausgeben. Also ausschneiden, “syso” eintippern und dann in der Klammer wieder einfügen.

Noch schneller geht das ganze, wenn man den Text markiert, dann STRG+Leertaste drückt, “syso” eintippt und dann per Enter-Taste bestätigt und voila hat man den markierten Text oder Code-Schnippsel in einem gültigen System.out.println-Statement.

Have fun!

Arch Linux mit 3 Festplatten (System und Datenraid) – Verschlüsselt und LVM

Sonntag, April 24th, 2011

Der Artikel dient mir als Doku und ist auch so geschrieben, falls ihr einen Schritt nicht versteht, fragt nach oder denkt selbst drüber nach. Fehler bessere ich gerne aus und probiert das ganze erstmal in einer virtuellen Umgebung aus und wenn es wirklich an die Installation geht, macht vorher Backups!

Ausgangssituation:

Ein Rechner mit drei frischen Platten, eine Platte für das System und die beiden anderen Platten arbeiten in einem Raid 1 Verbund gespiegelt und sollen das /home-Verzeichnis werden. Natürlich wird alles auch verschlüsselt, bis auf die /boot Partition.

Installations-CD rein und dann Arch Linux starten und der erste Befehl den ihr eingebt ist:

# km

um die keymap und die Schrift auszuwählen, in meinem Fall quertz/de und als Schrift Lat2-Terminus…

Jetzt geht es daran die Festplatten vorzubereiten. Mit fdisk -l könnt ihr schauen wie eure Festplatten gemapped wurden. Normalfall: /dev/sda /dev/sdb und /dev/sdc

/dev/sda wird formatiert in eine kleine circa 200MB große /boot-Partition und der Rest wird für die /root-Partition genutzt. Ich lasse immer noch ein paar GB Platz frei, man weiß ja nie was man noch so braucht. Die beiden anderen werden auch formatiert, aber jeweils mit dem vollen Platz. Und los gehts mit:

# cfdisk /dev/sda

/dev/sda1 muss bootfähig gemacht werden mit “boot” (siehe Bild)Vergesst nicht dass ihr erst “write” und dann “quit” ausführen müsst, sonst sind die Änderungen nicht wirksam.

So sollte das Partitionsschema dann aussehen für /dev/sda

Jetzt die beiden anderen Festplatten schnell formatieren mit dem gesamten Speicherplatz.

# cdfisk /dev/sdb
# cdfisk /dev/sdc

New > Primary > all space > write > type “yes” > quit > ready

Mit fdisk -l könnt ihr wieder schauen was ihr so angestellt habt.

Jetzt geht es an das Datenraid, ein Raid1, d.h. wir spiegeln die Daten. Ein Raid ist kein Backup, also macht bitte zusätzlich noch Backups!!!

Wir können jetzt mit lsmod schauen ob raid1 und dm-crypt schon geladen sind, ansonsten laden wir die Module einfach mit:

modprobe raid1
modprobe dm-crypt

Und jetzt legen wir das Raid an. Ziemlich selbsterklärend der Befehl:

# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

Hier können natürlich auch mehrere Platten und ein anderes Raid-Level genutzt werden. Die Bezeichnung /dev/md0 werden wir jetzt noch ab und an verwenden.

Verschlüsselung

Jetzt verschlüsseln wir die /root-Partition und dann das Raid mit folgenden Befehlen:

# cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/sda2
# cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/md0

Ihr könnt selbst entscheiden, welchen Verschlüsselungsalgorithmus ihr wählt, aber vergesst nicht ein sichers Passwort zu nutzen, sonst bringt euch die beste Verschlüsselung nichts.

Jetzt öffnen wir die frisch verschlüsselten Partitionen mit:

# cryptsetup luksOpen /dev/sda2 system
# cryptsetup luksOpen /dev/md0 raid

system und raid sind frei gewählte Bezeichnungen, hier könnt ihr auch schreiben was ihr wollt, nur müsst ihr euch das merken, da wir die Namen wieder verwenden.
Jetzt setzen wir auf die Verschlüsselung noch LVM auf:

# lvm pvcreate /dev/mapper/system
# lvm vgcreate vg_system /dev/mapper/system
# lvm pvcreate /dev/mapper/raid
# lvm vgcreate vg_raid /dev/mapper/raid

Jetzt haben wir zwei Gruppen, eine für das System und eine für das Raid. Zuerst gehen wir an die Gruppe vg_system:
Der Befehl lvcreate fügt der Gruppe (letztes Wort im Befehl), hier vg_system eine logische Partition hinzu.
Vorsicht: Kopiert bitte nicht einfach die Befehle, achtet u.a. auch auf die Größenangaben!
Es werden also root, swap und tmp angelegt, auch hier könnt ihr noch mehr hinzufügen:

# lvm lvcreate -L 2GB -n root vg_system
# lvm lvcreate -L 512MB -n swap vg_system
# lvm lvcreate -L 512MB -n tmp vg_system

Jetzt geht es an das Raid:

# lvm lvcreate -l 100%FREE -n home vg_raid

Jetzt haben wir schon einiges geschafft.
Los geht es also mit dem eigentlichen Setup:

# /arch/setup

Hier dem Installer folgen bis “3 Prepare Harddrive”
Hier die Screenshots wie ihr vorgehen müsst.

Ich habe keine weiteren Optionen oder Labels oder so angegeben. Die /boot-Partition ist somit fertig vorbereitet.
Jetzt geht es an die /root-Partition und danach analog weiter mit swap und tmp.


Wählt jetzt ext4 oder reiserfs…


Jetzt swap wählen:

dann tmp und anschließend das raid:

und /home wählen:

Am Ende sieht das Schema dann so aus:

mit den Pfeiltasten nach unten bis “done” und dann bestätigen.

Jetzt mit Punkt 4 weiter machen: Select Packages und dann installiert ihr die Packages nach Punkt 5. Danach gehen wir in ein anderes Terminalfenster mit Alt+F3 und loggen uns als root ein.
Jetzt lassen wir mdadm unser Raid analysieren und speichern es erstmal als test ab:
Wir navigieren in den entsprechenden Ordner:

# cd /mnt/etc 

und dann:

# mdadm --examine --scan >> test

dann können wir uns das Ergebnis mit:

# cat test

ansehen und löschen die alte mdadm conf und nennen die Testdatei um:

# rm mdadm.conf
# mv test mdadm.conf

Jetzt die crypttab editieren:

nano /mnt/etc/crypttab

hier am Ende der Datei folgendes eintragen, damit das Raid-Array auch automatisch gemountet wird:

raid /dev/md0 EUERPASSWORT

Später könnte man das ganze noch so anpassen, dass die Partition per keyfile entschlüsselt wird und vieles mehr.
Jetzt zurück zum Installer mit Alt+F1 und das System konfigurieren.
Wählt nano als Editor, außer ihr kennt und könnt! mit den anderen umgehen.Hinweis zu nano: mit strg+w sucht ihr, mit strg+o schreibt ihr und mit strg+x verlasst ihr den nano.

Wir editieren die rc.conf, damit lvm genutzt wird:
rc.conf
USELVM=”yes”
in der /etc/mkinitcpio.conf muss folgende Zeile angepasst werden:
Hinweis: Reihenfolge ist zu beachten!
HOOKS=”base udev autodetect pata scsi sata keymap usbinput mdadm encrypt lvm2 filesystems”


Jetzt den Bootloader Grub auf /dev/sda installieren, man wird dann automatisch aufgefordert die Konfigurationsdateien zu überprüfen und genau diese müssen wir anpassen:

Ihr müsst jetzt in der kernel-Zeile noch das cryptdevice eintragen (auch bei Fallback!):

kernel /vmlinuz26 root=/dev/mapper/vg_system-root cryptdevice=/dev/sda2:vg_system ro

Datei speichern und schließen, danach wird man aufgefordert das boot device zu wählen:


That’s it!

Jetzt heißt es reboot einzutippen oder init 0 um den Rechner auszuschalten.
Have fun!
Zum Schluss ist noch zu sagen, dass man je dm-crypt device bis zu 8 Passwörter oder Keys hinterlegen kann. Dies sollte man ausnutzen! Und man kann die crypt-header sichern, auch dies ist zu empfehlen, falls mal was schief läuft. Hilfe findet ihr dazu im arch wiki!

Quellen:
Arch Wiki
http://yannickloth.be/blog/2010/08/01/installing-archlinux-with-software-raid1-encrypted-filesystem-and-lvm2/
http://www.pindarsign.de/webblog/?p=767

Great JavaScript Performance Video

Dienstag, März 30th, 2010

Hier ist ein sehr cooles JavaScript Video. Es geht um Performance von JavaScript und als Web-Entwickler kommt man nicht an JavaScript vorbei und v.a. ist JavaScript nicht böse, auch wenn manche immer noch der Meinung sind. Ihr habt den Knall nicht gehört…

Have fun (via)

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…)