Wähle einen Artikel
CentOS auf vServer/VPS installieren
CentOS auf vServer/VPS installieren

1. CentOS 8 installieren

Im ersten Schritt wollen wir auf unseren vServer CentOS 8 64 bit installieren. Dazu geht ihr auf folgende Webseite: https://cloudpit.io/ Nach dem Login klickt ihr auf die „Wolke“ und wählt „Übersicht“ aus.

Obere Navigationsleiste mit CloudPIT-Logo; hervorgehobenes CLOUD SERVER-Wolken-Icon und Dropdown 'Übersicht'.

Nun seht ihr alle eure vServer. Hier wählt ihr nun den vServer aus, auf dem ihr CentOS 8 installieren möchtet.

Cloud-Server-Verwaltung: Hervorgehobene Zeile; Spalten HOSTNAME, IP (verwischt), STATUS 'gestartet', ERSTELLT.

Klickt anschließend auf das aktuelle Betriebssystem eures Servers. Bei mir ist dies in dem Fall „AlmaLinux 8 / 64 bit“.

Screenshot eines CloudPIT-Dashboards mit CLOUD SERVER, AlmaLinux 8 / 64 bit und IP 178.250.170.125.

Nun solltet ihr folgendes sehen:

Screenshot einer Software-Oberfläche: linke Seitenleiste, zentrale Karte mit AlmaLinux 8/64 Bit, Installieren-Button.

Wählt euch nun CentOS 8 aus der Liste aus.

UI zur Betriebssystemauswahl mit offener Dropdown-Liste (AlmaLinux 8, CentOS 8 Minimal, Debian) und rotem Installieren-Button.

Nachdem ihr CentOS gewählt habt, gebt ihr noch ein Kennwort ein. Dies wird später euer root Kennwort.

Installationsoberfläche mit OS-Auswahl, Plesk-Option, zwei Passwortfelder und rotem Installieren-Button.

Nun klickt ihr auf „Betriebssystem installieren“. Ihr solltet dann folgende Meldung erhalten, die ihr mit „Ja“ bestätigt.

Dialogfenster: Betriebssystem neu installieren; rote Warnung; NEIN und JA (JA hervorgehoben).

Nun sollte bei euch folgende Meldung erscheinen. Dieser Vorgang dauert nun einige Minuten.

Server-Dashboard: Meldung 'Der Cloud Server wird neu installiert' oben; links Betriebssystem-Auswahl (CentOS 8 / Minimal).

Ihr könnt wieder oben auf die „Wolke“ klicken. Hier sieht ihr die Übersicht eurer Server. In dieser Übersicht sollte dann stehen „Betriebssystem wechseln“. Ihr müsst die Seite öfter dann mit „F5“ aktualisieren.

Screenshot einer Cloud-Server-Verwaltungstabelle; eine Zeile mit 'Betriebssystem wechseln' ist hervorgehoben.

Nach kurzer Zeit sollte es dann so aussehen:

Tabelle mit Serverdaten; Hostname testserver.net, IP 178.250.170.125; roter Status gestoppt.

2. vServer starten

Nach der Installation ist euer vServer noch gestoppt. Um ihr zu starten, klickt ihr auf euren Server und anschließend auf den „grünen Pfeil“.

CloudPIT-UI: blaue Kopfzeile; Anzeige 'CLOUD SERVER > TESTBEREICH.NET', rechts 'GESTOPPT' und grün umrandetes Symbol.

Wartet nun einige Sekunden. Anschließend solltet ihr folgendes sehen:

Cloud-Server-UI: Dunkler Kopfbereich, CloudPIT-Logo links, weiße Leiste mit CLOUD SERVER > TESTBEREICH.NET und GESTARTET.

3. Per SSH mit eurem vServer verbinden

Nachdem ihr euren Server installiert und gestartet habt, wollen wir uns das erste Mal damit verbinden. Dazu benötigt ihr einen SSH Client. Ein kostenloser, beliebter SSH Client ist PuTTy. Klickt auf „here“.

