1024 Ports behalte ich für mich

Unter Linux (und UNIX) kann man die Ports bis 1024 (die sogenannten Well Known Ports) nur dann binden, wenn man über root Rechte verfügt. Das ist natürlich unschön wenn man einen Server z.B. auf Port 80 laufen lassen will, dieser aber keine dementsprechenden Rechte bekommen darf.

So läuft bei mir zum Beispiel ein Etherpad Light auf dem Port 9001. Jetzt wäre es natürlich schön wenn dieser auf dem Port 80 erreichbar wäre. Dazu würde eine iptables Regel reichen:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 9001

Das Problem an dieser Regel ist zum ersten das die Anwendung damit unter Port 80 und Port 9001 zu erreichen ist. Das zweite Problem ist das jeder unprivilegierte Nutzer ebenfalls den Port 9001 öffnen kann und damit auch die Daten von Port 80 bekommt. Und es gibt auch noch ein drittes Problem. Das ganze funktioniert nicht auf Maschinen die mit dem Linux VServer betrieben werden. Dort funktioniert das IP Tables nämlich nicht:

iptables v1.4.4: can't initialize iptables table `nat': Permission denied (you must be root)

Eine weitere Variante wäre setpcaps was allerdings problematisch ist da man diese einem Programm geben muss, was dann bei Skripten nicht funktionieren sollte:

setcap 'cap_net_bind_service=+ep' /path/to/program

Weitere Informationen gibt es unter:
http://www.wensley.org.uk/info#setpcaps
http://serverfault.com/questions/112795/how-can-i-run-a-server-on-linux-on-port-80-as-a-normal-user
http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-li

Virtual Volumes View

Da hat man nun ein paar Festplatten (oder wahlweise CD/DVDs) im Schrank stehen und sucht nun eine Datei, möchte aber nicht jede Platte erstmal anschließen oder jede CD einlegen. Hier bietet sich ein Katalogisierungstool an. Eine gute Open Source Lösung ist dabei VVV was für Virtual Volumes View steht.

Die Software kann dabei unter http://vvvapp.sourceforge.net/ heruntergeladen werden. Neben einer Windowsversion ist auch eine Linux (32 und 64 Bit) und Mac OS X Version vorhanden. Die Software selbst steht dabei unter GPL.

Minecraft Server unter Ubuntu aufsetzen

Um einen Minecraft Server aufzusetzen muss im ersten Schritt java mittels

apt-get install openjdk-6-jre-headless

installiert werden. Nun kann die Version des installierten Javas (java -version) bestimmt werden. Diese sollte 1.6 oder höher sein:

OpenJDK Runtime Environment (IcedTea6 1.9.9) (6b20-1.9.9-0ubuntu1~10.04.2)
OpenJDK Server VM (build 19.0-b09, mixed mode)

Nachdem damit die Grundvoraussetzungen erfüllt sind wird mittels

adduser minecraft
su minecraft

ein Nutzer für den Server angelegt und in diesen Nutzer gewechselt. Nun schreiben wir uns ein kleines Startskript mit dem Namen start-server.sh:

#!/bin/sh
wget -N http://www.minecraft.net/download/minecraft_server.jar
java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui &

Dieses Skript lädt die aktuelle Version herunter und führt sie im Hintergrund aus. Nun fehlt nur noch ein Stopskript, welches auf den Namen stop-server.sh hört:

#!/bin/bash
pkill -SIGTERM java
sleep 5
pkill -SIGKILL java

Nach dem ersten Start des Servers werden einige Konfigurationsdateien angelegt. In die Datei ops.txt tragen wir den oder die Operatoren für den Server ein. In der Datei server.properties sind die grundlegenden Einstellungen für den Server zu finden. In meinem Fall wird die Whitelist aktiviert indem die Eigenschaft white-list auf true gesetzt wird. in der whitelist.txt kann man dann die entsprechenden Nutzer eintragen welche sich in die Welt einloggen dürfen.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Minecraft
http://www.debianroot.de/server/minecraft-server-erstellen-auf-einem-debian-server-1297.html

KDE 4 Probleme

