Linux in 5 Minuten: Counter-Strike Server

System:
- Debian 5.0 Lenny
+ Counter-Strike Server

Installation

Wenn wir ein 64-Bit-System haben, müssen wir erst noch ein paar Pakete nachinstallieren.

apt-get install ia32-libs

Los geht’s. Für unseren CS-Server legen wir einen neuen Benutzer an.

adduser steam

Nun welchseln wir zu unserem Benutzer und laden Steam herunter.

su steam
mkdir ~/steam
cd ~/steam
wget http://storefront.steampowered.com/download/hldsupdatetool.bin

Jetzt noch entpacken (ausführen).

chmod u+x hldsupdatetool.bin
./hldsupdatetool.bin

Nachdem Entpacken können wir über Steam verschiedene Spiele herunterladen und starten. Hier der Befehl für Counter-Strike.

./steam -command update -game "cstrike" -dir /home/steam/steam

Meistens lädt Steam erst noch eigene Updates herunter, bevor das übergebene Spiel heruntergeladen wird. Wir wiederholen den Befehl so lange, bis HLDS installation up to date angezeigt wird.

Nun könnten wir den CS-Server mit dem Befehl ./hlds_run -game cstrike -autoupdate +maxplayers 20 +map de_dust2 starten, aber dann haben wir das Problem, dass wir die Konsole nicht verlassen können ohne CS zu beenden.
Deshalb werden wir wieder root, installieren screen und können dann CS in einem seperaten terminal starten.

exit
apt-get install screen
cd /home/steam/steam
screen -A -m -d -S steam su steam -c "./hlds_run -game cstrike -autoupdate +maxplayers 20 +map de_dust2"

So, unser Server läuft. Kontrollieren können wir das bei Bedarf, indem wir mit screen -r unser CS-Terminal aufrufen.

Mit dem Systemstart starten

Wie bei den meisten Dienst möchten wir, dass auch unser Counter-Strike Server beim Systemstart startet. Wir bedienen uns hier einer einfachen Methode und fügen die folgenden zwei Zeilen der /etc/rc.local hinzu.

/etc/rc.local
cd /home/steam/steam
screen -A -m -d -S steam su steam -c "./hlds_run -game cstrike -autoupdate +maxplayers 20 +map de_dust2"

Wenn das Script /etc/rc.local mit exit 0 endet, beachte, dass diese Zeile immer am Ende stehen muss.

Quellen:
- http://www.counter-strike.de/content/server/linux_source.php

Linux in 5 Minuten: Teamspeak-Server

System:
- Debian 5.0 Lenny
+ Teamspeak

Teamspeak kann man ganz einfach über die Paketverwaltung installieren.

apt-get install teamspeak-server

Die Passwöter finden wir hier.

cat /etc/teamspeak-server/passwords

Das war’s schon. ;)

Linux in 5 Minuten: Xen-Server

System:
- Debian 5.0 Lenny
+ Xen-Hypervisor

Installation von Xen

Anmerkung: Dieses Tutorial ist auf Hetzner-Server zugeschnitten, kann aber ohne weiteres auch für alle anderen Umgebungen genutzt werden. Die Besonderheit ist hier, dass auch VMs mit Netz-fremden IPs geroutet werden. Dies macht sich in der Wahl des Netzwerkkonfiguration und der Konfiguration der VMs (bzw. Xen-Tools) bemerkbar.

Als erstes installieren wir Xen und dazugehörige Tools.

apt-get install xen-hypervisor-3.2-1-amd64 xen-linux-system-2.6.26-2-xen-amd64 xen-utils-3.2-1 xenstore-utils xenwatch xen-shell xen-tools

Nach der Installation starten wir den Rechner neu.

reboot

Wenn wir sichergehen wollen, dass alles geklappt hat, können wir mit uname -a prüfen, ob der Xen-Kernel geladen wurde.

Als Netzwerk-Setup benutzen wir “routed”. Hier wird sämtlicher IP-Verkehr der DomUs über die Dom0 geroutet. Dazu muss die folgende Datei durch Ein- und Auskommentieren angepasst werden.

/etc/xen/xend-config.sxp
#(network-script network-dummy)
#(vif-script vif-bridge)
(network-script network-route)
(vif-script vif-route)

Als nächstes setzen wir noch ein erhöhtes Limit für unsere Loop-Devices, um nicht bei dem Starten von vielen DomUs an Grenzen zu stoßen. (Das grün markierte ergänzen.)

/etc/modules
loop max_loop=64

Damit die Dom0-Maschine den IP4-Verkehr auch routet, stellen wir sicher, dass folgende Einstellungen vorhanden sind.

/etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1

Nachdem nun alle wichtigen Einstellungen vorgenommen wurden, starten wir unser System neu.

restart

Installation der DomUs

Neue virtuelle Maschinen lassen sich schnell und einfach mit den Xen-Tools installieren. Als erstes legen wir die Standart-Werte für neue VMs fest. Hier kann meine Konfiguration auch gerne variiert werden. Die Einstellungen sollten zum Server passen.

/etc/xen-tools/xen-tools.conf
dir = /home/xen
install-method = debootstrap
debootstrap-cmd=/usr/sbin/debootstrap

