SchlagwortLinux

Migration von IPv4 nach IPv6 und deren Auswirkungen auf unixoide Systeme in einem Unternehmen

Bei einer Umstellung der IT Infrastruktur von IPv4 auf die Version IPv6 müssen im Vorhinein viele Faktoren beachtet werden um ungeplante und unberücksichtigte negative Folgen zu minimieren.

Um alle Probleme und Auswirkungen solch einer Umstellung aufzuzeigen wurde eine KMU IPv4 IT Infrastruktur mit Hilfe von verschiedenen Virtualisierungstechnologien geschaffen und auf IPv6 umgestellt.

Diese Bachelorarbeit befasst sich mit den Auswirkungen auf unixoide Systeme. Anhand der Umstellung eines Linux Rootservers von IPv4 auf einen Dual-Stack Betrieb wird gezeigt zu welchen Problemen es kommen kann und was für eine reibungslose Umstellung zu beachten ist. Die einzelnen Schritte werden beschrieben und es werden weiterführende Quellen für eigene Recherchen angegeben.

Vollständige Arbeit: Unixoide Systeme Bachelorarbeit

Linux Startscript mit eigenem Benutzer und Session in Screen (start, stop, status, attach, restart)

#!/bin/bash

### BEGIN INIT INFO
# Provides: Geolane Gateway Startscript
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts the Gateway
# Description: Starts the Gateway.
### END INIT INFO

# SETTINGS
####################################

USERNAME='geoUpdate'
COPATH='/home/ftpserver/apacher-ftpserver'
ID='GeoUpdate'
COMMAND='./bin/ftpd.sh res/conf/ftpd-geolane.xml'
SERVICE='ftpd.sh'

# functions
####################################

ME=`whoami`
as_user() {
  if [ $ME == $USERNAME ] ; then
    bash -c "$1"
  else
    su - $USERNAME -c "$1"
  fi
}

start() {
  echo -e "${Y}Starting ${B}$ID ${Y}...${D}"

  if status; then
    echo -e "${R}Error: ${B}$ID ${R}is already running!${D}"
    exit 1
  fi

  cd $COPATH
  as_user "cd $COPATH && screen -dmS $ID $COMMAND"
}

stop() {
  echo -e "${Y}Stopping ${B}$ID ${Y}...${D}"

  if ! status; then
    echo -e "${R}Error: ${B}$ID ${R}is not running!${D}"
  exit 1
  fi

  as_user "screen -S $ID -p 0 -X kill"
  echo -e "${G}Shutting down ...${D}"
}

statustext() {
  if status; then
    echo -e "${B}$ID ${G}is running ${B}${D}"
  else
    echo -e "${B}$ID ${R}is not running!${D}"
  fi
}

status() {
  pgrep -u $USERNAME -f $SERVICE > /dev/null
}

attach() {
  if ! status; then
    echo -e "${R}Error: ${B}$ID ${R}is not running!${D}"
    exit 1
  fi
  as_user "screen -S $ID -r"
}

# parameter parsing
####################################

case "$1" in

  start)
    start
    sleep 2
    statustext
  ;;

  stop)
    stop
    sleep 2
    statustext
  ;;

  restart)
    stop
    start
    statustext
  ;;

  status)
    statustext
  ;;

  attach)
    attach
  ;;

  *)
    echo -e "${Y}Usage: $0 {${G}start${Y}|${R}stop${Y}|${B}restart${Y}|${B}status${Y}|${B}attach${Y}} ${Y}[ID]${D}"
    echo -e "${Y}While attached press ${B}ctrl-a crlt-d ${Y}to stop watching without stopping the server!"
    exit 1
  ;;

esac

Alarmierung via SMS/MMS/Email/Sprachanruf an ein Handy

1. Einleitung

Ursprünglich war es unsere Aufgabe eine genaue Recherche über das Thema Alarmierung via SMS/MMS/Email/Sprachanruf an ein Handy durchzuführen. Im Zuge dieser Recherche bemerkten wir jedoch, dass heutzutage eine Vielzahl von Alarmierungssystemen mit sogenannten Handyapps realisiert werden. So entschieden wir uns, denn Fokus auf die Apps zu legen.

Handyapps, sind Programme die auf Smartphones (modernen Mobiltelefonen) laufen und dabei gehören Macs iOS und Googles Android zu den beliebtesten App Betriebssystemen.

Wir entschieden uns, für einen praktischen Test des Überwachungstools Nagios, um die Möglichkeiten einer solchen Alarmierung näher zu bringen.

2. Überwachung und Alarmierung mit Nagios

2.1 Allgemeines

Nagios ist eine kostenlose Open-Source Software, die entwickelt wurde um Netzwerkgeräte zu überwachen und bei Fehlern oder Änderungen den Anwender oder Administrator zu alarmieren. Die Anwendung kann in kleinen Heimnetzwerken bis zu großen Firmennetzwerken eingesetzt werden. Nagios kann dabei Prozesse auf Servern, die Erreichbarkeit von Diensten (HTTP, FTP, SSH, etc), Performance von Datenbanken, Daten von Netzwerkgeräten wie Switches und Router und noch vieles mehr überwachen.

Nagios überwacht seine Ziele nicht direkt, sondern über Plugins. Diese Plugins werden mit verschiedenen Parametern, wie einer IP, einem Port, oder Ähnlichem aufgerufen und liefern
einen Status zurück („OK“, „Warning“, „Critical“ oder „Unknown“). Viele Plugins werden bereits mit der Nagios Installation mitgeliefert und bieten Möglichkeiten der Überwachung von Systemen über Ping, der Überwachung von Webseiten über einen HTTP Request oder der Überwachung von Systemressourcen. Werden Plug-Ins für speziellere Zwecke benötigt, wird man oft in Plugin Sammlungen im Internet fündig. In dem unwahrscheinlichen Fall, dass es noch keine passenden Plugins gibt, kann man sich sehr leicht in einer beliebigen Programmiersprache sein eigenes Plugin schreiben. Auch die Benachrichtigung über E-Mail, SMS, Telefonanruf, Pager, uvm. geschieht meist über Plugins.
Bei einem Statuswechsel eines Plugins durchläuft ein Ereignis eine Filterkette, die am Ende feststellt, ob eine Benachrichtigung gesendet werden soll oder nicht. Diese Filterkette beinhaltet zum Beispiel die Überprüfung, ob der Host gerade zu Wartungszwecken abgeschaltet wurde, oder ob der Empfänger der Nachricht um diese Uhrzeit benachrichtigt werden soll, oder ob die Benachrichtigungen global deaktiviert wurden und noch vieles mehr. Nagios ist dabei in der Lage Benachrichtigungen über verschiedene Wege an eine Person,  mehrere Personen oder an eine Gruppe von Personen, zu schicken. Dabei können die Wege der Benachrichtigung und die Zeiten wann eine Person oder eine Gruppe benachrichtigt werden soll, angegeben werden. Auch der Text und die enthaltenen Informationen sind frei konfigurierbar.

Quellen: http://www.heise.de/netze/artikel/Netzwerkueberwachung-mit-Nagios-221683.html
Weiterführende Links: http://www.nagiosexchange.org/ http://www.nagios.org/

2.2 Installation von Nagios

Die Installation gestaltet sich im Vergleich zu anderen UNIX Serversystemen relativ einfach, man sollte jedoch Grundkenntnisse im Umgang mit UNIX/Linux besitzen. Nagios ist für alle gängigen UNIX Varianten und somit auch Linux verfügbar. Im Internet finden sich viele ausgezeichnete Anleitungen zur Installation, weshalb dieser Schritt auf den meisten Systemen schnell erledigt ist.

Da Nagios keine grafische Oberfläche benötigt, sollte man aus Performance Gründen auch beim Aufsetzen des Betriebssystems auf eine grafische Oberfläche verzichten. Auch wenn Nagios für einige Linux Systeme in den Repositories enthalten ist, empfiehlt sich die Installation der aktuellsten Version von Nagios.

Nagios benötigt einige Vorraussetzungen um installiert und betrieben werden zu können. Dies sind unter anderem ein Webserver (Apache2) mit PHP, ein „GCC compiler“ mit den dazugehörigen „development libraries“ sowie die „GD development libraries“ für die Bildmanipulation.

Nagios sollte unter einem eigenen Benutzer laufen, um die Sicherheit des Systems nicht zu gefährden. Man sollte sich also einen „nagios“ Benutzer und eine „nagios“ Gruppe anlegen.
Darüber hinaus sollte man eine zweite Gruppe mit dem Namen „nagcmd“ erstellen, der den Benutzer „nagios“ und den Benutzer, unter dem der Webserver läuft, zusammenfasst.

Sind die Benutzer und Gruppen angelegt, kann Nagios von der Projektseite auf sourceforge.net heruntergeladen werden. Die aktuelle Version von Nagios beim Verfassen dieses Dokuments ist 3.2.3. Neben der Kernsoftware Nagios, können auch viele Plugins heruntergeladen werden. Auf Sourceforge lassen sich knapp 300 Projekte mit dem Suchwort “Nagios” finden.

Ist Nagios heruntergeladen und entpackt, kann mit dem Konfigurieren, Kompilieren und Installieren begonnen werden. Näheres dazu findet sich in Betriebssystem spezifischen Anleitungen im Internet oder in der Dokumentation von Nagios (HTML Dateien im Verzeichnis html/docs/). In dieser Dokumentation sind alle Schritte genau beschrieben und dazu auch Hintergrundwissen enthalten.

Einige Anleitungen für die Installation sind in den weiterführenden Links aufgeführt. Mit diesen Anleitungen ist es möglich Nagios auf einem laufenden Linux System zu installieren.