Screenshot einer PuTTY-Downloadseite mit Überschrift 'Download PuTTY' und blauem Link 'here'.

Anschließend wählt ihr euch den 32bit oder 64bit Installer aus.

Screenshot einer Download-Seite 'Package files' mit Links zu Windows-Installern (64/32-Bit) und Unix-Quellen.

Startet nun Putty und gebt bei „Host Name“ die IP an, welche euch Cloudpit anzeigt. Der Port ist hier 22.

PuTTY-Konfiguration: Host 178.250.170.125, Port 22; markierte Felder, linke Kategorienliste.

IP eures Servers:

Cloud Server > TESTBEREICH.NET; Betriebssystem: CentOS 8 / Minimal / 64 bit; IP-Adresse: 178.250.170.125.

Wenn ihr euch bereits vor der Neuinstallation schon mal mit dem Server verbunden habt, dann solltet ihr folgende Meldung bekommen. Dies ist normal. Klickt hier auf „ja“ um euch mit dem Server zu verbinden.

Windows-Popup mit PuTTY Security Alert, gelbem Warnsymbol, Textblock und Buttons Ja, Nein, Abbrechen, Hilfe.

Gebt nun als Nutzername „root“ ein und euer eben gewähltes Kennwort. Nach erfolgreichem Login seht ihr folgendes:

Schwarzes Terminalfenster mit Eingabeaufforderung: 'Login as: root' und darunter 'root@testbereich:~# password:'; Cursor am Prompt.

4. Programme updaten

Nun können wir ein Update aller bereits installierten Programme durchführen. Gebt dazu folgendes ein. Durch diesen Befehl werden euch später alle verfügbaren Updates angezeigt.

yum check-update
Schwarzes Terminalfenster mit weißem Text: Login-Prompt, Last login, Datum/Uhrzeit, Paketliste zu CentOS-8.

Zum Installieren der Updates gebt ihr nun folgendes ein:

yum -y update

Nun werden alle Updates installiert. Dieser Vorgang kann je nach Anzahl der Updates einige Minuten dauern.

Schwarzes Terminalfenster mit einer Paketliste; unten 'Complete!' und Eingabeaufforderung root@testbereich ~]#

5. Benutzer erstellen

Nun wollen wir uns neben unserem Benutzer „root“ noch einen weiteren Benutzer erstellen. Gebt dazu folgendes ein:

adduser <Name>

Mein Benutzer soll „dogado“ heißen. Also gebe ich folgendes ein:

adduser dogado
Terminalfenster mit schwarzem Hintergrund, grüne Schrift; Zeile: [root@testbereich ~]# adduser dogado, darunter [root@testbereich ~]# 0.

Nun müsst ihr noch ein Kennwort für diesen Benutzer vergeben. Dazu gebt ihr folgendes ein:

passwd <Benutzer Name>

In meinem Fall also:

passwd dogado

Nun gebt ihr euer Kennwort zwei Mal ein.

Terminalfenster zeigt Befehl 'adduser dogado', Passwortabfrage und Bestätigung.

6. Texteditor nano installieren

Nun installieren wir uns noch einen Texteditor, welchen wir später zum Anpassen einiger Einstellungen benötigen. Gebt dazu folgendes ein:

yum -y install nano
Schwarzes Terminalfenster mit Installationsausgabe, Paketliste und Versionsangaben, Abschlussmeldung.

7. SSH Port ändern und root Login deaktivieren

Nun wollen wir noch unseren SSH Port ändern. Dies ist nützlich, da dieser normalerweise immer auf Port 22 läuft. Im Internet gibt es viele automatische Scanner, welche genau diesen Port scannen. Indem wir diesen also abändern, werden wir bei diesen automatischen Scans nicht erkannt. Ebenfalls wollen wir noch den root Login deaktivieren. Dies bedeutet, dass sich der Benutzer „root“ später nicht mehr direkt per SSH anmelden kann. Dies gibt uns zusätzliche Sicherheit, da so ein Angreifer sich erst als Benutzer Zugang zu unserem Server verschaffen muss und dann erst Zugang zu unserem root Nutzer bekommen kann, wenn er das root Kennwort besitzt. Um die Änderungen durchzuführen, gebt ihr nun folgenden Befehl ein:

nano /etc/ssh/sshd_config

7.1 Port ändern

Dazu ändert ihr folgende Zeile ab:

# Port 22

Bei mir soll SSH auf Port 2222 bereitgestellt werden. Also gebe ich folgendes ein:

Port 2222
Terminalfenster mit sshd_config-Datei: Port 2222, ListenAddress 0.0.0.0, ListenAddress ::, HostKey-Einträge.

7.2 Root Login verbieten

Dies könnt ihr nur machen, wenn ihr in Schritt 5 einen neuen Benutzer erstellt habt. Habt ihr keinen neuen Benutzer erstellt, so könnt ihr euch später nicht mehr anmelden. Scrollt nun ganz ans Ende der Datei. Dort findet ihr folgenden Eintrag:

PermitRootLogin yes

Dies ändert ihr auf folgendes ab:

PermitRootLogin no
Screenshot einer SSH-Konfigurationsdatei; ein oranger Pfeil markiert die Zeile 'PermitRootLogin no'.

Anschließend könnt ihr mit „STRG+O“ die Datei speichern und mit „STRG+X“ das Programm beenden.

7.3 SSH Dienst neu starten

Nun müsst ihr noch den SSH Dienst neu starten, damit die Änderungen übernommen werden. Gebt dazu folgendes ein:

systemctl restart sshd.service

7.4 Per SSH verbinden

Nun starten wir eine zusätzliche Putty Sitzung. Lasst eure aktuelle Konsole noch offen! Dies ist wichtig, falls ihr Fehler gemacht haben solltet, da ihr sonst keinen Zugriff mehr auf euren Server habt. Gebt nun folgendes bei Putty ein:

PuTTY-Konfiguration: Host 178.250.170.125, Port 2222; linke Baumstruktur mit Kategorien (Session, Terminal, SSH, Serial).

Wichtig ist, dass ihr hier euren „neuen SSH Port“ angebt. Bei mir erscheint nun wieder eine Meldung, dass sich der Server verändert hat. Dies bestätige ich mit „Ja“.

PuTTY Security Alert-Dialog mit Warndreieck; Text über Host-Key-Abweichung; Buttons: Ja, Nein, Abbrechen, Hilfe.

Meldet euch nun mit eurem neuen Benutzer aus Schritt 5 an.

Windows-Terminal, schwarzer Bildschirm; login as: dogado, [dogado@testbereich ~]$

8. Zwischen den Benutzern wechseln

Um von eurem Nutzer auf den Benutzer „root“ zu wechseln, gebt ihr einfach „su“ ein, gefolgt von dem Root Kennwort.

Schwarzes Terminalfenster mit Login-Aufforderung: 'login as: dogado', Passwortabfrage und Root-Prompt.

Anhand der „#“ seht ihr, dass ihr nun „root“ seid.

Um vom Benutzer root zu eurem neu erstellten Benutzer zu wechseln, gebt ihr folgendes ein:

su <Nutzername>

In meinem Fall also

su dogado
Terminalfenster mit zwei Prompts: [root@testbereich dogado]# su dogado; [dogado@testbereich ~]$, grüner Cursor.

Hierbei müsst ihr kein Kennwort eingeben.

9. UFW Firewall installieren und einrichten

9.1 Installieren

Nun wollen wir auf unserem CentOS vServer noch eine Firewall installieren. Die nachfolgenden Befehle führe ich als root aus. Gebt nun folgendes ein:

yum -y install epel-release
Schwarzes Terminalfenster mit Installationsausgabe von epel-release, Transaktionsstatus und Abschlussanzeige 'Complete'.