size   = 200Gb    # Disk image size.
memory = 512Mb    # Memory size
swap   = 512Mb    # Swap size
fs     = ext3     # use the EXT3 filesystem for the disk image.
dist   = lenny    # Default distribution to install.
image  = sparse   # Specify sparse vs. full disk images.

netmask   = 255.255.255.255

passwd = 1

kernel      = /boot/vmlinuz-`uname -r`
initrd      = /boot/initrd.img-`uname -r`
arch=amd64
mirror = http://ftp.us.debian.org/debian/

ext3_options   = noatime,nodiratime,errors=remount-ro
ext2_options   = noatime,nodiratime,errors=remount-ro
xfs_options    = defaults
reiser_options = defaults
serial_device = hvc0
disk_device = xvda

Jetzt können wir mit folgendem Befehl fleißig neue virtuelle Maschinen erstellen. Am Ende der Installation wird das zu erstellende Passwort für root abgefragt. (Die orange markierten Teile mit den eigenen Daten ersetzen.)

xen-create-image --hostname=example.com --ip=192.0.32.10 --gateway=192.0.32.10 --role=udev

Der Wert bei IP und Gateway entspricht hier immer der IP-Adresse, unter der die VM erreichbar sein soll. Diese ungewöhnliche Konfiguration hat den Hintergrund, dass die Netzwerkkonfiguration so auch funktioniert, wenn sich Dom0 und DomU in unterschiedlichen Netzen befinden.

Nach der Installation kann die VM mit folgendem Befehl gestartet werden.

xm create /etc/xen/example.com.cfg

Mit xm list können wir stets prüfen, welche VMs grade auf unserem Server laufen.

Das war’s! Nun können wir uns per SSH auf der neuen VM anmelden.

ssh root@example.com

Quellen:
- http://articles.hostbillapp.com/2010/01/03/setting-up-xen-vps-hosting-at-hetzner-debian-5-0-lenny/
- http://www.asconix.com/howtos/debian/xen-debian-lenny-howto

Langsam geht’s los…

So langsam merke ich, es geht bald los. Nur noch fünf Wochen, dann sitze ich in Bremerhaven in meiner ersten Vorlesung. – Okay, nur der Mathe-Vorbereitungskurs, aber das zählt für mich auch schon! ^^

Teileweise bin ich immer noch etwas nervös, ob das überhaupt alles so hinhaut. Die meisten Vorbereitungen, wie zum Beispiel der BAFöG-Antrag und andere organisatorische Dinge, laufen noch oder ich habe noch gar nicht angefangen.

Ein großer Stein ist mir auf jeden Fall grade schonmal vom Herzen gefallen: Ich habe meine Zusage für eine Wohnung bekommen! Genauer gesagt für ein kleines 1-Zimmer Apartment in einem Studentenwohnheim. Und das, wo ich erst vor wenigen Tagen mit einer Dame vom Studentenwerk telefoniert habe, die mir sagte, dass ich schon sehr spät dran sei und meinen Antrag unverzüglich abschicken solle.

Ich bin auf jeden Fall grade superglücklich zumindest an der Stelle schonmal was festes zu haben und sichergehen zu können, dass ich am 01.09.2010 nicht werweiß wie und wo übernachten muss! ;)

Spam ade! …und zwar richtig!

Spam im WordPress BackendSpam, was ein leidiges Thema. Fast unweigerlich wird man irgendwann davon erwischt und darf sich ab dann ewig damit herum schlagen. Denkst Du! ^^

Monatelang spamte ein Bot im Minutentakt einen Artikel meines Blogs mit kryptischen Links voll. Ein Glück das WordPress nach einmaliger Selektierung alle Posts des Bots automatisch als Spam erkannt und aussortiert hat. Trotzdem war es sehr lästig, dass man nach jedem Login im Backend von tausenden Spamposts begrüst wurde. Besonders befürchtete ich, dass bei dem einfach Leeren des Spamfachs auch mal ein echter Kommentar als Spam erkannt und gelöscht werden könnte.

Vor ungefähr einer Woche habe ich mich so über Spam geärgert, dass ich doch einmal wissen wollte, wer mich da eigentlich vollspamt. Die IP-Adresse des Bots gehört BurstNET, einem großen Hoster in Amerika. Ob die sich wohl mit Spam beschäftigen? Eine Mail an abuse@burst.net und einige Stunden später war ich schlauer.

Nach einem kurzen Dialog und einigen ausgetauschten Logfiles lautete die letzte Mail von Seiten BurstNET:

“We have contacted our direct client regarding your report and expect a prompt response, including action against the abuser.
If you have any questions, please let us know.”

Keine 48 Stunden später kann ich feststellen, dass ich meinen letzten Spam-Kommentar bekommen habe – diese Nacht um ca. 01:30 Uhr. :)

Ich bin begeistert, dass ich tatsächlich etwas direkt gegen den Spammer tun konnte und mich nicht mit Filtern über Wasser halten musste! Ich hätte auch nicht gedacht, dass sich der Hoster so schnell um den Fall kümmert. Wenn man jetzt jeden Spammer melden, statt nur blocken würde… ;)

PS: Mich würde ja doch mal interessieren, welche Konsequenzen meine Meldung für den “Abuser” hat…