Starcraft 2 Inhouse Tournament #2

Es ist lange her, aber endlich gibt es hier mal wieder Content. Nur warscheinklich anders als erwartet. Denn in lezter Zeit macht neben den Vorbereitungen auf die Hochschul-Prüfungen besonders Starcraft 2 und die Community einen großen Teil meiner Freizeit aus!

Und die Folge daraus ist: Kruecke’s SC2 Tournament #2
(http://www.facebook.com/event.php?eid=219090684799665) (Mittwoch, 20. Juli, ab 18:00 Uhr)

Und worauf ich mich besonders freue ist nichtmal das Spiel selbst, sondern das Streamen und alle Leute die Spaß haben zuzuschauen und im Chat dabei sind! :)

In letzter Zeit habe ich schon öfter eigene Spiele und Spiele mit Freunden mit viel Freude auf meinem Justin.tv Channel übertragen, aber grade bei meiner letzten Streaming Session ist das gemeinsame Casten mit Bluemaker besonders herausgestochen. Während man alleine sehr oft nicht so wirklich weiß, was man sagen soll, so ergänzt man sich doch hervorrangend, wenn man noch andere motivierte Caster dabei hat. Deswegen freue ich mich besonders ihn am Mittwoch wieder mit dabei zu haben!
Auch Cerunas wird dabei sein und auf diesen (sehr aufmerksamen!) Caster freue ich mich sehr! Leider durfte ich ihn aufgrund von Erkältungen noch nicht live erleben. (Außer dass er beim letzten Stream mit gefühlten 1000 APM den Chat vollgeballert hat! xD)

Also, wenn ihr Bock auf Starcraft 2 habt, spielt mit oder guckt zu und macht den Chat unsicher! Auf was ihr Bock habt! Denn genau darum wird es gehen… ;)

Bis dahin: “gl hf”! :D

Linux in 5 Minuten: E-Mail-Server

Anmerkung: Dieses Tutorial hab ich vor längerer Zeit mal nebenbei geschrieben, aber im Gegensatz zu den anderen Tutorials nicht mehr getestet. Sollte aber trotzdem vollständig funktionieren.

System:
- Debian 5.0 Lenny
+ Postfix
+ Dovecot

Unser E-Mail-Server besteht aus Postfix, einem Mail Transfer Agent (MTA), und Dovecot, einem Mail Delivery Agent (MDA).
Postfix verschickt und empfängt E-Mails von und für die eigene Domäne per SMTP. Dovecot wiederum stellt die empfangenen E-Mails per IMAP und POP3 auf entfernten Systemen bereit.

Installation der Dienste

Als erstes holen wir uns Postfix. Abhängigkeiten werden selbstständig mit installiert.

apt-get install postfix

Während der Installation werden wir nach der Art des Servers und nach der Domain, für die der Server zuständig sein soll, gefragt.
Bei der ersten Frage wählen wir “Internet-Site“, die zweite Frage beantworten wir mit unserem Domainnamen. Im Regelfall ist dieses Feld schon korrekt ausgefüllt.
In meinem Beispiel hier ist mein Domainname “0x4b.de”. Eine mögliche E-Mail-Adresse wäre somit “root@0x4b.de”.

Als nächstes installieren wir Dovecot, sowohl den IMAP- als auch den POP3-Daemon.

apt-get install dovecot-common dovecot-imapd dovecot-pop3d

Früher war es üblich, dass sich der Client im gleichen Netz wie der MTA befand und keine Authentifizierung notwendig war. Mittlerweile ist es eher üblich, dass sich der entfernte Client per SASL am SMTP-Server authentifiziert. Postfix wiederum nutzt Dovecot als Schnittstelle zur Authentifizierung gegenüber dem System.

Damit das alles klappt, müssen noch ein paar Ergänzungen an verschiedenen Dateien durchgeführt werden.
(Das grün markierte Ergänzen)

/etc/dovecot/dovecot.conf
  ## dovecot-lda specific settings
  ##
  # socket listen {
  #   master {
  #     path = /var/run/dovecot/auth-master
  #     mode = 0600
  #     user = mail # User running Dovecot LDA
  #     #group = mail # Or alternatively mode 0660 + LDA user in this group
  #   }
  # }

  socket listen {
    client {
      path = /var/spool/postfix/private/auth
      mode = 0660
      user = postfix
      group = postfix
    }
  }

}

Bei der folgenden Datei, einfach am Ende hinzufügen.

/etc/postfix/main.cf
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

Und als letztes:

/etc/postfix/master.cf
smtp      inet  n       -       -       -       -       smtpd
submission inet n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_sasl_security_options=noanonymous
  -o smtpd_sasl_local_domain=$myhostname
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o smtpd_sender_login_maps=hash:/etc/postfix/virtual
  -o smtpd_sender_restrictions=reject_sender_login_mismatch
  -o smtpd_recipient_restrictions=reject_unknown_recipient_domain,reject_non_fqdn_recipient,permit_sasl_authenticated,reject

Schon ist unser Mailserver fertig. Nur noch einmal die Dienste neustarten, damit die angepasste Konfiguration neu geladen wird.

/etc/init.d/dovecot restart
/etc/init.d/postfix restart

Anlegen von Benutzerkonten

Nun brauchen wir noch Benutzer, die E-Mails verschicken und empfangen können.

adduser benutzer

benutzer ist der Loginname unseres Benutzers. (Systembenutzer immer klein schreiben!)
Soll unser Benutzer ein reiner E-Mail-Benutzer sein und sich nicht an der Konsole anmelden dürfen, nehmen wir ihm diese noch weg.

usermod --shell /bin/false benutzer

Nun kann unser erster Benutzer schon E-Mails empfangen. In meinem Beispiel wäre seine E-Mail-Adresse benutzer@0x4b.de.

Client verbinden

Zu guter Letzt richten wir noch unser E-Mail-Konto in unserem lokelen Client ein. Tunderbird 3 findet die Einstellungen sogar schon (fast) ganz von selbst.

Aliase

In der Datei /etc/aliases kannst du außerdem weitere Namen bestehenden Benutzern zuweisen.

/etc/aliases
# See man 5 aliases for format
postmaster:    root
hans.peter:    benutzer

Von Haus aus ist root@0x4b.de auch unter postmaster@0x4b.de erreichbar. Ich habe hier meinem Benutzer noch zusätzlich die E-Mail-Adresse hans.peter@0x4b.de zugewiesen.

Damit die Einstellungen übernommen werden, muss man nach jeder Änderungen in der /etc/aliases einmal folgenden Befehl ausführen.

postalias /etc/aliases

Quellen:
- http://wiki2.dovecot.org/HowTo/PostfixAndDovecotSASL

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