Jetzt haben wir das benötigte Repository installiert. Anschließend können wir UFW installieren. Gebt dazu folgendes ein:

yum -y install ufw
Schwarzes Terminalfenster zeigt Installationsausgabe; Paket uvw wird installiert, Abschluss mit Complete!

9.2 aktuell genutzte Ports anzeigen

Nach der Installation schauen wir uns alle aktuell genutzten Ports an. Dies ist wichtig, da ihr diese Ports gegeben falls später wieder freigeben müsst. Gebt dazu folgenden Befehl ein:

ss -nptl
Schwarzer Terminalbildschirm mit grüner und weißer Textausgabe; mehrere Zeilen mit Spalten und Zahlen.

Bei mir sieht die Ausgabe so aus:

Dies bedeutet, dass folgende Ports genutzt werden:

  • 25: SMTP
  • 80: Webserver
  • 2222: SSH
  • 111: RPC

9.3 UFW Grundeinstellungen

Nun legen wir fest, dass wir grundsätzliche alle eingehen Verbindungen blockieren wollen. Dazu gebt ihr folgendes ein:

ufw default deny incoming

Dies sollte dann so aussehen:

Terminalfenster mit schwarzem Hintergrund; Text: 'ufw default deny incoming' und 'Default incoming policy changed to 'deny''

Nun haben wir auch einige Standard-Einstellungen gesetzt bekommen. Diese können wir uns nun anzeigen lassen. Gebt dazu einfach folgendes ein

ufw status

Nun solltet ihr folgendes sehen:

Terminalfenster mit ufw status; Status: active; SSH, SSH (v6) und mDNS von Anywhere erlaubt.

Ich lösche hier meinen SSH Port, da es sich auf den Port 22 bezieht. Wir nutzen jedoch einen anderen Port (2222). Dazu gebe ich folgendes ein:

ufw delete 3
ufw delete 1

So sieht dies bei mir aus:

Terminalfenster mit zwei ufw delete-Befehlen; SSH-Regeln gelöscht (v6) und danach erneut.

Nun können wir uns unsere Firewall Regeln erneut anschauen. Dazu gebt hier wieder folgendes ein

ufw status
UFW-Status: aktiv. Tabelle: To 224.0.0.251 mDNS – From Anywhere; To ff02::fb mDNS – From Anywhere (v6).

Jetzt seht ihr, dass unsere SSH Einträge entfernt wurden. Die beiden letzten Einträge benötigt ihr, damit euer Server Webseiten Namen auflösen kann.

9.4 Ports freigeben

Nun erlauben wir also die aktuell genutzten Ports, damit unser Server später wieder korrekt funktioniert. Den Port 111 gebe ich hier nicht frei, da ich diese Funktion nicht benötige. Gebt dazu folgendes ein:

ufw allow 25
ufw allow 80
ufw allow 2222

Für jeden Port wird nun eine Regel angelegt.

Linux-Terminal: [root@testbereich dogado]# ufw allow 25; ufw allow 80; ufw allow 2222; Rule added; Rule added (v6).

Nun können wir uns wieder eine Übersicht aller Regeln anschauen. Gebt dazu folgendes ein:

ufw status

So sieht dies bei mir aus:

UFW-Status: active; Regeln: 224.0.0.251 mDNS, 25, 80, 2222 ALLOW; IPv6: ff02::fb mDNS, 25, 80, 2222 ALLOW.

9.5 UFW starten / beenden

Ihr könnt die ufw Firewall mit folgenden Befehlen starten bzw. beenden: Starten der Firewall

ufw enable

Beenden der Firewall

ufw disable

Wenn ihr die Firewall startet, erscheint folgenden Meldung. Diese müsst ihr mit „y“ bestätigen.

Terminalfenster mit root-Eingabeaufforderung; Befehl ufw enable sichtbar; Meldungen zu SSH-Verbindungen und Firewall-Status.

