=| Artikel |=

=| Forum |=

=| Login |=

Registrieren
Passwort vergessen?

Forum Tutorials Server Tutorial (Linux) [CoD4] Einen CoD4 Server unter Linux Erstellen!

[CoD4] Einen CoD4 Server unter Linux Erstellen!

Post von IronMan » 28.04.2019 16:39:49


Hier möchte ich euch zeigen wie man einen CoD4 Server in der Patchversion 1.7 unter Linux aufsetzt.
Ich nutze hierfür einen Linux V-Server auf dem Ubuntu 16.04 Installiert ist, ich setzte Vorraus dass Linux Grundkenntnisse bei euch vorhanden sind und wisst, wie das Hardening auf Linux Distributionen funktioniert! 

Vorbereitung: (Was brauchen wir!?)

  • Zugriff auf die Shell des Linux Servers via Putty
  • Eine Saubere installation des Spiels COD4 auf euren Windows Rechner inkl. aller Patches.
  • FileZilla für den Transfer der CoD4 Dateien auf dem FTP Server.
  • Call of Duty 4 Server 1.7 Linux Files. (Wird direkt via wget auf den Rootserver geladen und entpackt. Dazu später mehr.)
  • Ein Script zum Starten, Stoppen und Restarten des CoD4 Servers. (Dazu später mehr.)

Part 1: Erstellen eines Benutzers unter Linux.

Da wir solche Anwendungen wie CoD4 o.ä. aus Sicherheitsgründen nicht als Root ausführen und laufen lassen, müssen wir zunächst einen User unter Linux anlegen, wie dieser heißen soll ist ganz euch überlassen. Ich werde hierzu einfach den User "callofduty" anlegen. 
Ein kleiner Hinweis

Da der direkte Root Login sowie der Sudo Root Login bei mir gesperrt ist, melde ich mich mit einem Normalen User an der keine Rechte besitzt, danach wechsele ich mit dem Befehl "su benutzername" auf meinen Sudo Benutzer. 

Diese Art sich anzumelden ist ein Teil des Hardenings von Linux Rootservern um die Sicherheit zu erhöhen!


Ihr Meldet euch nun als Sudo via Putty auf euren Rootserver an und legt einen neuen Benutzer an.
sudo adduser callofduty
Bestätigt mit Enter, anschließend muss noch ein Sicheres Passwort vergeben werden und ihr werdet noch nach Persönlichen Angaben gefragt, dies könnt ihr ausfüllen, muss aber nicht, einfach alles mit Enter bestätigen und somit ist der neue Benutzer angelegt!
Ein kleiner Hinweis

Wenn Ihr einen neuen Benutzer angelegt habt, sind dies auch gleichzeitig eure Zugangsdaten für den FTP Server.  Es wird Automatisch im Home Verzeichniss ein neues Verzeichniss erstellt das den Namen eures Benutzers trägt, dort können wir dann unseren CoD4 Server erstellen!

Da wir nun unseren Benutzer angelegt haben, benötigen wir unseren Sudo Benutzer nicht mehr, alles was jetzt kommt wird mit unserem Benutzer callofduty erledigt. Entweder ihr loggt euch nun mit "exit" aus und meldet euch mit dem neuen Benutzer wieder an, oder ihr wechselt den Benutzer.

In meinem Fall wechsel ich mit "su" den Benutzer...
su callofduty
Es könnte sein das ihr jetzt noch nach dem Passwort für den Benutzer gefragt werdet, gebt es ein und bestätigt mit Enter, und schon sind wir als callofduty angemeldet.


Part 2: Ordner anlegen, Dateien hochladen, Dateiberechtigung

Standartmässig befinden wir uns nach dem Anmelden mit unserem Benutzer "callofduty" im Home Verzeichniss, da wir aber unseren Server im Verzeichniss "callofduty" anlegen möchten, wechseln wir in das Verzeichniss und geben den Ordner noch Dateiberechtigungen...
cd /home/callofduty
chmod 755 /home/callofduty -R