Quellen: http://www.heise.de/netze/artikel/Installation-224088.html

Weiterführende Links:

2.3 Konfiguration von Nagios

Bevor Nagios das erste Mal gestartet werden kann, muss noch die Konfiguration angepasst werden. Bei der Installation werden Standard- bzw. Beispiel-Konfigurationsdateien mitkopiert. Diese Beispielkonfiguration kann man groß teils in das System übernehmen und anschließend Schritt für Schritt an seine Bedürfnisse anpassen. Nagios speichert seine gesamten Einstellungen in einfachen Textdateien, wobei es eine zentrale Konfigurationsdatei gibt, das alle anderen Konfigurationsdateien einbindet. Diese Dateien sind in einem Unterordner der Nagios Installation zu finden. Wurde Nagios beispielsweise unter „/usr/local/nagios“ installiert, so befinden sich die Konfigurationsdateien im Ordner „/usr/local/nagios/etc/objects/.

Die Konfiguration von Nagios teilt sich in folgende Bereiche:

  • Contacts
  • Hosts
  • Services

Contacts sind Personen oder Personengruppen, die Benachrichtigungen erhalten können. Im Bereich Hosts lassen sich alle Systeme konfigurieren, die überwacht werden sollen. Unter Services lassen sich die zu überwachenden Prozesse einrichten.

Nachfolgend ist ein typischer Contacts-Eintrag zu sehen. Bei Ereignissen der überwachten Services oder Hosts wird dieser Kontakt über E-Mail informiert.

define contact{

  • contact_name                                         nagiosadmin
  • use                                                                generic-contact
  • alias                                                              Robert Huber
  • service_notification_period                 24×7
  • host_notification_period                    24×7
  • service_notification_options                w,u,c,r
  • host_notification_options                   d,u,r
  • email                                                             robert.huber@xxx.at

}

Der „contact_name“ bezeichnet den Kontakt und wird von Nagios intern zur Zuordnung verwendet. Daher muss der gewählte Name eindeutig sein. Mit „use“ wird ein Template eingebunden, dass Standardeinstellungen für Kontakte beinhaltet. Damit kann der Administrator gleiche Einstellungen immer zentral verwalten. Der „alias“ beinhaltet meistens den vollen Namen des Kontakts.
Die beiden Einträge „service_notification_period“ und „host_notification_period“ geben die Benachrichtigungszeit an. „24×7“ wurde dabei bereits an einer anderen Stelle in der Konfiguration spezifiziert.

„service_notification_options“ und „host_notification_options“ geben die Fälle an in denen der Kontakt benachrichtigt werden soll. Dabei steht:

  • „w“ für „Warning“
  • „u“ für „Unknown“
  • „c“ für „Critical“
  • „r“ für „Recover“

Bei den Hosts gibt es die Zustände:

  • „d“ für „Down“
  • „u“ für „Unreachable“
  • „r“ für „Recovery“

Die letzte Zeile beinhaltet die E-Mail Adresse des Kontakts.

Hier ist nun ein Eintrag für einen Host zu sehen, wobei es sich um einen Linux Server handelt:

define host{

  • use                                   linux-server
  • host_name                   webspace
  • alias                                webspace
  • address                          78.46.51.253

}

Mit „use“ wird wieder ein Template eingebunden, das für alle Linux Server verwendet werden kann. Der „host_name“ muss wieder eine eindeutige Kennzeichnung für den Host enthalten. Der „alias“ kann der vollständige Name des Servers oder eine Beschreibung sein. Die letzte Zeile „address“ beinhaltet die IP-Adresse über die der Server erreichbar ist.

Um nun die Services des angelegten Hosts überwachen zu können, muss zumindest ein Service Eintrag angelegt werden:

define service{

  • use                                               generic-service
  • host_name                               webspace
  • service_description             webspace FTP check
  • check_command                   check_ftp

}

define service{

  • use                                                local-service
  • host_name                                webspace
  • service_description             HUBAX Homepage Check
  • check_command                   check_http_critical_redirect!hubax.at!/index.php

}

define service{

  • use                                               local-service
  • host_name                               localhost
  • service_description             Root Partition
  • check_command                   check_local_disk!20%!10%!/

}

Der erste Service Eintrag zeigt die Überwachung eines FTP Server auf dem Host „webspace“. Der maßgebliche Befehl „check_ftp“ ist meistens in der commands.cfg definiert.
Der zweite Eintrag zeigt die Überwachung einer Webseite mit dem DNS Namen „hubax.at“ und der Seite „index.php“. Der dritte Eintrag spezifiziert die Überwachung einer lokalen Ressource, die bei Unterschreiten von 20% freiem Speicherplatz eine Warning zurückliefert. Bei weniger als 10% Speicherplatz wird ein Critical Status zurückgeliefert.

Um nun zu wissen was genau hinter den Einträgen steckt, müssen wir uns noch die verwendeten Templates genauer ansehen. Nachfolgend ein Standardtemplates, das mit Nagios mitinstalliert wird:

define contact{

  • name                                                              generic-contact
  • service_notification_period               24×7
  • host_notification_period                     24×7
  • service_notification_options             w,u,c,r,f,s
  • host_notification_options                    d,u,r,f,s
  • service_notification_commands       notify-service-by-email
  • host_notification_commands              notify-host-by-email
  • register                                                           0

}

Dieses Template das von unserem Kontakt benutzt wird, besitzt viele Einstellungen, die wir überschrieben haben. Daneben gibt es aber auch noch den Eintrag service_notification_commands“, der Befehle angibt, die beim Wechsel des Service-Status ausgeführt werden (hier: „notify-service-by-email“, das ein E-Mail beim Status Wechsel verschickt).

define host{

  • name                                              linux-server
  • use                                                  generic-host
  • check_period                             24×7
  • check_interval                           5
  • retry_interval                            1
  • max_check_attempts              10
  • check_command                       check-host-alive
  • notification_period                 workhours
  • notification_interval               120
  • notification_options                d,u,r
  • contact_groups                         admins
  • register                                         0

}

Dieses Template ist für Linux Server gedacht und überwacht die Erreichbarkeit des Hosts und gibt an wie oft der Hosts geprüft wird und welche Personen bei einer Änderung des Status benachrichtigt werden sollen.

Mit den Anleitungen und Ausführungen in den weiterführenden Links ist eine Konfiguration von Nagios zur Überwachung von einfachen Hosts und Services möglich.

Quelle:

Weiterführende Links:

2.4 Weboberfläche von Nagios

Nach einer erfolgreichen Installation und Konfiguration von Nagios kann das umfangreiche Webinterface bestaunt werden. Es bietet nicht nur einen aktuellen Überblick über den Zustand des Netzwerkes, eine Detailansicht der einzelnen Hosts und Services sowie einer History über die geschehenen Ereignisse, sondern auch die Möglichkeit aktiv in Benachrichtigungen und Statusabfragen einzugreifen. Dabei können einzelne Services oder Hosts zu Wartungszwecken deaktiviert oder Abfragen außerhalb des Zeitplans durchgeführt werden. Dabei können zusätzliche Benachrichtigungen versendet oder unversandte als versandt markiert werden.

Dabei bietet das Webinterface viele verschiedene Ansichten an:

  • Übersicht über einzelne Services oder einzelne Hosts,
  • Ansichten über Gruppen von Services oder Hosts, sowie
  • „Tactical Overview“, der den Status und die Probleme des gesamten Netzwerks auf einer Seite zusammenfasst.

NagiosOverview

Bild: Tactical Overview

NagiosServices

Bild: Service Overview

3. Unterschiede zwischen Email/SMS und Handyappbenachrichtigung

3.1            E-Mail Benachrichtigung

Da jedes moderne Mobiltelefon, jeder Computer, und viele andere Geräte bereits E-Mails empfangen können, ist auf Seiten des Clients kaum noch etwas einzurichten. Man benötigt lediglich ein Mailkonto, auf das per POP3 oder IMAP zugegriffen werden kann. Der Vorteil bei dieser Art der Benachrichtigung ist, dass viele Personen bereits E-Mails auf ihren stationären und mobilen Geräten empfangen können.

Auf Seiten des Servers ist meist schon ein E-Mail Programm bei der Installation des Betriebssystems mitinstalliert worden und die Benachrichtigung von Nagios über E-Mail funktioniert out-of-the-box. Es muss lediglich die E-Mail Adresse des Kontakts in Nagios eingetragen werden und der Benutzer erhält eine E-Mail, wenn sich ein Status im überwachten Bereich ändert.

Nachfolgend ist der Standardbefehl aus der Konfigurationsdatei „commands.cfg“ zur Benachrichtigung per E-Mail zu sehen. Der Text in der Mail kann beliebig angepasst werden und mit den Platzhalten zwischen den „$“ Zeichen werden Service spezifische Werte eingebunden.

define command{

  • command_name    notify-service-by-email
  • command_line    /usr/bin/printf „%b“ „***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n“ | /usr/bin/mail -s „** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **“ $CONTACTEMAIL$

}

3.2 SMS Benachrichtigung

SMS Benachrichtigungen benötigen auf einem Endgerät keinerlei Konfiguration. In Nagios muss nur die Telefonnummer des Empfängers konfiguriert werden.
Der Vorteil der SMS Benachrichtigung ist, dass jedes Mobiltelefon SMS empfangen kann und viele Anwender auf eine SMS schneller reagieren als auf eine E-Mail.

