RAID 5 mit Verschlüsselung und Samba aufsetzen

Ein NAS mit einem RAID 5, einem Samba Server und Verschlüsselung auf Basis von Ubuntu wäre doch eine schöne Sache. Um das zu bewerkstelligen lädt man sich den Ubuntu Server unter http://www.ubuntu.com/server herunter, brennt ihn auf eine CD uns startet diese auf dem entsprechenden Rechner.

Dort wählt man dann Deutsch als Sprache aus und geht im Menü auf Ubuntu Server installieren. Nach einigen Fragen bezüglich der Tastatur- und Ländereinstellungen geht es dann weiter mit den Partionseinstellungen. An dieser Stelle erzeugen wir ein neues RAID 5. Dazu wählen wir als Partionsmethode manuell aus und gehen anschließend auf den Menüpunkt Software-RAID konfigurieren. Sollte es bereits Partionen geben so sollten diese vorher gelöscht werden. Sollte hierbei noch ein Software RAID eingerichtet sein, so muss dieses zuerst unter Software-RAID konfigurieren gelöscht werden (MD Gerät löschen).

Nachdem wir Software-RAID konfigurieren ausgewählt haben gehen wir auf MD Gerät erstellen und wählen dort RAID5 aus. Danach wird man nach der Anzahl der aktiven Geräte (sprich Festplatten) gefragt. Hier gibt man die Anzahl der Festplatten an welche man für das RAID verwenden will. Die Festplatten sollten dabei die gleiche Größe aufweisen (sonst wird die kleinste Festplatte als kleinster Nenner angesehen). Nach den aktiven Geräten kann man die Reservegeräte (Hot Spare) definieren und anschließend angeben welche Festplatten in das RAID genommen werden sollen.

Nachdem man das ganze bestätigt hat und die RAID Konfigurationsseite mittels Fertigstellen verlassen hat, definiert man noch den Einhängepunkt des RAID5 Gerätes (/) sowie das Dateisystem (ext4) und beendet die Partitionierung. Zusätzlich kann man noch eine Swap Partion anlegen, muss dies aber nicht tun (je nachdem wie viel Arbeitsspeicher in dem Gerät steckt).

Während der Installation wird man dann noch gefragt ob man Mail konfigurieren möchte. Dort wählt man nur lokal aus und fährt mit der Installation fort bis man seinen Nutzernamen und sein Passwort vergeben muss. Auf die Frage ob der persönliche Ordner verschlüsselt werden soll antwortet man mit Ja. Dann fährt man mit der Installation fort bis man gefragt wird ob man bestimmte Pakete vorinstallieren möchte. Hier wählt man OpenSSH server und bestätigt das ganze.

Nach der Installation erstellen wir mittels mkdir /home/seeseekey/share den Ordner in dem später unserer Daten liegen und installieren mittels:

sudo apt-get install mc htop samba swat

den Samba Server (sowie das Webinterface), htop und den Midnight Commander (letztere nur der Bequemlichkeit halber). Mittels

sudo smbpasswd -a seeseekey

erzeugen wir einen neuen Sambabenutzer. Dabei ist zu beachten das der betreffende Sambanutzer im System schon als Benutzer existieren muss. Am besten legt man solche Nutzer mittels

sudo adduser –no-create-home –disabled-login –shell /bin/false seeseekey

an. Diese Nutzer haben dann kein Homeverzeichnis und können sich auch nicht auf dem System einloggen. Nun müssen wir noch einige Dinge an den Dateirechten ändern damit Swat die Samba Config schreiben kann. Dies geschieht auf der Konsole mittels

sudo chown root:admin /etc/samba/smb.conf
sudo chmod 664 /etc/samba/smb.conf