Jetzt müsst Ihr euch noch die Frage stellen, ob Ihr nur einen CoD4 Server installieren wollt, oder doch noch einen zweiten oder dritten Server, die meisten Clans besitzen einen Publik Server und einen Clan Server für Wars, und wenn man schon die Möglichkeit hat, sollte man die Gelegenheit ergreifen, darum müssen wir nun weitere Ordner im Verzeichniss callofduty anlegen...!
mkdir cod4-1
mkdir cod4-2
So haben wir jetzt zwei weitere Ordner im Verzeichniss callofduty angelegt!
Da wir dem Verzeichniss callofduty vorab die Dateiberechtigung 755 gegeben haben, sollten nun auch unsere neu erstellten Ordner die gleichen Berechtigung besitzen, nämlich 755! 
Ein kleiner Hinweis

Alle Verzeichnisse die erstellt wurden benötigen die Dateiberechtigungen 755, die Ausnahme sind Dateien, diese sollten bei 644 oder 664 stehen, es sei denn, es sind Dateien die Ausgeführt werden müssen!


Nun müssen wir die CoD4 Files via FTP hochladen, dazu benutzen wir FileZilla, um euch auf euren FTP Server anzumelden, benötigt ihr eure Server IP des V-Servers oder Roots, den Benutzernamen callofduty, und last but not least, das Passwort eures Benutzers. Ich gehe jetzt mal davon aus, dass ihr euch mit FileZilla auskennt, und gehe hier nicht weiter darauf ein.

Nun, wenn Ihr euch dann mit dem FTP Server verbunden habt, solltet Ihr euch im Home Verzeichniss befinden in dem Ihr den Ordner callofduty seht, diesen betretet Ihr nun mit einem doppelklick und Ihr solltet nun zei weitere Ordner sehen, in unserem Fall "cod4-1 und cod4-2".

Wir öffnen nun den Ordner cod4-1 auf unseren FTP Server, und öffnen auf unseren Windows Rechner den Installationsort von Call of Duty 4, hier benötigen wir den main und den zone Ordner, diese laden wir jetzt mit samt deren Inhalt auf den FTP Server hoch, und zwar in den Ordner cod4-1, das Ganze dauert jetzt ein wenig, da es sich hier um ca. 6Gb handelt die auf den Server müssen!

In der Zwischenzeit können wir schon die CoD4 Server Linux files auf den FTP laden, dies machen wir direkt über Putty, aber zuerst wechseln wir noch in das Verzeichniss cod4-1...
cd /home/callofduty/cod4-1

Jetzt können wir die CoD4 Server Linux files direkt mit Putty auf unseren Server laden..
wget http://treefort.icculus.org/cod/cod4-linux-server-06282008.tar.bz2

Bevor ihr diese entpackt, müsst ihr warten bis eure Upload der CoD4 Dateien abgeschlossen ist, ist dies der Fall, können wir nun die Linux Files entpacken...
tar xvfj cod4-linux-server-06282008.tar.bz2

Da die gepackten Serverfiles nicht mehr benötigt werden, können diese gelöscht werden...
rm -f cod4-linux-server-06282008.tar.bz2