9.6 Status der Firewall anzeigen

Ihr könnt mittels folgenden Befehls euch den Status anzeigen lassen. So erfahrt ihr, ob ufw aktiviert ist und welche Regeln aktuell aktiv sind.

ufw status
ufw status: Status: active; Regeln: 224.0.0.251 mDNS, 25, 80, 2222, ff02::fb mDNS (v6), 25 (v6), 80 (v6), 2222 (v6).

10. Server gegen Brute Force Angriffe absichern

Euer Server wird als Teil des Internets regelmäßig von Bots „angegriffen“. Dies bedeutet, dass Angreifer versuchen sich Zugang per SSH auf euren Server zu verschaffen. Daher haben wir bereits den SSH Port angepasst. Ein Angreifer findet jedoch auch ohne Probleme euren frei gewählten SSH Port heraus. Daher wollen wir nun die Anzahl der Versuche der Passworteingabe beschränken. Dies bedeutet, dass man später nur beispielsweise 5 Versuche in 30 Minuten hat und danach für einen gewissen Zeitraum gebannt wird. Somit wird es für einen Angreifer viel schwerer Zugang zu eurem Server zu bekommen. Das Tool hierfür ist „fail2ban“. Dies installieren wir mit folgendem Befehl:

yum -y  install fail2ban
Schwarzes Terminalfenster mit Installationsausgabe: Paketliste, Abhängigkeiten, Fortschritt und Download-Statistiken.

Anschließend erstellen wir uns eine Konfigurationsdatei:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Diese öffnen wir nun

nano /etc/fail2ban/jail.local

Wenn ihr nun etwas nach unten scrollt, solltet ihr folgende Einträge finden:

Screenshot eines Terminals mit Fail2Ban-Konfig: bantime=10m, findtime=10m, maxretry=5.

Standardmäßig ist hier eingestellt, dass man 5 Versuche innerhalb von 10 Minuten hat. Wenn man also 5x innerhalb von 10 Minuten das Passwort eingibt, wird man für 10 Minuten gebannt. Diese Werte könnt ihr beliebig anpassen.

Scrollt nun noch weiter nach unten, bis ihr folgendes seht:

Schwarzer Terminal; blaue ASCII-Beschriftung: JAILS, SSH servers, [sshd], Codezeilen mit Variablen wie logpath und backend.

Wir wollen nun unseren SSH Dienst absichern. Dazu schreiben wir in den Bereich „sshd“ folgendes:

enabled = true

Anschließend ändern wir noch den Port auf unseren veränderten SSH Port ab. Passt also folgendes an:

port = 2222

So sieht dann meine Konfiguration aus:

Terminalfenster mit Konfig-Datei: mode=normal, port=2222, logpath=(sshd_log), backend=(sshd_backend), enabled=true.

Anschließend könnt ihr mit „STRG+O“ die Datei speichern und mit „STRG+X“ das Programm beenden. Nun müssen wir „fail2ban“ noch neu starten, damit die Änderungen übernommen werden. Gebt dazu folgendes ein:

systemctl restart fail2ban.service

Nun können wir uns den aktuellen Status von fail2ban anschauen. Dazu gebt ihr folgendes ein:

service fail2ban status

Hier sehen wir nun, dass fail2ban korrekt läuft.

Terminalanzeige mit Fail2ban-Status, Startmeldungen, Prozessinfos und dem hervorgehobenen Text 'Server ready'.

Ebenfalls könnt ihr euch noch die Log Dateien anschauen. Dort finden wir noch weitere Informationen. Gebt einfach folgendes ein:

cat /var/log/fail2ban.log

Hier sehen wir auch, dass unser Schutz „sshd“ aktiviert ist und wie die genauen „Bannzeiten“ sind.

Terminalausgabe mit Fail2ban-Start: 'Starting Fail2ban v0.11.2' und 'Jail 'sshd' started'.
Nächster Artikel
Debian auf vServer/Linux installieren
Weitere passende Themen