Erste Schritte nach der Installation

So, unser Debian-Server ist jetzt installiert und einsatzbereit. Bevor wir aber anfangen Software zu installieren und den Server produktiv zu verwenden, müssen noch einige Dinge getan werden um das System effizient und sicher zu machen.

SSH-Server absichern

Theoretisch könnten wir uns jetzt schon via SSH einloggen. Allerdings sollten wir den Server so schnell wie möglich absichern um zu verhindern, dass sich Unbefugte einloggen können. Zuallererst loggen wir uns mit dem root-Account ein. Dazu geben wir im Anmeldebildschirm des Systems als User „root“ ein und als Passwort das bei der Installation festgelegte Passwort. Wenn das geschehen ist, ist man eingeloggt und kann anfangen.

nano_sshd

Die SSH-Konfiguration in Nano

Dazu rufen wir zuerst einmal die Konfigurationsdatei des SSH-Servers auf. Dazu benutzt man folgenden Befehl:

nano /etc/ssh/sshd_config

Damit rufen wir im Editor „nano“ die Datei „sshd_config“ im Verzeichnis „/etc/ssh/“ auf. Mit den Pfeiltasten kann man im Editor navigieren. Zuerst einmal sucht man die Zeile

PermitRootLogin without-password
und ersetzt sie durch

PermitRootLogin no

Damit wird verhindert, dass man sich direkt als Systembenutzer „root“ anmelden kann. Wir werden später einen Benutzeraccount so einrichten, dass dieser das System verwalten kann. Außerdem sollte man den Server so einrichten, dass nur bestimmte Benutzer sich via SSH anmelden dürfen, da es eventuell später Accounts gibt (für spezielle Dienste wie z.B. Mailserver), die nicht zur Administration gedacht sind. Dazu scrollt man bis zum Ende der Konfigurationsdatei und fügt dort die Zeile
AllowUsers Benutzer

ein und ersetzt Benutzer durch eine Liste mit Benutzern, denen man später Zugriff auf den Server geben will. Damit ist der SSH-Server schon mal grundlegend abgesichert. Um die Änderungen zu speichern drückt man STRG-O, bestätigt mit Enter und verlässt den Editor mit STRG-X. Um die Konfiguration wirksam zu machen starten wir den SSH-Server mit folgendem Befehl neu:

systemctl restart sshd

Fail2ban installieren

Fail2ban ist ein Script, welches dafür sorgt, dass der Server nicht per Brute-Force angegriffen werden kann. Dazu sperrt es Zugriffe nach einer festgelegten Anzahl an fehlgeschlagenen Loginversuchen für eine bestimmte Zeit. Um Fail2ban zu installieren gibt man

apt-get -y install fail2ban

ein. Das Programm aktiviert sich automatisch nach der Installation und beginnt zu arbeiten. In der Standardeinstellung wird man nach 6 fehlgeschlagenen Versuchen für 10 Minuten gebannt. Wie man diese Vorgaben ändert könnt ihr hier nachlesen.

Weitere Benutzeraccounts erstellen

Jeder, der sich auf dem Server einloggen können soll bekommt einen eigenen Benutzeraccount. So lässt sich später nachvollziehen wer was am Server geändert hat. Um einen neuen Benutzeraccount einzurichten gibt man folgenden Befehl ein:

adduser benutzername

Benutzername ersetzt man durch den Namen, den der neue User zum Einloggen benutzen soll. Anschließend muss man noch ein Passwort festlegen. Dies kann später mit „passwd“ geändert werden. Es werden noch einige weitere Fragen gestellt, die man allerdings Überspringen kann. Mit „Y“ bestätigt man am Schluss seine Eingaben. Dieses Verfahren wiederholt man für jeden Benutzer, der hinzugefügt werden soll.

Sudo installieren und einrichten

Als nächstes installieren wir das Systemprogramm „Sudo“. Mit diesem können wir uns später mit unserem normalen Benutzeraccount einloggen und trotzdem Änderungen am System durchführen. Dazu gibt man einfach vor dem Befehl, den man ausführen möchte „sudo“ ein. Man installiert es mit

apt-get -y install sudo

Um jetzt Benutzern Adminisdratorrechte zu geben fügt man sie zur Gruppe „sudo“ hinzu. Dies macht man mit

usermod -a -G sudo benutzername

Dabei muss man (wieder mal) „Benutzername“ mit dem User ersetzen, der Administrationsrechte bekommen soll. Um die Änderungen wirksam zu machen startet man den Dienst mit

systemctl restart sudo

neu.

Ein Beispiel für Sudo

Angenommen, wir wollen die Konfiguration unseres SSH-Servers ändern. Wir sind aber als normaler Benutzer (welcher in der Gruppe sudo sein muss) angemeldet. Um jetzt trotzdem die Datei bearbeiten zu können würde man einfach „sudo“ vor den Befehl schreiben, also

sudo nano /etc/ssh/sshd_config

anstatt

nano /etc/ssh/sshd_config

Wenn man länger als „root“ arbeiten muss, empfielt sich mit

sudo su

in eine Root-Shell zu wechseln. Mit „exit“ verlässt man diese wieder.

Ab dem Punkt wo man Sudo eingerichtet hat, sollte man auch zu seinem normalen Benutzeraccount wechseln. Dazu gibt man „logout“ oder „exit“ ein. Dann ist man wieder auf dem Anmeldebildschirm und meldet sich mit seinem Benutzeraccount an.

Ab hier kann man sich auch über SSH einloggen. Eine Anleitung findet ihr hier.

Automatische Updates

Man sollte das System so einrichten, dass Softwareupdates direkt installiert werden. Denn veraltete Software stellt oftmals eine Sicherheitslücke dar und wird nicht umsonst mit einer neueren Version gepatcht. Um die Updates automatisch einzuspielen installiert man das Paket „cron-apt“. Dazu gibt man den Befehl
sudo apt-get install cron-apt

ein. In der Standardeinstellung werden Updates nur heruntergeladen, aber nicht installiert. Um dies zu ändern wechseln wir mit

sudo nano /etc/cron-apt/action.d/3-download
in die Konfigurationsdatei. Diese sieht bisher so aus:

autoclean -y
dist-upgrade -d -y -o APT::Get::Show-Upgraded=true

Wir entfernen die erste Zeile und ändern die zweite so ab, dass die Datei am Ende so aussieht:

upgrade -y -o APT::Get::Show-Upgraded=true

Mit STRG-O, Enter und STRG-X verlassen wir den Editor wieder.

Damit ist der Server schon einmal grundlegend eingerichtet. Jetzt kann man anfangen seine Software zu installieren, weitere Einrichtungen vorzunehmen und mehr.