Da der Rechner auf dem der der Nagios-Server läuft nur selten SMS senden und empfangen kann, muss diese Möglichkeit erst geschaffen werden. Entweder man meldet sich bei einem “E-Mail to SMS Gateway Service” im Internet an, das zugesandte E-Mails in SMS umwandelt und versendet, oder man schließt ein Mobiltelefon am Computer an, über das SMS versendet werden können.

Der Vorteil bei einem E-Mail to SMS Gateway ist, dass es kostengünstig zu mieten ist und mit jedem Server funktioniert. Der Nachteil liegt daran, dass SMS nur gesendet werden können, wenn auch eine Internetverbindung besteht. Diesen Nachteil besitzt auch die Benachrichtigung über E-Mail, fällt jedoch hier weg, wenn die SMS über ein lokales Mobiltelefon versendet wird. Es verbleibt die Tatsache, dass SMS ein Best-Effort Service ist. Das heißt, dass der Provider eingehende Anfragen im Rahmen seiner Ressourcen schnellstmöglich verarbeitet. Ein garantierter Versand ist nicht gewährleistet. Die Mobilfunkbetreiber versuchen zwar das SMS-Service mit einer Priorität zu versehen, um diese ohne Zeitverzögerung zuzustellen, leider liegt dieser Priority-SMS kein definierter Standard zugrunde, weshalb dieser Ansatz zumeist nur funktioniert, wenn Sender und Empfänger beim selben Provider sind.

Nachfolgend ist die Konfiguration zu sehen, die eine SMS Benachrichtigung über eine “E-Mail to SMS Gateway” sendet und zur Authentifizierung im Betreff einen Benutzernamen und ein Passwort übergibt. Der Empfänger wird hier als E-Mail Empfänger übergeben. Zum Beispiel wird für die Mobiltelefonnummer 06601234567 das E-Mail an 06601234567@smsgateway versandt.

define command{

  • command_name    service-notify-by-epagerSMSat
  • command_line    /usr/bin/printf „%b“ „Type: $NOTIFICATIONTYPE$ — Service: $SERVICEDESC$ — Host: $HOSTALIAS$ — State: $SERVICESTATE$ — Time: $LONGDATETIME$ — Info: $SERVICEOUTPUT$“ | /usr/bin/mail -s „SMSGW-Auth:benutzername:passwort“ $CONTACTEMAIL$

}

Weiterführende Links:

3.3 App Benachrichtigung

Smartphones werden immer beliebter und für die 2 großen Player am Markt, Android und iPhone, gibt es jede Menge Applikationen, die sich sehr einfach installieren lassen. In den jeweiligen App-Stores lassen sich auch Apps für Nagios finden. Wir haben uns Nagroid für Android Mobiltelefone und iNag für iPhones genauer angesehen.

Die Alarmierungsapplikationen pollen dabei den Server und holen sich die aktuellen Informationen und alarmieren den Benutzer zum Beispiel akustisch oder über Vibration. Dabei können in der Applikation Statusinformationen angezeigt und Statistiken abgerufen werden. Einige Apps bieten zusätzlich noch die Möglichkeit Befehle abzusetzen und in die Konfiguration einzugreifen.

Der Vorteil der Alarmierung über Apps liegt wie bei der SMS Alarmierung an der sofortigen Reaktionsmöglichkeit. Das Eintreffen eines E-Mails bemerkt man in der Regel erst sehr viel später. Zusätzlich zur Benachrichtigung erhält man oft noch Zusatzinformationen und muss manchmal zum Eingreifen nicht unbedingt einen Computer aufsuchen.

Der größte Nachteil liegt wie bei der SMS Alarmierung an der Abhängigkeit vom Mobilfunkbetreiber. Wenn kein Empfang verfügbar ist, funktioniert auch die Abfrage des Status nicht. Neben diesem Grundkriterium ist man noch vom Betriebssystem des Smartphones abhängig. Nur die wenigsten Apps sind für mehrere Betriebssysteme verfügbar.

Nagroid – ein inoffzieller Nagios Client für Android

nagios Hier sieht man das Nagroidinterface. Es zeigt alle am Nagroid Webinterface eingestellten Services an. Mehr kann dieses App jedoch nicht.

Von uns getesteten Beispiele:

HubaX Website online check – ist absichtlich deaktiviert worden.

MySQL Service Checks

_

_

_

Quellen: http://code.google.com/p/nagroid/

iNag – Nagios Client für Apples IOs Betriebssystem

iNag

Wir haben den iNAG Client zwar nicht testen können, weil keiner von uns ein IPhone besitzt, jedoch sieht man in der Beschreibung und den Referenzen, das dieses App viel mehr kann als das Nagroid App.

Quellen: http://idevelop.fullnet.com/iapps/modules/apps/inag.php

4. Zusammenfassung & Fazit

Zusammenfassend lässt sich sagen, dass die Alarmierung per App viel komfortabler und besser ist, da man viel mehr Möglichkeiten hat. Man kann Benachrichtigungen empfangen und als gelesen markieren. Somit kann man eine Art Logbuch am Server führen. Heutzutage hat auch fast jeder einen Internetzugang an seinem Smartphone mit einer Internetflatrate, sodass es auch keine wirtschaftlichen Nachteile bei diesem Alarmierungstyp auftreten.

Über Nagios lässt sich fast nur Gutes sagen. Einfache Installation durch eine Menge von Anleitungen, die im Internet zu finden sind. Es besitzt ein gutes und übersichtliches Webinterface, sodass man sofort loslegen kann. Nagios beherrscht auch die Alarmierung per SMS und Email. Das Einzige was uns ein wenig gestört hat, ist die Konfiguration über die Kommandozeile.

Schlussendlich ist man jedoch immer von der Netzqualität des Mobilfunkanbieters abhängig, denn wenn man keinen Empfang hat, kann man gar nicht benachrichtigt werden.

Passwort Security

Was sind Passwörter?

Das Passwort  ist die am weitesten verbreitete Methode um Benutzer auf Computern zu Authentifizieren und zusammen mit einem Benutzernamen zu  Identifizieren. Dabei hängt die Sicherheit des Passwortes und damit die der Authentifizierung von der Länge des Passworts, von der Anzahl aller möglichen Zeichen und der Gültigkeitsdauer des Passworts ab. Das heißt, am sichersten sind Passwörter die aus möglichst vielen Zeichen bestehen können (das Alphabet mit Groß und Kleinschreibung, Zahlen, Sonderzeichen), die möglichst lang sind und die nur einmal gültig sind (Einwegpasswörter). Aber auch die Auswahl der Zeichen des Passworts ist von großer Bedeutung, bekannte Namen, Wörter, Sätze können leicht mit Wörterbuchangriffen gefunden werden.

In diesem Zusammenhang wurde im Dezember 2009 die Webseite „rockyou.com“ gehackt und dabei die Passwörter von über 32 Millionen Benutzern ausgelesen und veröffentlich. (vgl. [2]) Eine Analyse der Passwörter ergab, dass das am meisten verwendete Passwort (fast 300.000) ist „123456“. Das am zweit (fast 80.000) und dritt (76.000) häufigsten verwendete Passwort ist „12345“ und „123456789“. Außerdem benutzten fast die Hälfte aller User ein Passwort das mit einem Wörterbuchangriff leicht zu finden ist.

Hier eine Liste mit den 20 am häufigsten verwendeten Passwörtern auf „rockyou.com“: (vgl. [1])

Rank | Num of Occurrences | Password
————————————————————–

  • 1    290729    123456
  • 2     79076     12345
  • 3     76789     123456789
  • 4     59462     password
  • 5     49952     iloveyou
  • 6     33291     princess
  • 7     21725     1234567
  • 8     20901     rockyou
  • 9     20553     12345678
  • 10   16648     abc123
  • 11   16227     nicole
  • 12   15308     daniel
  • 13   15163     babygirl
  • 14   14726     monkey
  • 15   14331     lovely
  • 16   14103     jessica
  • 17   13984     654321
  • 18   13981     michael
  • 19   13488     ashley
  • 20   13456     qwerty

Wie verwalte ich meine Passwörter?

Heutzutage braucht man für fast jede Internetseite, für deinen eigenen PC, für das E-Mail Konto, für die Arbeit ein Passwort. Bei so einer Menge an Passwörtern ist es schwierig die Übersicht zu behalten. Auch sollte man auf keinen Fall für alles dasselbe Passwort verwenden.  Eine gute Möglichkeit all diese Passwörter zu behalten und zu verwalten ist ein Passwort Manager. Ein solches Programm ist „KeePass“ (vgl. [4]). Das Programm speichert alle Passwörter in einer Datenbank dir von dem User mit einem Masterkey verschlüsselt und geschützt wird. Somit braucht sich der Anwender nur ein Passwort statt dutzende merken. Die Datenbank kann auch bequem auf einem USB Stick mitgenommen werden und somit hat mein seine wichtigsten Passwörter immer dabei. „KeePass“ bietet eine Reihe von Sicherheitsfeatures wie  einen Zufallszahlengenerator, einen Schutz gegen Wörterbuchangriffe sowie eine Sicherung der Programmdaten im RAM. Um die sensiblen Daten im Arbeitsspeicher zu schützen werden diese dort nur verschlüsselt gespeichert und vor dem beenden überschrieben und somit gelöscht.

Wie werden Passwörter gespeichert?

Um ein Passwort sicher zu speichern verwendet man meist eine Einwegfunktion (Hashfunktion)  die auf das eingegebene Passwort angewendet wird. Somit werden keine Passwörter in Klartext gespeichert und ein Angreifer kann selbst mit den gespeicherten Passwörtern (Hashwert) das System nur schwer kompromittieren.  Um die Sicherheit dieses Verfahrens noch zu erhöhen werden mit Passwörter noch bevor sie mit der Einwegfunktion behandelt werden um eine bekannte Zeichenkette (Salt) verlängert. Das Salt wird dabei in Klartext mit dem Passwort abgespeichert um ein eingegebenes Passwort mit dem gespeicherten vergleichen zu können. Damit wird Sicherheit der Einwegfunktion um ein vielfaches erhöht und selbst einfache Passwörter die mit dem Salt künstlich verlängert werden können nur sehr schwer aus den Hashwerten  errechnet werden.