Anschließend starten wir Swat mittels sudo /etc/init.d/openbsd-inetd restart neu. Danach können wir uns mit einem Webbrowser anmelden (http://“IP Adresse“:901 z.B. 192.168.1.15:901). Als Nutzername und Passwort dient dabei der bei der Installation angelegte Benutzer.

Nachdem wir uns verbunden haben können wir unter Globals einige Dinge einstellen z.B. den Namen der Arbeitsgruppe (workgroup). Unter Shares legen wir eine Freigabe an. In diesem Beispiel nennen wir die Freigabe Daten und klicken auf erstellen. In dem sich öffnenden Optionen setzen wir folgende Parameter:

path -> /home/seeseekey/share/
admin users -> seeseekey
readyonly -> No
available -> Yes

und klicken anschließend auf Änderungen speichern.

Nun haben wir ein System welches ein RAID 5 kombiniert mit einem Sambaserver und einer Verschlüsselung bereitstellt. Wenn man den Server startet muss man den Nutzernamen und das Passwort eingeben, damit das entsprechende Nutzerverzeichnis in welchem die Freigabe liegt entschlüsselt wird. Das kann man natürlich auch per SSH machen, allerdings ist die Sitzung (und somit die SMB Freigabe) nur so lange verfügbar wie die SSH Verbindung steht. Eine Anmeldung direkt am NAS (es reicht ja wenn eine Tastatur angeschlossen ist) ist also vorzuziehen.

Ein kleiner Hinweis noch am Rande: Mittels cat /proc/mdstat kann man nach der Anmeldung Informationen über das RAID abfragen.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Network_Attached_Storage
http://wiki.ubuntuusers.de/Software-RAID
http://wiki.ubuntuusers.de/ecryptfs-utils
http://wiki.ubuntuusers.de/SAMBA
http://wiki.ubuntuusers.de/samba_server
http://wiki.ubuntuusers.de/Samba_Server_Swat

MonoDevelop und der Designer

Ich wollte unter MonoDevelop ein Projekt weiterentwickeln welches ursprünglich für .NET in Visual Studio geschrieben wurde. In diesem Projekt wollte ich dann ein Formular bearbeiten. Mein Problem war das ich nicht in den Designer kam. Aber warum nur? MonoDevelop besaß doch einen Designer…

Nach einigem stöbern in der Dokumentation dämmerte es mir. Der GTK# Designer welcher Mono Develop beiliegt ist nicht für WinForms gedacht. Dazu benötigt man den WinForms Designer welcher nicht Bestandteil des Paketes ist. Eine interessante Seite mit Informationen rund um den WinForms Designer gibt es unter http://www.mono-project.com/WinForms_Designer.

SMB Freigaben über SMBNetFS dauerhaft einbinden

Mittels SMBNetFS kann man relativ einfach eine SMB Freigabe in das Dateisystem einbinden. Dazu muss im ersten Schritt (neben der Installation des Paketes smbnetfs) der Nutzer zur Gruppe fuse hinzugefügt werden. Dies geschieht mittels:

sudo usermod -aG fuse seeseekey

wobei der Nutzername entsprechend zu setzen ist. Die Gruppenzugehörigkeit gilt allerdings erst nach der nächsten Anmeldung. Überprüfen kann man das auf der Konsole mit dem Befehl id. Danach trägt man in die .profile Datei welche im jeweiligen Nutzerverzeichnis liegt folgendes ein:

smbnetfs ~/Netzwerk -o uid=1000,gid=1000,umask=0777

Die User- und GruppenID (uid, gid) muss dabei durch die entsprechende ID ausgetauscht werden. Wenn die Freigabe eine Authentifizierung verlangt so erzeugt man die Datei ~/.smb/smbnetfs.conf und trägt in diese folgendes ein:

auth „Nutzername“ „Passwort“

Sollte es Probleme mit den Dateirechten geben so sollte man diese für die conf Datei mittels chmod auf 600 setzen. Danach sollte die Freigabe nach der Anmeldung automatisch eingebunden werden.

Weitere Informationen gibt es unter:
http://wiki.ubuntuusers.de/FUSE
http://wiki.ubuntuusers.de/Samba_Client_SMBNetFS
http://wiki.ubuntuusers.de/Samba_Client_fusesmb

Mit GNU Privacy Guard Dateien auf der Kommandozeile verschlüsseln

Möchte man mittels GPG eine Datei in der Kommandozeile verschlüsseln so gibt man auf der Konsole folgendes ein:

gpg -c geheim.txt

Danach wird man nach dem Passwort gefragt. Verschlüsselt wird in diesem Fall symmetrisch. Entschlüsseln kann man das ganze mittels:

gpg -o geheim.txt -d geheim.gpg

Das schöne an GPG ist im übrigen das es für so ziemlich jedes System zur Verfügung steht. Angefangen bei Linux und Windows bis zu Androidgeräten. Interessanter wäre natürlich eine auf Dateien basierende Verschlüsselung welche sich transparent in das Dateisystem einbindet (sprich ich als Nutzer merke nicht das mit verschlüsselten Dateien gearbeitet wird), aber man wird ja noch träumen dürfen ;)

Möchte man das ganze nicht auf Dateien basierend haben, sondern alle Daten in einem Container transparent einbinden so empfiehlt sich Truecrypt mit welchem das problemlos funktionieren sollte. Auch dieses ist betriebssystemübergreifend verfügbar.

Weitere Informationen gibt es unter:
http://wiki.ubuntuusers.de/gnupg
http://de.wikipedia.org/wiki/GNU_Privacy_Guard
http://wiki.ubuntuusers.de/TrueCrypt
http://de.wikipedia.org/wiki/TrueCrypt

Anno goes Open Source

Natürlich ist dem nicht ganz so wie in der Überschrift versprochen ;) Aber einige Leute haben angefangen eine Engine zu schreiben welche ein Anno ähnliches Spiel bereitstellt, sprich es handelt sich um eine 2D Echtzeitstrategiesimulation welche auf den Namen Unknown Horizons hört. Das Spiel gibt es dabei für Linux und Windows.

Basierend auf der FIFE Game Engine wurde das Spiel immer weiter entwickelt bis zum jetzigen schon ganz ansehnlichen Stand. Das sollte natürlich nicht darüber hinweg täuschen das es sich bei dem Spiel noch um eine Alphaversion handelt. Die offizielle Seite des Spieles ist unter http://www.unknown-horizons.org zu finden.