Die entpackten Serverfiles müssen jetzt zu den hochgeladenen Spieldateien...
cp -r -f cod4-linux-server/* /home/callofduty/cod4-1

Der Ordner cod4-linux-server wird nach dem verschieben der Dateien nicht mehr benötigt, deswegen löschen wir ihn...
rm -rf cod4-linux-server

Haben wir das erledigt, müssen jetzt noch Dateiberechtigungen gesetzt werden, diese benötigen 755, dieses mal können wir das via FileZilla erledigen, rechtsklick auf die Datei, und dann auf Dateiberechtigung.

Folgende Dateien benötigen dieses Recht...

  • cod4_inxded
  • cod4_inxded-bin
  • libgcc_s.so.1
  • libstdc++.so.6

Wer Punkbuster nutzen möchte, muss diesen manuell Installieren, da dieser von Evenbalance nicht mehr Supportet wird, den Punkbuster bekommt Ihr hier auf unserer Homepage. Um ihn zu Installieren, reicht es die Files via FTP auf euren Server ins Haubtverzeichniss in den Ordner pb hochzuladen, falls dieser noch nicht existiert, erstelle ihn einfach!


Part 3: Das Startscript

Um den Server Starten, Stoppen und Restarten zu können, benötigen wir ein Startscript, dies ist aber nicht nur für das Starten etc. zuständig, sondern sorgt auch dafür das der Server in einem Screen läuft, der Screen ist dafür zuständig das der Server auch nach dem schließen der Shell weiter läuft!
Bei DIR= kommt der Serverpfad rein, im unten stehenden Script habe ich es schon angepasst, beit Netzsettings kommt die IP und der Port rein, wichtig ist der Screenname, solltet ihr mehr als einen Server einrichten, muss der Screen jeweils einen anderen Namen haben. Wie ihr das Startscript letztendlich nennt ist euch überlassen, wichtig ist das die Dateiendung .sh am ende steht, die datei muss dann zu den ins Haubtverzeichniss des Server, dort wo sich auch der main und zone Ordner befindet!

Das Script benötigt mindestens die Dateiberechtigung 700 um ausgefhürt werden zu können!

Das Startscript,
#! /bin/bash  
DIR=/home/callofduty/cod4-1
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DIR
cd $DIR

#NETZSETTINGS
IP=213.202.228.171
PORT=28960

#Der Screenname
NAME=cod4-1
DESC="CoD4"
#PARA_UEBERGABE
PARA1="+set fs_basepath $DIR +set fs_homepath $DIR "
PARA2="+set loc_language 2 +set dedicated 2 +set net_port $PORT +set sv_ip $IP "
PARA3="+set sv_punkbuster 1 +exec server.cfg +set sv_maxclients 32 +map_rotate "
PARA4=""
PARAMS=$PARA1" "$PARA2" "$PARA3" "$PARA4
#Binaer_DATEI
SCRIPT=cod4_lnxded

DAEMON=$DIR/$SCRIPT

case "$1" in
start)
echo "Starte $DESC: $NAME"
cd $DIR
screen -d -m -S $NAME $DAEMON $PARAMS
;;

stop)
if [[ `screen -ls |grep $NAME` ]]
then
echo -n "Stoppe $DESC: $NAME"
kill `screen -ls |grep $NAME |awk -F . '{print $1}'|awk '{print $1}'`
echo " ... Server gestoppt."
else
echo "Konnte keinen laufenden Server mit PID -- $DESC -- nicht finden"
fi
;;

restart)
if [[ `screen -ls |grep $NAME` ]]
then
echo -n "Stoppe $DESC: $NAME"
kill `screen -ls |grep $NAME |awk -F . '{print $1}'|awk '{print $1}'`
echo " ... Server gestoppt ... Kommando Start wird ausgeführt"
else
echo "Konnte keinen laufenden Server mit PID -- $DESC -- nicht finden ... Kommando Start wird ausgeführt"
fi

echo -n "Starte $DESC: $NAME"
cd $DIR
screen -d -m -S $NAME $DAEMON $PARAMS
echo " ... Server gestartet."
;;

*)
echo "Usage: $0 Parameter eingeben {start|stop|restart}"
exit 1
;;
esac

exit 0

Soweit so gut, aber hier stoppe ich erst einmal!

Fortsetzung folgt in Kürze!

User avatar
IronMan
Administrator
Moderator
Rang: Anfänger
 
Beiträge: 13
Dabei seit: 2018-06-02 07:38:30
Partner
=LF= Teamspeak

Shoutbox
IronMan:
26.05.2019 11:49
Moin!
Jack!:
26.05.2019 11:30
Guten Morgen
[FZ] Rebell:
26.05.2019 09:50
Guten Morgen Germany
[FZ] Rebell:
25.05.2019 13:21
feierabend Bier her................ 👀
IronMan:
25.05.2019 08:13
🍻