Was sind kryptologische Hashfunktionen und welche gibt es? (vgl. [7])

Hashfunktionen bilden eine Zeichenkette von beliebiger Länge auf eine Zeichenkette von fester Länge und bestimmten Zeichen ab. Kryptologische Hashfunktionen sind eine Untergruppe die zusätzlich noch Einwegfunktionen sind. Somit kann aus dem Ergebnis nicht auf die Eingabe geschlossen werden. Eine weitere wichtige Eigenschaft von kryptologischen Hashfunktionen ist es, dass man nur sehr schwer zu einer bekannten Eingabe eine zweite (aber unterschiedliche) Eingabe finden kann die dasselbe Ergebnis wie die Erste hat (oder schwächer, dass man nur sehr schwer zwei beliebige Eingaben finden kann die das gleiche Ergebnis haben).

Hier sind nun einige Bekannte Hashfunktionen mit wichtigen Eigenschaften aufgelistet: (vgl. [5])

Funktionsname | Digest size | Max. message length | Compression function | best known collision attack

  • MD5         128 bits                264 bits                512-bit block 128-bit chaining variable                  229
  • SHA-1       160 bits               264 bits                512-bit block 160-bit chaining variable                  269
  • SHA-256    256 bits              264 bits                512-bit block 256-bit chaining variable                  –
  • SHA-512    512 bits              128 bits                1024-bit block 512-bit chaining variable               –
  • Whirlpool  512 bits             264 bits                512-bit block 512-bit chaining variable                  –

Was sind Rainbow Tables und wie funktionieren sie? (vgl. [6])

Die „einfachste“ Möglichkeit ein Passwort das mit einer kryptologischen Hashfunktion gespeichert wurde wiederherzustellen ist, alle möglichen Kombinationen von Eingabewörtern durch zu probieren und den Hashwert mit dem gesuchten zu vergleichen. Da diese Methode sehr Zeitaufwendig ist, wenn man für jedes Passwort von vorne zu rechnen beginnt, und sehr Speicheraufwendig wenn man jedes Klartext, Hashwert Paar abspeichert wurden Methoden entwickelt  mit der der Zeitaufwand durch Speicherplatz bzw. der Speicherbedarf durch Laufzeit reduziert werden kann.

Eine dieser Methoden ist die Rainbow Table (Regenbogentabelle) das Suchfeld für die Hashfunktion einzugrenzen. Dabei werden Ketten, die mit einem Passwort beginnen,  durch das ein Hashwert berechnet wird, der wieder in ein mögliches Passwort umgewandelt wird, usw.  Von diesen Ketten werden nur der der Anfangs- und Endwert gespeichert.

Um nun ein Klartextkennwort zu einem Hashwert zu erhalten, werden auf den Hashwert die selben Funktionen wie zum generieren der Ketten angewendet.  Stimmt nun eines der Zwischenergebnisse mit einem Endeintrag in der Tabelle überein kann die gefundene Kette durchgegangen werden und das Klartextkennwort zu dem Hashwert gefunden werden.

Wie und Wo werden in Betriebssystemen Passwörter gespeichert? (vgl. [14])

In modernen Betriebssystemen werden Benutzerkonten standardmäßig mit einem Passwort geschützt. Alle Betriebssysteme verwenden dabei das gleiche Konzept, das Passwort wird geschützt durch eine Einwegfunktion auf der Festplatte abgelegt. Wenn der User sein Passwort eingeben soll, wird das eingegebene Passwort, auf das wieder die Einwegfunktion angewendet wird, mit dem gespeicherten verglichen und bei Übereinstimmung der Zugriff gewährt.

GNU/Linux (vgl. [8])

Linux, hier am Beispiel CentOS, speichert seine Benutzerdaten in die Datei „/etc/passwd“. Diese Datei kann von jedem User auf dem System gelesen werden. Darin befinden sich die Benutzernamen aller am System vorhanden User, optional das Passwort, die User ID, die Gruppen ID, das Heimatverzeichnis, die verwendete Shell und optional noch zusätzliche Informationen wie zum Beispiel der volle Name das Users. Da die Datei „/etc/passwd“ von jedem gelesen werden muss ist es nicht besonders sicher darin die Passwörter zu speichern, daher verwenden mit meisten Linux Systeme und auch CentOS die Datei „/etc/shadow“ um für jeden User das Passwort abzuspeichern.  Wird die Datei „/etc/shadow“ zum Speichern für das Passwort verwendet steht an  der Stelle des Passworts ein kleines „x“ um zu kennzeichnen das das Passwort in der shadow Datei ist.

Hier einige Einträge aus einem passwd File:

  • postfix:x:89:89::/var/spool/postfix:/sbin/nologin
  • mailman:x:41:41:GNU Mailing List Manager:/usr/lib/mailman:/sbin/nologin
  • postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
  • dovecot:x:97:97:dovecot:/usr/libexec/dovecot:/sbin/nologin
  • clamav:x:100:101:Clamav database update user:/var/lib/clamav:/sbin/nologin
  • user1:x:500:501:User1:/home/ user1:/bin/bash
  • user2:x:501:502:Benutzer Eins:/home/ user2:/bin/sh
  • user3:x:503:502::/home/ user3:/bin/false
  • user4:x:506:506::/home/ user4:/bin/bash
  • user5:x:507:501::/home/ user1/homes/ user5:/dev/null
  • user6:x:508:501:Benutzer Sechs:/home/ user1/homes/ user6:/dev/null
  • user7:x:509:501: Benutzer Sieben:/home/ user1/homes/ user7:/dev/null
  • user8:x:510:501: Benutzer Acht:/home/ user1/homes/ user8:/dev/null
  • user9:x:511:501: Benutzer Neun:/home/ user1/homes/ user9:/dev/null
  • user10:x:512:501: Benutzer Zehn:/home/ user1/homes/ user10:/dev/null

Die Datei  „/etc/shadow“  kann nur vom User root gelesen werden und somit können darin Passwörter sicher gespeichert werden. Die Datei einhält den Benutzernamen zu dem das Passwort gehört, das Passwort in verschlüsselter Form (geschützt meist durch einen Hash Algorithmus, hier MD5) , das Datum an dem das Passwort das letzte Mal geändert wurde und noch einige weitere Felder die in der Literaturquelle [8] genauer erklärt werden. Das Feld in dem das Passwort gespeichert wird, wird noch in weitere Felder unterteilt, die mit einem $-Zeichen getrennt sind. Zur verarbeitung des Passwortfeldes wird die Funktion crypt verwendet, für genauere Erklärungen siehe die Manpage von crypt(5) im Literaturverzeichniss [9]. Beginnt der Passwortstring mit einem $ wurde ein anderen Algorithmus als DES verwendet. Die Zeichen „$1$“ am Anfang  geben zum Beispiel an das der MD5 Algorithmus verwendet wurde. Wird MD5 verwendet folgen anschließend 8 bytes die einen Salt für das Passwort darstellen. Anschließend, getrennt durch ein „$“ folgt das verschlüsselte Passwort mit 22 bytes.

Hier einige Einträge aus einem shadow File:

  • user1:$1$64940791$fmqrzRd1sdssntS580grd0:14640::::::
  • user2:$1$65116444$C4NnRGHGeuhfSDg2MOU9l1:14642::::::
  • user3:$1$65202459$K3.7WDplFcGp2rYjH4irU1:14650::::::
  • user4:$1$ehYkbFVR$hVYycGCtO7yNIsek6wEPy.:14653:0:99999:7:::
  • user5:$1$66238589$dMlbYZ/EN0wlUWRA7Hv001:14655::::::
  • user6:$1$66488849$FIl6aIv2VZnsg.dNMjJhJ/:14658::::::
  • user7:$1$66603118$QwTb1n5gpftJHDiSx5uyj0:14659::::::
  • user8:$1$66603171$APje/DqNfFFLISORcPrUx/:14659::::::
  • user9:$1$66603284$3MavUXyEUrNp8YcxaqMil0:14659::::::
  • user10:$1$66603362$U.kQCom4sVzeJ0KRW7wE..:14815::::::
  • user11:$1$66603488$U/L2G3d9Nl8sA1WlnCuJa1:14659::::::
  • user12:$1$66603553$zMODEUpIaa3yG2j9wxoXw/:14659::::::
  • user13:$1$66603630$PeLFLUnO/B7NCcDjBeKTL1:14659::::::
  • user14:$1$66603781$yh7oHN9W54.oZv8T4nN8e0:14659::::::
  • user15:$1$66606855$EzrUC.dlCX6glV9hRx.sf0:14659::::::

Jeder Benutzer gehört auch einer Gruppe an. Informationen über Gruppen werden in der Datei „/etc/group“ gespeichert. Für jede Gruppe werden folgende Informationen gespeichert: der Gruppenname, optional das Passwort, die Gruppen ID und eine Liste mit den Benutzernamen die Mitglied in der Gruppe sind. Auch für Gruppen kann das Passwort in einer zweiten Datei gespeichert werden. Die Datei „/etc/gshadow“ enthält dann den Gruppennamen, das verschlüsselte Passwort, den Gruppenadministrator und die Mitglieder der Gruppe.