Nach einem unsanften Shutdown spielte mein KDE 4 doch leicht verrückt. Es machte Sachen die es im Normalfall nicht tun sollte, wie z.B. fehlende Symbole und unregelmäßige aber häufige Abstürze. Da ich keine Lust auf eine lange Fehlersuche hatte, wählte ich die brachiale Methode und löschte den ~/.kde Ordner. Daraufhin musste ich zwar einige Dinge neu einstellen, das System lief aber wieder prima :)

Das Invertika Update im Juli

Wir schreiben wieder einmal den letzten Sonntag des Monats und das bedeutet das es wieder soweit ist: das Invertika Update steht an. Der Juli war dabei besonders produktiv (ob es wohl am schlechten Wetter lag ;)) und so ist doch einiges für dieses Update zusammen gekommen. Für alle welchen Invertika kein Begriff ist, dabei handelt es sich um ein freies (unter GPL) 2D-MMORPG, welches für Linux, Windows und Mac OS X verfügbar ist.

Im Laufe des Updates wurden viele Mapfehler (z.B. halbe Bäume und Steine, fehlende Kollisionen) an einer Menge von Maps behoben. Auch einige Rechtschreibfehler wurden hier gleich noch mitkorrigiert. Deshalb an dieser Stelle nochmal ein großes Dankeschön an alle Fehlermelder :)

Der Irrwald wurde erweitert und es wurde damit begonnen die Teile des Waldes miteinander zu verbinden. Die Wege welche die Städe und Dörfer in Invertika miteinander verbinden, wurden in diesem Update erheblich erweitert, so das es nun leichter sein sollte bestimmte Dinge zu finden. Der Greganyzoo wurde in diesem Update weiter gemappt, so das er im nächsten Update hoffentlich wieder seine Pforten öffnet. Unter den weiteren Dingen die dem Spiel hinzugefügt worden sind, ist zum Beispiel die RDA und das Überwachungszentrum zu finden. Einige Veränderungen gab es auch an der Burg Cedric, dem Wüstenlager, sowie dem Minensystem. Die Stadt Narva hat seit diesem Update auch Innenräume und das Höhlensystem der Ta No wurde ausgebaut.

Die Monster wurden weiter ausbalanciert und auf einigen Maps wurden Korrekturen eingepflegt welche verhindern das Monster an unzugänglichen Stellen erscheinen. Auch die Items wurden überarbeitet, so sind einige der Grafiken soweit verbessert worden, das diese von der Engine besser einfärbbar sind. Bei manchen Waffenitems wurden außerdem die Animationen korrigiert, so das diese nun wieder im Spiel zu sehen sein sollten. Bei den Tilesets gab es einige Umgestaltungen sowie Korrekturen einiger Grafiken. Einige der neuen Tiles kann man zum Beispiel im Überwachungszentrum entdecken. Daneben wurde das Automapping für einige der Tilesets ausgebaut.

An den Mapskripten gab es eine Korrektur welche das Warpen zur nächsten Map betraf. Dabei wurde die entsprechende Warp Bibliothek gleich mit angepasst. Auch kamen einige neue Skriptbibliotheken hinzu wie z.B. für die Würfelfunktionen (für das neue Item Würfel). NPCs und Quests wurden von kleineren Fehlern befreit so das nun hier alles in geordneten Bahnen laufen sollte. Neben Fehlerkorrekturen wurden auch ein paar neue Quests (siehe Screenshots ;)) sowie NPCs (z.B. der Marktschreier in Narva) eingepflegt.

Im Invertika Editor wurden einige Fehler behoben so das nun z.B. die Windmühlenblätter auch passend zu den Windmühlen gerendert werden. Dieser Effekt kommt dabei vor allem auf der Weltkarte (http://weltkarte.invertika.org) zum tragen. An der Weltkartenanwendung gab es dabei im Laufe des Updates auch einige kleinere Verbesserungen. Ein weiteres Problem im Invertika Editor bei der Berechnung der Kampfstärke der Monster wurde ebenfalls beseitigt.

Wer jetzt neugierig geworden ist, der kann das Invertika Projekt unter http://invertika.org besuchen.