Sicherheit

  • 7.X

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Eine kurze Einführung zum neuen Forum erhalten Sie hier: Kurzanleitung
KOSTENLOS Spiele abstauben? Machen Sie aktiv im Forum mit und sammeln Sie Punkte (Nabucoins). Diese können Sie dann gegen Spiele eintauschen. Weitere Informationen erhalten Sie hier: Spieleliste


  • Vorwort

    Genau genommen ist jeder Anwender selbst für die Sicherheit seiner Server und Zugänge verantwortlich. Jedoch stellen wir Ihnen an dieser Stelle einige Tips und Anleitungen bereit, mit der Sie die Sicherheit Ihrer Systeme verbessern.



    1. Allgemein

    1.1 Benutzer

    Falls möglich sollten Sie auf Ihren Servern Programme und Skripte nicht als User root ausführen lassen, denn sollte eine Schwachstelle in diesem Programm von einem Angreifer gefunden werden, so kann dieser unter Umständen Vollzugriff auf das System erhalten. Unser TekBASE verwendet für die Verbindung zu den zu verwaltenden Rootserver und für die Ausführung der Programme generell immer einen extra für diese Aufgaben erstellten Benutzer. Einen Benutzer können Sie unter Linux mit folgendem Befehl anlegen.

    Shell-Script

    1. useradd -g users -s /bin/bash -m USERNAME -d /home/USERNAME


    1.2 Passwörter

    Verwenden Sie bitte immer Passwörter, welche aus Zahlen, Buchstaben und möglichst auch Sonderzeichen. Wir müssen leider oft genug erleben, dass Kunden Passwörter wie Tanja456 verwenden. Besser wäre hier ein Passwort wie Gt9w_d71-Avm4FwZ. Dies ist zwar nicht einfach zu merken aber auch nicht einfach zu knacken.


    1.3 Standard Ports

    Da die meisten Attacken willkürlich auf ganze IP Bereich und Standardports von Bots ausgeführt werden, empfehlen wir Ihnen die Änderungen der Standardports. So zum Beispiel der SSH Port oder Teamspeak 3 Queryports. Für die Sicherheit des Systems ist dies nur insofern von Vorteil, dass das System über den offenen Port nicht mit tausenden Anfragen pro Sekunde überflutet wird. Bei einem gezielten Angriff auf Ihre Systeme nützt dies jedoch nicht viel.


    1.4 Up to date

    Stellen Sie bitte immer sicher, dass Ihre System up to date sind. Unter Debian und Ubuntu können Sie Ihre Server mit folgenden Befehlen aktuell halten.

    Shell-Script

    1. apt-get update
    2. apt-get upgrade


    1.5 TekBASE Verzeichnisse

    Die Ordner /cache, /pdf, /ressources, /ressources/uploads und /tmp sollten via .htacces vor Fremdzugriffen geschützt werden. Im Ordner /cache reicht es, wenn der Zugriff auf .zip und .sql Dateien verboten wird. Hier ein Beispiel für den Ordner /ressources/uploads/ welcher den Zugriff auf php Dateien verbietet.

    Shell-Script

    1. <Files ~ ".(php|php2|php3|php4|php5|php6|phtml)$">
    2. order allow,deny
    3. deny from all
    4. </Files>
    5. # ansonsten dies hier und vorher ModRewrite aktivieren
    6. # Falls der Eintrag fehlt die Zeile auskommentieren:
    7. # RewriteEngine On
    8. RewriteRule ^.*\.(php|php2|php3|php4|php5|php6|phtml)$ - [F,L,NC]



    2. Adminbereich schützen

    Sie sollten Ihren Adminbereich so gut wie möglich schützen. Dazu zeigen wir Ihnen an dieser Stelle, wie Sie dies einfach umsetzen können.


    config.php

    In der config.php können Sie angeben, von welchen IP Adressen oder Bereichen der Zugriff auf den Adminbereich gestattet ist. Dazu öffnen Sie die config.php und fügen folgendes ein.

    PHP-Quellcode

    1. $available_ips="IP1,IP2,IP3";
    Alle IPs sind per Komma zu trennen. Sie müssen nicht die ganze IP eintragen, es reicht zum Beispiel bei der IP 230.122.122.122, wenn Sie nur die 230.122 angegeben. Das heißt, dass die letzten Stellen variieren können. Jedoch sollte die Angabe so genau wie möglich sein, damit die Anzahl erlaubter IPs auf ein Minimum begrenzt wird.


    .htaccess

    Per .htaccess können Sie den Zugriff per IP erlauben und auch die admin.php mit einem Passwort schützen. Für die erste Variante muss in der .htaccess folgendes eingetragen werden.

    Quellcode

    1. <Files admin.php>
    2. order deny,allow
    3. deny from all
    4. allow from IP1 IP2 IP3
    5. </Files>
    Alle IPs sind per Leerzeichen getrennt. Auch hier müssen Sie nicht die ganze IP eintragen, es reicht zum Beispiel bei der IP 230.122.122.122, wenn Sie nur die 230.122 angegeben. Sie geben so IP Bereiche an. Jedoch sollte die Angabe so genau wie möglich sein, damit die Anzahl erlaubter IPs auf ein Minimum begrenzt ist.

    Für die Variante mit dem Passwortschutz muss in der .htaccess folgendes stehen.

    Quellcode

    1. AuthType Basic
    2. AuthName Tekadmin
    3. AuthUserFile /home/Tekadmin/passwd
    4. <Files admin.php>
    5. require user admin1 admin2
    6. </Files>
    Anstelle von admin1 admin2 können andere Namen gewählt werden. Auch müssen Sie den AuthUserFile Pfad anpassen. Dieser muss vom Webserver lesbar sein. Zum Schluss müssen Sie noch die passwd Datei generieren. Dies machen Sie wie folgt.

    Quellcode

    1. htpasswd -c /home/Tekadmin/passwd admin1
    2. htpasswd /home/Tekadmin/passwd admin2



    3. Design schützen

    Damit Fremde keinen Zugriff auf die TPL Datein Ihrer selbst erstellten Designs haben, sollten Sie diese per .htaccess schützen. Dazu legen Sie bitte in folgenden Verzeichnissen eine .htaccess Datei an.

    • /admin/themes/ihr_design/templates
    • /members/themes/ihr_design/templates
    • /themes/ihr_design/templates

    In der .htaccess fügen Sie bitte folgenden Inhalt ein:

    Quellcode

    1. deny from all



    4. SSL Verschlüsselung

    Damit das TekBASE nur über https aufgerufen werden kann, reicht eine simple Anpassung der .htaccess Datei. Falls bei Ihnen im TekBASE Verzeichnis noch keine .htaccess Datei vorhanden ist, erstellen Sie bitte eine und fügen Sie dann folgenden Inhalt ein.

    Quellcode

    1. RewriteEngine On
    2. RewriteCond %{SERVER_PORT} !^443$
    3. RewriteRule (.*) https://%{SERVER_NAME}%{REQUEST_URI}
    Sollte dies nicht funktionieren, müsste noch einmal in der .htaccess folgendes hinzugefügt werden.

    Quellcode

    1. RewriteBase /
    Achten Sie bitte darauf, dass Sie alle internen Links in Ihrem TekBASE Design ohne "http://domain.de/" angeben. Ein "seite1.html" reicht völlig aus, dass gleiche gilt auch für alle anderen Ressourcen wie Bilder, und Downloads. Wenn Sie Facebook Buttons, Bewertungswidgets und andere Skripte von extern nutzen, so achten Sie darauf, dass auch diese per https anstatt http eingebunden werden.



    5. SSH Zugang

    Wir empfehlen Ihnen zu Absicherung Ihres Server den direkten root Zugriff zu sperren. Dazu müssen Sie sich vorher einen extra User anlegen. Dieser kann dann mittels su zum root Account wechseln. In unserem Beispiel verwenden wir den Usernamen user-webi, welcher auch durch unsere Installskript bereits auf den zu verwaltenden Rootservern angelegt wurde. Zusätzlich werden wir in diesem Beispiel den SSH Port auf 59 setzen. Öffnen Sie dazu bitte die /etc/ssh/sshd_config mit einem Editor Ihrer Wahl und ändern bzw. fügen Sie die folgenden Zeilen hinzu.

    Shell-Script

    1. Port 59
    2. PermitRootLogin no
    3. PermitEmptyPasswords no
    4. AllowUsers user-webi
    Anschließend müssen Sie noch den SSH Daemon mit dem nachstehendem Befehl neustarten und testen, ob Sie sich mit dem user-webi einloggen können. Idealerweise sollten Sie Ihr jetziges Fenster nicht schließen, damit Sie im Notfall die Einstellungen wieder zurücksetzen können.

    Shell-Script

    1. /etc/init.d/ssh restart



    6. FTP Server

    Datei-Manipulation

    Damit Ihre Kunden die Startskripte von Spielen nicht manipulieren können oder andere bösartige Änderungen per FTP vornehmen können, müssen Sie die Einstellungen des FTP Servers anpassen. Insbesondere, wenn Sie Ihren Kunden den Protection Modus anbieten möchten. Die nachfolgend genannten Einstellungen wurden von vielen unserer gewerblichen Kunden getestet und bestätigt. Nehmen Sie die Änderungen in Ihrer /etc/proftpd.conf bzw. /etc/proftpd/proftpd.conf wie folgt vor.

    Shell-Script

    1. <Directory ~>
    2. Umask 037 027
    3. <Limit CHMOD>
    4. DenyAll
    5. </Limit>
    6. HideFiles (^..+|.ssh|hlds_run|hlds_linux|srcds_run|srcds_linux|valve.rc|.sh)
    7. PathDenyFilter (\.+?/\..+|hlds_run$|hlds_linux$|srcds_run$|srcds_linux$|valve.rc|.sh$)
    8. HideNoAccess on
    9. </Directory>
    Zuerst wird allen FTP Usern das Recht entzogen, den chmod der Dateien und Verzeichnisse zu ändern. Danach werden wichtige Dateien ausgeblendet und für den User per FTP gesperrt. Sie können die Zeilen HideFiles und PathDenyFilter nach belieben für andere Spiele erweitern. Sinnvoll wären zumindest die Startdateien der jeweiligen Spiele.


    Voller Zugriff

    Ihre Kunden können per FTP auf alle Verzeichnisse des Rootservers zugreifen? Dann müssten Sie die Einstellungen Ihres FTP-Servers ändern. Dazu begeben Sie sich bitte auf den betroffenen Rootserver.


    Proftpd Server

    Die proftpd.conf befindet sich im /etc/proftpd bzw. auch direkt im /etc Verzeichnis. Bearbeiten Sie diese Datei und fügen Sie am Ende folgendes ein.

    Shell-Script

    1. DefaultRoot ~


    Vsftpd Server

    Die vsftpd.conf befindet sich im im /etc Verzeichnis. Bearbeiten Sie diese Datei und fügen Sie am Ende folgendes ein.

    Shell-Script

    1. chroot_local_user=Yes
    Danach müssen Sie den FTP-Server nur noch neustarten. Danach sollten die Kunden nur noch auf Ihre eigenen Verzeichnisse zugreifen können. Den FTP-Server starten Sie mit folgendem Befehl neu.

    Shell-Script

    1. /etc/init.d/proftpd restart
    oder für Vsftpd Server

    Shell-Script

    1. /etc/init.d/vsftpd restart
    Sollten diese Dateien nicht existieren, so können Sie es mit /etc/init.d/xinetd restart versuchen.



    7. Protection Modus

    Damit Ihr Protection Modus ESL konform läuft, müssen Sie als erstes die unter FTP Server genannten Änderungen vornehmen. Des Weiteren sollten Sie die valve.rc in Ihren HL & HL2 basierten Gameserver Images ändern. Fügen Sie dazu folgende Zeile direkt an erster Stelle in die valve.rc Datei ein.

    Shell-Script

    1. alias "plugin_load" "echo Loading plugins is not allowed"
    Als nächstes geben Sie bitte im Adminbereich unter "Spieleliste" an, welche Dateien bearbeitet werden dürfen. Unser TekBASE verbietet bei der Installation eines Gameservers im Protection Modus erst einmal die Schreibzugriffe auf sämtliche Dateien. Nur mit den von Ihnen angegebenen Dateien oder Verzeichnissen, werden Freigaben gesetzt. Möchten Sie für Counter-Strike Source Ihren Kunden erlauben die server.cfg anzupassen, so tragen Sie bitte im Feld "freigegebene Dateien" folgendes ein.

    Shell-Script

    1. css/cfg/server.cfg
    Sie sehen, es muss hier immer der komplette Pfad ab dem Gameserver Verzeichnis angegeben werden. Möchten Sie alle Dateien im Ordner cfg freigeben, so hätte der Eintrag css/cfg genügt.