Hier einige Einträge aus einer group Datei:

  • root::0:root
  • bin::1:root,bin,daemon
  • daemon::2:root,bin,daemon
  • sys::3:root,bin,adm
  • adm::4:root,adm,daemon
  • tty::5:
  • disk::6:root
  • lp::7:daemon,lp
  • mem::8:
  • kmem::9:
  • wheel::10:root
  • mail::12:mail,postfix
  • news::13:news
  • uucp::14:uucp
  • man::15:
  • games::20:
  • gopher::30:
  • dip::40:
  • ftp::50:
  • lock::54:
  • nobody::99:

Windows XP (vgl. [12])

Windows speichert die Benutzerinformationen in dem „Security Accounts Manager“ der die Daten als Registry Datei meist unter %windir%/system32/config/SAM ablegt. Die Passwörter werden als „LM hash“ und „NTML hash“ abgespeichert. Da der LM hash ein großes Sicherheitsrisiko birgt kann optional abgeschaltet werden, in neueren Windows Versionen, ab Windows Vista, ist dies Standard. Um die Sicherheit der Passwörter noch zu erhöhen wird die Datenbank mit der SysKey-Funktion (vgl. [13]) verschlüsselt.

Offline Angriffe auf Benutzerpasswörter

Da man als normaler User unter Linux normalerweise nicht das Passwortfile auslesen kann und unter Windows der Zugriff auf die Datenbank im laufenden Betrieb nicht möglich ist, gibt es mehrere Möglichkeiten, wenn man physikalischen Zugriff auf das System hat, die Passwörter bzw. die Passworthashwerte einfach auszulesen.  Mit verschiedenen Boot-CDs kann der Rechner durch ein sich auf der CD befindliches Betriebssystem gebootet werden und über diese das Passwortfile ausgelesen und kopiert werden. Auch gibt es spezielle CDs die darauf ausgelegt sind die Passwörter  auszulesen und das Originalpasswort aus dem Hashwert zu errechnen. Auch bieten viele solche CDs die Möglichkeit das Passwort das Systems zu ändern oder löschen um somit ein einloggen beim nächsten Start des Betriebssystems zu ermöglichen.

Hat man einen Passworthash oder eine Datei mit Hashes (zum Beispiel die Linux shadow oder das Windows SMA File) vor sich gibt es verschiedene Möglichkeiten um ihn wieder das Anfangspasswort umzuwandeln. Für Windows kann dafür zum Beispiel das Programm „Cain and Abel“ (vgl. [10]) verwendet werden unter Linux gibt es das bekannte Programm „John the Ripper“ (vgl. [11]) verwendet werden. Es gibt noch viele gewerbliche Programme die Zusatzfeatures anbieten wie das Benutzen der Grafikkartenrechenleistung oder verteiltes rechnen auf mehreren PCs.

Literaturverzeichnis:

OpenVZ unter CentOS 5.4 installieren und konfigurieren

Dieser Artikel beschreibt wie man openVZ auf CentOS 5.x installiert (bei mir war es 5.4) sowie Container erstellt, einstellt und verwaltet und auch iptables konfiguriert damit private sowie externe IP Adressen funktionieren.

OpenVZ bietet die Möglichekeit auf einem Server mehrer virtuelle Contrainer aufzusetzten, die alle verschiedene Linux Distribution beinhalten können soch aber einen gemeinsamen Kernel teilen. Die Container sind völlig voneinder abgeschottet und erscheinen wie pysikalische Server.

Ich bin nach der Anleitung von PlanetAmon vorgegangen und werde diese hier um eineige Details erweitern. Aber auch der Quick Installation Guide von openVZ ist sehr hilfreich und detailiert.

Installieren von OpenVZ

Als ersters müssen wir die openVZ Repos zu zu unseren Quellen hinzufügen.

cd /etc/yum.repos.d
wget http://download.openvz.org/openvz.repo
rpm --import http://download.openvz.org/RPM-GPG-Key-OpenVZ

Es gibt verschiedene Arten von openVZ Kernel (dessen volle bedeutung mir nicht ganz klar ist), wichtig ist jedoch den richtigen Kernel für ein 32bit oder ein 64bit System auszuwählen.

yum install ovzkernel

Bei einem 64bit System werden beide Kernel angeboten deshalb hängen wir die genaue bezeichnung an unser Paket:

yum install ovzkernel.x86_64

Der Kernel ist nun installiert und kann gebootet werden. Dazu muss die Datei /boot/grub/grub.conf editiert werden. Falls nano nocht nicht installiert ist, hilft: yum install nano

nano /boot/grub/grub.conf

Der Kernel mit der Bezeichnung „CentOS (2.6.8-022stab029.1)“ oder einer anderen Versionsnummer ist der von openVZ (müsste als erster Eintrag stehen). Wir editieren nun die Konfig Datei um die openVZ Kernels gleich zu erkennen, ersetzen wir den Namen CentOS mit openVZ. Falls ein Fehler beim Booten auftritt (kernel Panic) soll der alte Kernel gebootet werden (hilfreich bei Servern auf die man keinen physikalischen Zugriff hat).

timeout 5
default saved # von 0 auf saved geändert
fallback 1 # hinzugefügt

title OpenVZ (2.6.18-164.10.1.el5.028stab067.4) # von CentOS auf OpenVZ geändert
root (hd0,1)
kernel /vmlinuz-2.6.18-164.10.1.el5.028stab067.4 ro root=/dev/md2 vga=0x317 panic=5 # panic=5 hinzugefügt
initrd /initrd-2.6.18-164.10.1.el5.028stab067.4.img
savedefault fallback # hinzugefügt

title CentOS (2.6.18-164.11.1.el5)
root (hd0,1)
kernel /vmlinuz-2.6.18-164.11.1.el5 ro root=/dev/md2 vga=0x317 panic=5
initrd /initrd-2.6.18-164.11.1.el5.img
savedefault # hinzugefügt

Hiermit wird der Eintrag 0 defaultmäßig gebootet und bei einer Kernelpanic wird auf den Eintrag 1 umgeschalten, damit das System automatisch wieder bootet. Das wird auch duch den Parameter panic=5 bewirkt der nach 5 Sekungen den Computer neustartet.

Damit das System nach einem erfolgreichen Boot wieder den Defaulteintrag 0 nimmt, wird in die Datei /etc/rc.local die Zeile „echo „savedefault –default=0 –once“ | /sbin/grub –batch“ hinzugefügt.

Konfiguration

Zuerst brauchen wir einige Admin Tools:

yum install vzctl vzquota

Damit das Netzwerk richtig funktioniert brauchen wir zusätzliche Zeilen in der Datei /etc/sysctl.conf

nano /etc/sysctl.conf

net.ipv4.ip_forward = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.all.rp_filter = 1
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.conf.default.forwarding=1

Nun starten wir unser System neu (mit reboot) und loggen uns wider ein. Um zu kontrollieren ob der richtige Kernel geladen wurde verwenen wir den Befehl:

uname -r
2.6.18-164.10.1.el5.028stab067.4

Anlegen eines Containers

Zuerst brauchen wir ein Template für einseren Container, das ist ein fertiges System, dass anschließend im Container ausgeführt wird und mit dem wir artbeiten können.

OpenVZ stellt einige Templates auf ihrer Seite zur verfügung. Das CentOS 5 Template laden wir mit folgenden Befehlen herunter.

cd /vz/template/cache
wget http://download.openvz.org/template/precreated/contrib/centos-5-i386-default.tar.gz

Um unsreren Container nun mit diesem Template zu erszeugen geben wir folgenden Befehl ein:

vzctl create 101 --ostemplate centos-5-i386-default --config vps.basic

Die Nummer 101 ist der Name unter der unser Container nun konfiguriert werden kann.

Um den Container nun zu konfiguriern wird das Programm vzctl benutzt:

vzctl set 101 --hostname webspace.die-lega.org --save

Damit wird der Hostname unseres Containers gesetzt

vzctl set 101 --diskspace $(( 1048576*50 )):$(( 1153434*50 )) --save

Hiermit stellen wir unsere Festplattengröße auf 50GB (Soft,Hardlimit)

vzctl set 101 --ipadd 192.168.11.101 --save

