vServer einrichten Teil 1: Absichern

In diesem Tutorial möchte ich euch zeigen wie man ganz einfach unter Ubuntu einen Webserver einrichten kann. Für dieses Tutorial benutze ich einen „billig vServer“ bei BudgetVM. Dieser kostet nur 1.25$ im Monat, hat 128 MB RAM, eine 10 GB HDD und 500GB Traffic. (ist leider nicht mehr verfügbar)

Natürlich kann man diese Anleitung auch mit jedem anderen Server mit Root Zugriff machen, wichtig ist nur, dass Ubuntu (oder Debian) zur Installation verfügbar ist.

Nun starten wir mit dem Tutorial: Als erstes müsst ihr euch über SSH an eurem Server anmelden.

Unter Linux oder Mac wird dafür keine zusätzliche Software benötigt, Windows Benutzer können sich z.B PuTTY installieren.

Wenn man ein Linux Betriebssystem oder OSX verwendet kann man einfach den folgenden Befehl in die Konsole eingeben:

ssh root@DEINE-IP-ADRESSE

Bei „DEINE-IP-ADRESSE“ muss natürlich die IP-Adresse eures Servers stehen, diese findet ihr in der E-Mail mit den Zugangsdaten (und im Control Panel).

Nach der Eingabe werdet ihr direkt nach eurem Root Passwort gefragt. Das Passwort müsstet ihr auch per E-Mail zugeschickt bekommen haben. Wenn nicht kann es auch im Control Panel des Anbieters geändert werden. Dort kann man übrigens auch den Server an/aus schalten, Neustarten und das Betriebssystem neu installieren.

Jetzt seid ihr an eurem Server angemeldet. Da das Root Passwort aber über eine nicht verschlüsselte E-Mail verschickt wurde sollte man es gleich ändern. Das funktioniert über den Befehl:

passwd

Anschließend erstellen wir uns einen neuen Benutzer:

adduser BENUTZERNAME

Als „BENUTZERNAME“ könnt ihr jedes beliebiges Wort nehmen (z.B euren Vornamen). Es sollte allerdings nicht admin, user, oder ähnliches benutzt werden, da viele Brute Force Attacken solche Benutzer ausprobieren. Danach werdet ihr nach einem Passwort gefragt. Hier ist es wichtig ein sehr sicheres/langes Passwort zu verwenden da dieser Benutzer in Zukunft zum Anmelden benutzt wird. Der Root-User wird gleich deaktiviert.

Nun werden noch ein paar Daten (Name, Room Numer, …) zu euch abgefragt, das ist nicht wichtig, könnt ihr ausfüllen oder auch nicht.

Nun aktualisieren wir das System mit den Befehlen:

apt-get update
apt-get upgrade

Als nächstes deaktivieren wir den root Benutzer und ändern den SSH Port, was wichtig ist da die meisten Attacken den root User betreffen und über den Standardport 22 laufen. Dafür müssten wir die Datei sshd_config bearbeiten:

nano /etc/ssh/sshd_config

Es kann sein dass das Programm „nano“ noch nicht vorinstalliert ist, das beheben wir aber ganz einfach mittels:

apt-get install nano

Wenn die Datei dann geöffnet ist sucht ihr die Zeile

PermitRootLogin yes

und ändert sie in

PermitRootLogin no

und in der Zeile

Port 22

könnt ihr eine beliebige Zahl (nicht höher als 65535) eingeben, allerdings muss man darauf achten, dass der Port nicht schon von einem anderen Programm verwendet wird. Das kann man am besten mit einem Port Scanner testen. Außerdem dürfen die Ports 80 und 443 nicht verwendet werden, da wir die noch benötigen. Am besten ist es hohe Zahlen mit 4 Ziffern zu verwenden. Dann speichern wir das ganze mit STRG+O und dann Enter. Schließen kann man das Programm nano mit STRG+X.

Jetzt müssen wir den Benutzer, den wir vorhin erstellt haben, noch in die Gruppe „sudo“ hinzufügen. Da wir sonst keine root Rechte mehr haben wenn der Root Benutzer deaktiviert ist.

adduser BENUTZERNAME sudo

Nun brauchen wir ein neues Terminal Fenster um zu testen ob die Anmeldung mit root wirlich nicht mehr funktioniert und ob der Port geändert wurde. Dazu zuerst im aktuellen Fenster SSH neustarten und dann in einem neuen Terminal-Fenster versuchen sich anzumelden.

service ssh restart
ssh root@DEINE-IP-ADRESSE

Bei der Anmeldung müsste jetzt eine Fehlermeldung kommen, da der Port 22 ja nicht mehr offen ist. Deshalb jetzt nochmal testen mit dem neuen Port („PORT“ natürlich anpassen):

ssh root@DEINE-IP-ADRESSE -pPORT

Wenn man jetzt nach dem Passwort gefragt wird, sich aber nicht anmelden kann ist alles in Ordnung und der root Benutzer deaktiviert.

Jetzt starten wir den Server einmal neu. Am einfachsten geht das wenn wir in das Terminal Fenster in dem root noch angemeldet ist das eingeben:

reboot

Wenn das Fenster schon geschlossen wurde kann man den Server auch über das Control Panel neustarten.

Dann können wir uns mit unserem Benutzer (nicht root) anmelden:

ssh BENUTZERNAME@DEINE-IP-ADRESSE -pPORT

Jetzt testen wir noch ob wir wirklich sudo benutzen können:

sudo su

Wenn man jetzt nach dem Passwort gefragt wird und es keine Fehlermeldung gibt funktioniert alles.

Mit dem Befehl

exit

kann man dann die sudo Konsole wieder schließen.

Um den Server noch sicherer zu machen kann man jetzt noch das Programm logcheck installieren. Das Programm schickt uns per E-Mail auffällige Logfiles. So erkennt man mögliche Fehler und fehlgeschlagene Loginversuche.

sudo apt-get install logcheck

Damit die E-Mails auch verschickt werden brauchen wir noch einen Mailserver:

sudo apt-get install postfix

Dann noch in den Konfigurationsdateien von logcheck eine E-Mail Adresse eingeben, an die die Logs geschickt werden sollen. Die Datei öffnet man mittels:

sudo nano /etc/logcheck/logcheck.conf

Dort bei SENDMAILTO eine Adresse eingeben z.B.

SENDMAILTO="mail@provider.com"

Dann die Datei mit STRG+O speichern und mit STRG+X schließen. Um zu testen ob es funktioniert am besten den Server neustarten, dann müsste eine E-Mail verschickt werden.

sudo reboot

 

Um Brute Force Attacken zu verhindern kann man noch denyhosts installieren:

sudo apt-get install denyhosts

Um die Standardkonfiguration zu ändern muss die Datei „denyhosts.conf“ geöffnet werden:

sudo nano /etc/denyhosts.conf

Dort kann man dann in der Zeile „PURGE_DENY = “ eine Zeit angeben nach denen die geblockten IP Adressen wieder gelöscht werden sollen. Zum Beispiel 2 Tage:

PURGE_DENY = 2d

Den Rest kann man eigentlich so lassen. Dann wieder mit STRG+O speichern und mit STRG+X schließen.

Jetzt nur noch den Dienst neustarten:

sudo service denyhosts restart

 

Das sind jetzt natürlich nur einige Möglichkeiten den eigenen Server gegen Angreifer zu schützen. Es gibt noch einiges mehr, z.B. die Public-Key Authentifizierung.

 

Im zweiten Teil geht es dann darum einen Webserver zu installieren

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.