Damit setzten wir die IP Adresse (entweder eine öffentliche oder eine Private (nur interne), die dann mit iptables und NAT auf die öffentliche vom Server umgesetzt werden muss

vzctl set 101 --onboot yes --save

Soll der Container beim start mitgestartet werden

vzctl set 101 --nameserver 213.133.99.99 --nameserver 213.133.100.100 --nameserver 213.133.98.98 --save

Die Nameserver setzen

vzctl exec 101 passwd

Das root Passwort unseres Containers setzen

vzctl set 101 --vmguarpages $((256 * 512)) --save

Den Garantierten RAM setzen (mindestgröße)

vzctl set 101 --privvmpages $((256 * 2048)) --save

Den Maximalen RAM setzen (könnte bis auf mindesgröße verkleiner werden)

vzctl start 101

Hiermit starten wir die Maschine

Betrieb & Überwachung eines Containers

Hier einiege Befehle die für den Betrieb eines Containers wichtig sind:

Öffnen eines Containers:

/usr/sbin/vzctl enter 101

Verlassen eines Containers:

exit

Speicherverbrauch anzeigen:

vzcalc -v vpsid

Festplattenverbeuacht:

vzquota stat vpsid

Einschalten:

/usr/sbin/vzctl start 101

Ausschalten:

/usr/sbin/vzctl stop 101

Netzwerk konfiguration

Standardmäßig ist bei CentOS netfilter (iptables) aktiviert und lässt nur eingehende Verbindung auf bestimmten Ports zu (zB ssh).

Es wird auch empfohlen sich über iptables zu informieren, damit man weiß was man hier tut, sonst sperrt man sich sehr schnell aus seinem eigenen Server aus.

Um nun unseren Containern den Zugang zum Netz zu gewähren müssen einige Regeln hinzugefügt werden:

Wenn wir private IP auf unseren Container verwenden zB.: das Netz 192.168.11.0/24 also alle Adressen von 192.168.11.1 – 192.168.11.254 müssen wir NAT konfigurieren:

iptables -I POSTROUTING -s 192.168.11.0/255.255.255.0 -o eth0 -j SNAT --to-source X.X.X.X

Damit werden alle Pakete vom Netz 192.168.11.0/24 auf die Adresse x.x.x.x (die öffentliche Adresse des Servers) umgesetzt. Sollte der Server keine fixe IP Adresse haben, dann sollte statt SNAT MASQUERATE verwendet werden.

iptables -I POSTROUTING -s 192.168.11.0/255.255.255.0 -o eth0 -j MASQUERATE

Zusätzlich müssen aber noch die Pakete erlaubt werden:

iptables -I FORWARD -s 192.168.11.0/255.255.255.0 -j ACCEPT
iptables -I FORWARD -d 192.168.11.0/255.255.255.0 -j ACCEPT

Damit werden alle Pakte von und zu unserem Netz die geroutet werden (nicht zu unserem Server gehen) erlaubt.

Hat der Container eine öffentliche IP Adresse müssen nur die Paket von und zu dieser Adresse erlaubt werden:

iptables -I FORWARD -s X.X.X.X -j ACCEPT
iptables -I FORWARD -d X.X.X.X -j ACCEPT

Es können so auch in einem Container eine öffentliche Adresse und in anderen private Adressen verwendet werden.

Um die Konfiguration von iptables dauerthauft zu speichern führen wir folgenden Befehl aus:

/sbin/iptables-save > /etc/sysconfig/iptables

Damit sollte alles funktionieren und es können eine beligebe Anzahl von weiteren Containern angelegt werden.

Fujitsu Siemens Stylistic 4120p – Tablet PC – Ubuntu 8.04 – HowTo

Wie installiere ich Ubuntu auf einem ST4120p. Die Originalanleitung stammt von ubuntu.com

1. Installation

Am einfachsten funktioniert die Installation mit einer Ubtuntu Alternate CD 8.04.2 und einem USB CD-Rom Laufwerk. Bei bedarf muss noch die Bootreihenfolge im Bios eingestellt werden. Die Ubuntuinstallation kann ganz normal durchgeführt werden (Hilfe gibts auf ubuntuusers.de

2. Erste Start

Da am Anfang der falsche Treiber für die Grafikkarte gewählt wird startet die grafische Oberfläche nicht und man muss mit STRG+ALT+F1 auf die Konsole wechseln. Dort den Benutzernamen und das Passwort eingeben und sich anmelden. Jetzt einfach die aktuelle xorg.conf durch die von ubuntu.com ersetzten.

Am einfachsten geht dies mit wenn man schon ein funktionierendes Netzwerk hat. (Hinten am Tablet ist der Schalter zum einschalten des Netzwerkmoduls.)

Nach einem Neustart sollte die grafische Oberfläche funktionieren.

3. Der Touchscreen

Mittels apt-get build-dep xserver-xorg-input-fpit && apt-get source xserver-xorg-input-fpit die Sourcefiles für fpit herunterladen. Die xf86Fpit.c Datei im Ordner src/ durch die von ubuntu.com ersetzen und das ganze mittels configure && make compilieren. Nun die compilierte fpit_drv.so im Ordner src/.lib/ nach /usr/lib/xorg/modules/input/ kopieren.

Nun muss nur mehr die serielle Schnittstelle konfiguriert werden. Mittels sudo apt-get install setserial das Programm setserial installieren und in die Datei /etc/serial.conf folgendes eintragen: /dev/ttyS0 uart 16550A port 0x0220 irq 4 baud_base 115200 spd_normal skip_test

Nach einem Neustart sollte der Touchscreen funktionierten.

4. Die Tasten

Das Paket von http://sourceforge.net/projects/fjkey-st4000 herunterladen, entpacken und der Anleitung folgen. Es kann das Installskript für Suse verwendet werden. Um das ganze jedoch auf Ubuntu zum laufen zu bringen brauch es noch ein bisschen Abreit. Das nötige Modul mit modprobe fjkey_st4000 laden und wenn es funktioniert die Zeile fjkey_st4000 in /etc/modules eintragen um bei jedem start geladen zu werden. Das Startskript muss angepasst werden, am besten einfach dieses verwenden. Nun noch einen Link mit ln -s /etc/init.d/fjiod /etc/rc2.d/S32fjiod erstellen und neustarten und das ganze Testen.

Die Tasten können mittels den Dateien in /etc/fjio_run/ konfiguriert werden.

5. Die Maus konfigurieren

Zuerst müssen die Hilfstechnologien unter System > Einstellungen > Hilfstechnologien aktiviert werden. Auch müssen mittels sudo apt-get install mousetweaks die mousetweaks installiert werden. Unter System > Einstellungen > Maus – Barrierefreiheit den „Kontextklick durch Gedrückthalten der ersten Taste auslösen“.

6. Scripte

Um den Bildschirm drehen zu können benutzen wir das Tool xrandr mittels xrandr -o right und xrandr – o normal. Mit einem kleinen Skript kann man nun die Bildschirmausrichtung toggeln und auch über die Datei /etc/fjio_run/Rotate_Scr aufrufen und so den Bildschirm über einen Knopf rotieren lassen.

Um die Bildschirm abdunkeln zu können muss das Modul modprobe video laufen. Dann kann mittels echo 8 > /proc/acpi/video/VGA/LCD/brightness die Helligkeit gänder werden. Ach dies kann mit einem Skipt verbessert werden und auf einem der Knöpfe gestellt werden. Damit dies auch ohne root Rechte funktioniert wird in die Datei /etc/rc.local der Befehl chmod 777 /proc/acpi/video/VGA/LCD/brightness

7. Programme

Als Onscreen Keyboard verwende ich xvkbd, kann einfach über sudo apt-get install xvkbd installiert werden.

Gournal ist ein guter „Notizblock“.

Gestikk kann Mausgesten und damit auch die Gesten am Touchscreen verarbeiten und auswerten. Es ist einfach über diese Anleitung zu installieren.

8. Ruhezustand und Standby

Über das Tool sudo gconf-editor kann über apps -> gnome-power-manager -> lock die Passwort abfrage für hibernate und suspend ausgestellt werden.

9. WLAN

Nach der Anleitung von https://help.ubuntu.com/community/FujitsuStylisticST4000#Ubuntu%207.10%20/8.04 kann auch die Netzwerkkarte auf WPA geupdated werden.

Ich hoffe ich hab nichts vergessen. Falls irgendwas nicht so funktioniert wie es hier steht, lasst es mich wissen. 😀 Bei mir funktionierts und ich helfe gerne.

Zufallszahlen

Zufallszahlen sind in der mordenen Welt von enormer Bedeutung. Sie sind in vielen wissenschaftlichen und praktischen Bereichen, ein fundamentaler Bestandteil der täglichen Arbeit. Ein Problem bei der Erzeugung von Zufallszahlen ist, dass echte Zufallszahlen nur mit großen Aufwand oder teuer erzeugt werden können.

Abhilfe dabei scha en mathamatische Algorithmen, welche aber nur Pseudozufallszahlen hervorbringen. Diese Pseudozufallszahlen haben erhebliche Nachteile, wie die Reproduzierbarkeit oder die endliche Periode. Dennoch sind Pseudozufallszahlen der Ausgangspunkt für die meißten modernen Anwendungen wie bei Algorithmen zur Verschlüsselung von Daten oder Erzeugung von Schlüsseln.

Um eine möglichst gute Zufälligkeit zu gewährleisten verwenden Computer zufällige Signale der Hardware, wie Benutzereingaben, Netzwerkverkehr oder Zugri ffszeiten, um ihre Zufallszahlen zu erzeugen und damit zu verbessern. Trotzdem kann keine absolute Zufälligkeit gewährleistet werden und so beleibt immer eine kleine Schwachstelle in jedem Algorithmus der auf Pseudozufallszahlen beruht.
Schlagworte: Zufallszahlen, Pseudozufallszahlen, Linux Pseudozufallszahlengenerator,
Linux-PRNG.

Hier die ganze Arbeit, die ich für die UNI geschrieben hab: Zufallszahlen

Praktische Backup Methoden für Linux und Windows

Dies soll eine kleine Auflistung und Erklärung zu den verschiedenen Methoden werden, wie man seine Daten am einfachsten und besten sichert.

Würde mich über Kritik und Anregungen freuen.

Ein wichtiger Punkt bei jeder Art von Sicherung ist, sie vorher schon einmal auszuprobiern um sicher zu gehen, dass man wenn mal alles im Argen ist seine Daten auch wieder zurück bekommt und man dann nicht feststellne muss, das das Sicherungssystem was man sich überlegt hat eigentlich gar nicht funktioniert.

== Hardware basierende Backups ==

Hat sehr wichtige Daten oder Daten die sich sehr schnell ändern kommt man um ein Raid-System (egal ob Software oder Hardware) nicht herum. Dabei werden die Daten schon beim Schreiben auf unterschiedlichen! (ein Softwareraid auf der selben Festplatte bringt nicht viel) Festplatten abgelegt. Alle aktuellen Betriebsysteme können von Haus aus Softwareraids erstellen und auch die meißten neuen Motherboard sind mit einer Raid-Funktion (manchmal mehr Software, mamchmal mehr Hardware) ausgestattte.

Die einfachsten und billigsten Lösungen dafür sind RAID 1 (spiegeln einer Festplatte mit einer Anderen) oder RAID 5 (mehrere Festplatten im Verbund wobei jede Platte Daten- und Sicherungsbits enthält). Diese beiden Raidarten bekommt man auch schon billig auf Motherboards und PCI(-E) Controllern oder als SoftwareRaid.

Auch wenn man nun sichergehn kann, dass wenn eine Festplatte ausfällt keine Daten verlohren gehen, bleiben einige Risiken. Es könnten mehrere Platten auf einmal ausfallen (auch wenn die Wahrscheinlichkeit, dass das am selben Tag, der selben Woche passiert relativ klein ist). Es der PC beschädigt werden, Virus, Wasserschaden, Feuerschaden, Bitzschlag. Deshalb sollte man zusätzlich die Daten in regelmäßigen Abständen auf externe Datenträger spielen und irgendwo anders aufgbewahren (möglichst ein einem Tresor). In Firmen werde dazu bis heute Magnetbänder eingesetzt die einmal am Tag getauscht werden und zusätzlich noch 3 Wochen (oder mehr, oder weniger) aufbewahrt werden bis sie wieder mit neuen Daten überschrieben werden. Eine billigere Möglichkeit wäre es eine Externe Festplatte zu verweden oder Sicherungen auf DVDs (CDs sind wohl schon zu klein, bei Blue-ray muss man nicht so oft die Disk wechseln). Auch wenn DVD sind sehr lange halten (einige Jahre) und Festplatte relativ anfällig sind, wenn sie in einer Ecke rumliegen, reicht es für den Hausgebrauch ellemahl.

== Software basierende Backups ==

Software basierende Lösungen sind meißt billiger und laufen voll automatisch wenn man sie einmal eingerichtet hat, man braucht sich also von seinem Sessel nicht mehr weg zu bewegen um seine Daten irgendwo anderst hin zu sichern. Sicherungen sollten (müssen) immer auf andere Laufwerke gemacht werden. Sicherung auf die selbe Festplatte bringen nur etwas wenn man Daten wiederherstellen will die man versehentlich in den Papierkorb verschoben hat, sie aus dem Papierkorb wieder gelöscht hat und schon andere Daten auf der Festplatte darübergespielt hat.

Auch eine komfortable und sichere Möglichkeit, ist das Backup übers Netzwerk. Hat man einen kleinen Server, kann man dort seine Daten in regelmäßigen Abständen sichern. Hat man nur zwei einfache PCs in seinem Netzwerk, können diese ihre Daten gegenseitig speichern und sichern. Somit hat man bei einem Totalverlust seines Rechners alle seine Daten noch im Haus.

Ein sehr sicherer Ort um seine Daten dort zu sichern ist das Internet. Mit immer schnelleren Breitbandanschlüssen ist es auch nicht mehr eine sache von Wochen um seine wichtigsten Daten auf irgendwelchen Filehostern oder bei eignen Backupfirmen zu sichern. Es gibt zahlreiche Unternehmen bei denen mein für kleines (oder auch großes) Geld seine Daten lassen kann. Man sollte jedoch bevor man wichtige Daten überspielt diese auf jedenfall komprimieren und verschlüsseln. Somit ist man der einzige der mit den Daten auch wieder etwas anfangen kann.

Es gibt zwei Arten von Backups: Inkrementelle Backups und Full Backups. Am Anfang jedes Inkrementellen Backups steht natürlich ein volles Backup. Inkrementelle Backups haben den Vorteil, dass immer nur neue und geänderte Daten seit dem letzten Backup gesichert weren müssen. Dies erspart Zeit und Bandbreite. Man muss sich aber im klaren sein, das man selbst wenn man jede Woche ein inkrementelle Backup macht, praktisch nur ein Backup besitzt, welches wenn der Hauptteil beschädigt ist, nicht mehr zu retten ist. Deshalb solle man einen gesunden rhythmus finden in dem man neue Speicherpunkte beginnt und wieder mit inkrementellen Backups weiter macht.

=== Backups unter Linux ===

Bei einem Server können alle Backups sehr leicht automatisiert werden, da ein Server sowieso die meißte Zeit läuft, hat er in der Nacht eher weniger zu tun und dashalb genug Zeit für Backups.

Bei einem Client stören automatische Backups oft, da sie meißtens zur falschen Zeit kommen oder der PC nicht eingeschalten ist. Aber es gibt auch gute und einfache Hintergrunddienste die je nach Einstellung ohne zutun des Benutzers Backups erstellen und an einen gewünschten Ort speichern (z.B.: Simple Backup – Ubuntu)

===== Archivieren und Ablegen =====

Die einfachste Möglichkeit so ein Backup zu erstellen, ist alle wichtigen Daten in ein Archiv zu packen, zu komprimieren und an einer Sicheren stelle abzulegen. Dies kann eine zweite Festplatte im Server sein, ein anderer Server, … Die Standardsoftware auf einem Linux reicht defür völlig aus. Mit „tar“ können volle sowie inkrementelle Backups erzeugt und auch gleich komprimiert werden. Der cronjob muss das Backup nun nur mehr in regelmäßigen abständen aufrufen und gut is.

Hier ein kleies Skript das diese aufgabe löst. Ich verwende es selbst und bis jetzt hat is mich nicht enttäuscht. Ein Eintrag in /etc/crontab: „11 00 * * * root /root/scripts/data_backup.sh | tee -a /var/log/scripts/data_backup.log“ lässt das Script um 00:11 starten und speichert die ausgaben in ein Logfile. Außerdem schickt crontab automatisch eine Mail mit der Ausgabe der Zeile (nach etwas konfiguration).

===== Inkrementelle Backups mittel rsync =====

rsync ist ein geniales Tool, welches daten inrementell auch übers Netzwerk sichert. Das Programm vergleicht zwei Verzeichnisse und updated das Backup Verzeichniss. Mit einem kleinen Script drumherum kann man so sehr einfach ein Snapshot Backup erstellen. Dadurch ist z.B: ein komplettes Monat lang alle Änderungen, Löschungen, etc. vefolgbar und können wieder rückgängig gemacht werden. Dazur werden einfach alle Backuporner der letzten Tag um einen Tag nach hinter verbschoben, das älteste gelöscht und das Heutige wird vom Letzten per Hardlink kopiert. Wenn dan rsync die aktuellen Verzeichnisse abgleicht überschreibt er die geänderten Daten und alle anderen beleiben wie sie sind. So werden alle Daten genau einmal gepspeichert und aller abbdereb nur Verknüpft.

Hier eine Anleitung dazu: Easy Automated Snapshot-Style Backups with Linux and Rsync

===== Automatiserte OnlineBackups auf Rapidshare =====

Eine der sichersten Orte für Daten die in Rechenzentren rund um die Welt gepseichert werden.

Ich persönlich hab mich für Rapidshare.com entschieden, da ich dort sowieso einen Account habe. Aber Rapidshare.com speicher auch Daten für 90 Tage kostenlos und es gibt ein automatisches Upload Tool für Linux.

Bevor man seine Daten hochladen kann müssen sie gepackt, komprimiert, verschüsselt und geteilt werden. Dieses Skript erledigt das und lädt die Daten anschließend mit einem Tool namens uploadsys hoch.

===== Images der Festplatte =====

Eine sehr einfache Möglichekeit seinen kompletten PC zu sichern ist ein Image der Festplatte. Es gibt zahlreiche Programme die das währen des Betriebs bewerkstelligen ohne das der Anwender wirklich etwas davon merkt. Es gibt auch hier die Möglichekeiten ders vollen oder inkrementellen Backup.

In Linux können Images bequem per dd erstellt werden. Dabei werden jedoch alle Blöcke auf der Festplatte mitkopiet, somit is eine komprimierun sicherlich keine schlecht Idee.

=== Backups unter Windows ===

Gerade unter Windows ist es sehr einfach alle Arten von Backups zu erstellen, da es eigentlich für jeden Bedarf grafische Tools gibt. In der Linkliste am Schluss dieses Artikels sind einige Freware und Shareware Programme verlinkt.

===== Mit Windwos mitteln =====

Windows bring ein eigenen Backupprogramm mit, das für die meißten Zwecke allemal ausreicht. Es können damit alle Arten von Backups erstellt werden und auch automatisiert.
Bei Windows XP liegt das Programm in Zubehör -> System Programme -> Backup.

===== Images der Festplatte =====

Ein solches Backup braucht jedoch sehr viel Platz, da auch unnötige Daten mit gespeichert werden. In einer Firma wo auf Rechnern meißt nur die Windows mit den nötigen Programmen installiert ist zahlt sich so ein Backup schon eher aus. Ein größer Vorteil ist nämlich, sollte Windows probleme beim booten oder Programme probleme beim starten machen kann der Computer in kurzer Zeit wieder auf seinen vorherigen Zustand zurückgesichert werden.

===== Online Backup =====

Für Windows gibt es zahlreiche grafische Tools die Daten online Backup’n und auch bei bedarf wieder zurücksichern können. Meißtens kosten diese Lösungen jedoch ein bisschen Geld, ein kostenloses Angebot, welches 50GB an speicher zu Verfügung stellt ist Adrive.

== Links ==

* Software Raids
** Windows XP
** Ubuntu

* Datenwiederherstellung
** PC Inspektor – Freeware
** Artikel zur Datenrettung unter Windows

* Internet Filehoster
** Rapidshare – hostet Files gratis für eine gewisse Zeit
** Adrive – 50GB gratis Speicherplatz

* Image Programme
** DriveImage XML – freeware
** Norton Ghost
** Fesplattenimage mit Knoppix

* BackupTools für Linux
** http://duplicity.nongnu.org
** http://wiki.ubuntuusers.de/sbackup Simple Backup für Ubuntu

== Quellen ==

* http://free-backup.info/why-do-i-need-to-backup-my-files.html
* http://de.wikipedia.org/wiki/Backup
* http://en.wikipedia.org/wiki/Backup

Left 4 Dead dedicated noSteam LAN/Hamachi/Internet Linux Server

Worum gehts:

  • Wie setzte ich einen Left 4 Dead Server für LAN / Hamachi / Internet auf?
  • Wie können Clients am besten auf den/die Server connecten?
  • Wie Administriere ich meinen Server?

Bemerkungen:

Mit den nötigen Patches können alle Clients (Steam / No-Steam) connecten
Die aktuelle Left 4 Dead Version ist 1.009

Aufsetzen des Servers

  1. Anlegen eines Ordners für den Server
    mkdir hlds
    cd hlds
  2. Download des Server über Steam
    wget http://storefront.steampowered.com/download/hldsupdatetool.bin
  3. Updaten und Installieren des Tools
    chmod +x hldsupdatetool.bin
    ./hldsupdatetool.bin chmod +x steam
    ./steam -command update -verify_all
  4. Downloaden der neuesten eSTEAMATiON Version eSTEAMATiON (V1.8) und VUP (V2.11)
  5. Downloaden der neuesten ViTYAN’s GameServers Universal Patch(VUP) Version eSTEAMATiON (V1.8) und VUP (V2.11)
  6. Patchen des Server auf die No-Steam Version
    Folgt der Anleitung auf eSTEAMATiON (V1.8) und VUP (V2.11) des Videos oder der Readme im eSTEAMATiON Archiv.
    Kommt der Punkt mit „Patchen mittels VUP“ entpackt die Dateien von VUP in das aktuelle Verzeichniss und

    chmod +x vup_i686 ./vup_i686 - esteamation-prep -esteamation-allow-dublicate-ids l4d/bin/engine_i486.so

    Damit ist der Server gepatched.

  7. Sollte man beim connecten eines No-Steam Clients einen Neustart beim Server haben.
    So liegt dies an einem Fehler in der steamclient_linux.so und man muss diese durch eine gepachte version ersetzen. Downloaden der Version von: REVOLUTiON Emulator und folgt der Linux Version (V1.5). Die Datei entpacken und über l4d/bin/steamclient_linux.so spielen. Nun sollte es zu keinen Problemen mehr kommen.
  8. Konfigurieren des Server

  9. Anlegen einer server.cfg
    nano l4d/left4dead/cfg/server.cfg
    -------------------------------------------------------------------------------------------
    hostname "xxxxxxxxxxxxxx"
    rcon_password "xxxxxxxxxx"
    
    // sv_password "" // password to server, leave commented out for public server
    sv_lan 1 // 1 - LAN , 0 - Internet
    //sv_steamgroup 40346 // Steam group # to assign to server
    //sv_steamgroup_exclusive 0 // <1> Do not connect to the Match Making Service
    sv_allow_lobby_connect_only 0 // Allow connections without creating lobby
    sv_region 255 // East Coast
    sv_visiblemaxplayers 8 // Visible Player Slots
    mp_disable_autokick 1 // Keeps from automatically kicking players
    
    // Server Gameplay Settings
    sv_cheats 0 // 0 - Off, 1 - On
    
    // Voice Options
    sv_alltalk 0 // 0 - Off, 1 - On
    
    sv_pausable 1 // is the server pausable
    
    sv_downloadurl "http://myserver.com"
    sv_filetransfercompression 0
    
    --------------------------------------------------------------------------------------------
  10. Versus-Only Server
    Auf der Seite Instructions to Set Up Perfect Versus Only Serverfindet man eine immer aktualisierte Anleitung wie man einen Versus-Only / Normalen Server aufsetzt.
    Bei der aktuellen Version vom l4dmapchangeforcer Plugib muss die config Datei angepasst werden (Standardeinstellung ist coop)
    Das Plugin L4D Director Enforcer sollte man glaub ich nicht installieren (mit hat es bei mir nicht funktioniert)
  11. Coop-Only Server
    Einfach als Startmap eine CoopMap einstellen, diese wird mit der neuen Version des Force mapchanger (V1.03)
    gewechselt
  12. Zusätzliche Maps
    Hinzufügen der fehlenden VS Maps aus dem Mappack von diesem Howto und eintragen in maplist.txt, mapcycle.txt, missioncycle.txt.
    Anpassen der left4dead/addons/sourcemod/data/sm_l4dvs_mapchanger.
    Sollen die Maps von den Clients downgeloaded werden können, muss in der server.cfg die sv_downloadurl eingestellt werden.
  13. Starten des Servers
    ./srcds_run l4d -console +ip 192.168.1.141 +hostport 27015 -nomaster +exec server.cfg +map l4d_farm01_hilltop
  14. Client Patchen und Verbinden

  15. Patchen des Clients
    Hat man einen Client der nicht auf der aktuellen Version 1.0.0.9 ist kann man sich von hier: Left 4 Dead (Update 23.01.2009) den Aktuellen Patch mit allen nötigen No-Steam Dateien Downloaden
  16. Starten aus der Console
    Man erstellt einen Link auf die left4dead.exe und hängt hinter dern pfad …left4dead.exe“ -console an, dannach startet das Spiel mit der offenenen Console. Man gibt nun

    connect 00.00.00.00 (Die aktuelle IP des Server statt 00..).

    Damit sollte man auf den laufenden Server connecten und spielen können.

  17. Starten mittels ogerlauncher
    Auf der Seite http://ogerlauncher.com/ gibt es alle nötigen Informationen, auch wie man über Hamachi oder im LAN spielen kann. Einfach ein bisschen im Forum herumschauen.
  18. Startscript Client
    Mit einem kleinen Batch Skript lassen sich Clients einfach auf verschiedene Server verbinden. Das ist besonders hilfreich auf LAN-Partys. Dazu kann der Client einfach mit dem Skript gepackt werden und kann von den Gästen direkt entpackt und gespielt werden

    --------------------------------------------------------------------------------------------------
    ECHO OFF
    ECHO.
    ECHO ----------------------------------------
    ECHO LEGA LEFT 4 DEAD SERVER CONNECTOR
    ECHO ----------------------------------------
    ECHO.
    SET SERVERIP1=192.168.131.14
    sET SERVERIP2=192.168.131.11
    SET GAMEPATH=
    SET GAMEEXE=left4dead.exe
    ECHO.
    ECHO Der Name kann in der Datei rev.ini (in diesem Verzeichniss) geändert werden
    ECHO Den Namen hinter dem Befehl "PlayerName=" ändern
    ECHO.
    :choosserver
    ECHO.
    ECHO WAEHLE DEN SERVER
    ECHO.
    ECHO 1 - LEGA VERSUS SERVER 1
    ECHO 2 - LEGA VERSUS SERVER 2
    ECHO 3 - LEGA COOP SERVER 1
    ECHO 4 - LEGA COOP SERVER 2
    ECHO 5 - LEGA TURNIER SERVER 1
    ECHO 6 - LEGA TURNIER SERVER 2
    ECHO 7 - LEGA TURNIER SERVER 3
    ECHO 8 - LEGA TURNIER SERVER 4
    SET /P SERVER=Gib 1,2,3,4,5 oder 6 ein und drücke ENTER:
    IF %SERVER%==1 (
    SET PORT=27015
    SET SERVERIP=%SERVERIP1%
    )
    IF %SERVER%==2 (
    SET PORT=27016
    SET SERVERIP=%SERVERIP2%
    )
    IF %SERVER%==3 (
    SET PORT=27017
    SET SERVERIP=%SERVERIP1%
    )
    IF %SERVER%==4 (
    SET PORT=27018
    SET SERVERIP=%SERVERIP2%
    )
    IF %SERVER%==5 (
    SET PORT=27019
    SET SERVERIP=%SERVERIP1%
    )
    IF %SERVER%==6 (
    SET PORT=27020
    SET SERVERIP=%SERVERIP2%
    )
    IF %SERVER%==7 (
    SET PORT=27021
    SET SERVERIP=%SERVERIP1%
    )
    IF %SERVER%==8 (
    SET PORT=27022
    SET SERVERIP=%SERVERIP2%
    )
    %GAMEPATH%%GAMEEXE% -console -novid -game left4dead +connect %SERVERIP%:%PORT%
    ------------------------------------------------------------------------------------

    Für ein zentrales Connection Script: Einfach die Datei über eine Netzlaufwerk mit deiner Bat Datei aufrufen. Damit können auch nachträglich noch Änderungen für alle Clients durchgeführt werden.

    -------------------------------------------------------------------------------------
    call \\server\Pfad\command.bat
    -------------------------------------------------------------------------------------
  19. Administration des Servers

  20. Wichtige Server Befehle
    maps * ... anzeigen der maps
    map l4d_xxxxx ... wechseln auf die angezeigte Map (alle Player werden disconnected)
    changelevel l4d_xxx ... wechseln des Level ohne das die Player disconnected werden
    say xxxxxxxx ... Etwas über die Console ausgeben
  21. Probleme
    Auf manchen Levels werden beim befehl changelevel die Teams verwürfelt
    Will man im Versusmodus eine ganze Mission spielen werden die Spieler immer wieder durchgewürfelt

Fragen / Anregungen / Beschwerden könnt ihr gerne in die Comments posten!

~~~ theAlmega