Sichern von Ubuntu-Servern: Ein praktischer Ansatz zum Schutz von Containern und Bereitstellungen

watch 6m, 45s
views 2

13:43, 17.08.2026

Artikel Inhalt
arrow

  • Erste Einrichtungsschritte
  • Einen neuen Benutzer anlegen
  • SSH-Schlüsselauthentifizierung aktivieren
  • Deploy-Benutzer überprüfen und Sudo konfigurieren
  • Anmeldungen auf SSH-Schlüssel beschränken
  • Konfiguration einer Firewall
  • Sicherheitsupdates automatisieren
  • Implementierung von Fail2Ban
  • Zwei-Faktor-Authentifizierung aktivieren
  • Einrichtung von Logwatch
  • Abschluss der Einrichtung

Es gibt einige hilfreiche Ansätze, mit denen Sie Ihren Ubuntu-Server absichern können. Aus diesem Grund haben wir uns entschlossen, einige praktische Empfehlungen zu diesem Thema zu geben.

Schon durch einen Blick in Ihr „logwatch“-Protokoll können Sie feststellen, wie viele Zugriffsversuche auf Ihr System stattgefunden haben und um welche es sich dabei handelt. In der allgemeinen Übersicht, die wir Ihnen in diesem Artikel vorstellen, gehen wir näher auf die Absicherung von Servern ein, die als Docker-Hosts genutzt werden sollen.

Erste Einrichtungsschritte

Der allererste und zugleich entscheidende Schritt ist die Wahl des Passworts für den Root-Benutzer. Hier sollten Sie ein komplexeres Passwort wählen; ein Passwortgenerator kann in solchen Situationen eine gute Wahl sein. Mithilfe des Passwortgenerators können Sie das benötigte Passwort in nur wenigen Sekunden automatisch erstellen und zusätzlich mit dem Master-Passwort verschlüsseln. Unabhängig davon, welches Tool Sie zur Passwortgenerierung verwenden, sollten Sie auch über eine weitere Form der Verschlüsselung nachdenken. Das Root-Passwort könnte erforderlich sein, falls Probleme mit dem sudo-Passwort auftreten.

Ein weiterer wichtiger Schritt ist das Upgrade und die Aktualisierung, um die neuesten Patches auf dem System zu installieren. So geht’s:

apt-get update
apt-get upgrade

Einen neuen Benutzer anlegen

Ein weiterer wichtiger Punkt, den Sie aus Sicherheitsgründen beachten sollten, ist, sich niemals als Root auf dem Server anzumelden. In einem kleinen Team von Benutzern kann beispielsweise ein einziger Login verwendet werden, um den Prozess zu vereinfachen und dennoch die Sicherheit zu gewährleisten. Bei einer größeren Anzahl von Benutzern im Team ist es am sinnvollsten, bestimmte Berechtigungen ausschließlich über den `sudo`-Zugriff zu vergeben.

# Den Benutzer „deploy“ anlegen
useradd deploy
# Das Home-Verzeichnis für den Benutzer „deploy“ anlegen
mkdir -p /home/deploy
# Erstellen des Verzeichnisses „.ssh“ im Home-Verzeichnis des Benutzers „deploy“
mkdir -p /home/deploy/.ssh
# Legen Sie die entsprechenden Berechtigungen für das Verzeichnis „.ssh“ fest
chmod 700 /home/deploy/.ssh
# Optional können Sie die Eigentumsrechte des Home-Verzeichnisses und des Verzeichnisses „.ssh“ auf den Benutzer „deploy“ ändern
chown -R deploy:deploy /home/deploy

Der nächste Schritt ist die Einrichtung der erforderlichen Shell mit:

usermod -s /bin/bash deploy 

SSH-Schlüsselauthentifizierung aktivieren

Eine weitere gute Empfehlung ist, Passwörter für den Zugriff auf die Server zu vermeiden. Hier sind einige Punkte zu diesem Thema:

  • SSH-Schlüssel sind nahezu unmöglich zu erraten, weshalb ein Zugriff auf das System mittels Brute-Force-Angriffen – anders als bei herkömmlichen Passwörtern – nicht möglich ist.
  • Schlüssel sind zudem besser als herkömmliche Passwörter, da sie mehr Informationen erfordern.
  • Sollte ein Gerät verloren gehen oder sogar gestohlen werden, können Sie Ihren Schlüssel schützen, indem Sie den öffentlichen Schlüssel aus der Datei `authorized_keys` entfernen. Eine zusätzliche Schutzebene erhalten Sie durch die Verwendung einer langen Passphrase.
  • Eine sichere Passphrase ist von entscheidender Bedeutung.

Kopieren wir nun id_rsa.pub1:

vim /home/deploy/.ssh/authorized_keys  

So sollten die richtigen Berechtigungen eingerichtet werden:

chmod 400 /home/deploy/.ssh/authorized_keys

chown deploy:deploy /home/deploy -R

Deploy-Benutzer überprüfen und Sudo konfigurieren

Während dieses Vorgangs bleiben wir als root in der SSH-Verbindung und versuchen, den Deploy-Benutzer zu überprüfen. Anschließend legen wir ein Passwort für „deploy“ fest. Um ein sichereres Passwort zu erstellen, verwenden wir einen speziellen Manager, der zudem eine gewisse Verschlüsselung hinzufügt.

passwd deploy

Öffnen Sie anschließend sudo mit:

visudo

Nun fügen wir den „sudo“-Benutzer unterhalb des Root-Benutzers hinzu:

root ALL=(ALL) ALL

%sudo   ALL=(ALL:ALL) ALL

Fügen Sie den Benutzer „deploy“ mit folgendem Befehl hinzu:

usermod -aG sudo deploy

Nach diesen Schritten erhält der Benutzer „deploy“ sudo-Berechtigungen. Nun können Sie sich entweder erneut bei der Shell anmelden oder den folgenden Befehl verwenden, um auf diese Berechtigungen zuzugreifen:

exec su -l deploy

Anmeldungen auf SSH-Schlüssel beschränken

Die Konfiguration finden Sie hier:

vim /etc/ssh/sshd_config

In der Datei müssen Sie die IP-Adresse hinzufügen; der folgende Befehl ist recht einfach. Sie sollten mit Ihrem VPN verbunden und wie folgt authentifiziert sein:

PermitRootLogin no

PasswordAuthentication no

AllowUsers deploy@(Ihre-VPN-oder-statische-IP)

Anschließend müssen Sie den SSH-Dienst neu starten:

service ssh restart

Konfiguration einer Firewall

Die Konfiguration der Firewall kann mit Iptables erfolgen, oder Sie können eine vereinfachte Alternative zu Iptables namens ufw verwenden. Auf dem Ubuntu-System ist ufw standardmäßig installiert, während es auf dem Debian-System zusätzlich mit folgendem Befehl installiert werden muss:

apt-get install ufw

Öffnen Sie zunächst die Konfigurationsdatei:

vim /etc/default/ufw

Ändern Sie den folgenden Wert auf „yes“:

IPV6=yes

Nun können Sie alles über die Befehlszeile mit ufw wie folgt einrichten:

sudo ufw allow from {IP-Adresse angeben} to any port 22

sudo ufw allow 80

sudo ufw allow 443

sudo ufw disable

sudo ufw enable

Bevor Sie diese Regeln einrichten, sollten Sie unbedingt über eine statische IP-Adresse verfügen. Dieser Faktor ist entscheidend, da Sie bei einer dynamischen IP-Adresse möglicherweise ausgesperrt werden.

Sicherheitsupdates automatisieren

Automatisierung ist sehr wichtig, da Sie sonst möglicherweise einige Sicherheitsupdates in Ihrem System verpassen. Hier sind einige Schritte, die Sie zur Verbesserung der Sicherheit befolgen sollten:

apt-get install unattended-upgrades

vim /etc/apt/apt.conf.d/10periodic

Nehmen Sie folgende Änderungen an der Datei vor:

APT::Periodic::Update-Package-Lists "2";

APT::Periodic::Download-Upgradeable-Packages "2";

APT::Periodic::AutocleanInterval "14";

APT::Periodic::Unattended-Upgrade "1";

Eine weitere grundlegende Empfehlung ist, nur Sicherheitsupdates zu aktivieren, da normale Updates dazu führen können, dass die Anwendung während der Aktualisierung ausfällt, was in den meisten Fällen nicht ideal ist.

vim /etc/apt/apt.conf.d/50unattended-upgrades

Nehmen Sie folgende Änderungen an der Datei vor:

Unattended-Upgrade::Allowed-Origins {

    "${distro_id}:${distro_codename}";

    "${distro_id}:${distro_codename}-security";

    "${distro_id}:${distro_codename}-updates";

    "${distro_id}:${distro_codename}-backports";

};

Implementierung von Fail2Ban

Die Implementierung von Fail2Ban ist eine hervorragende Wahl, um zahlreiche verdächtige Aktivitäten zu blockieren. Dieses Paket fügt Regeln zu iptables hinzu und sperrt verdächtige IP-Adressen, die ungewöhnliche Aktivitäten aufweisen.

Das Paket nutzt einige hilfreiche Filterprotokolle und bietet eine hervorragende Integration mit anderen Diensten, um einen besseren Schutz vor Brute-Force- oder DDoS-Angriffen zu gewährleisten. Sie sollten Fail2Ban regelmäßig überprüfen, da es möglicherweise auch einige echte Nutzer blockiert. Um den Vorgang zu vereinfachen, können Sie das Tool in SendMail integrieren und werden sofort benachrichtigt, sobald eine bestimmte IP-Adresse gesperrt wird.

Verwenden Sie für die Installation:

apt-get install fail2ban

Zwei-Faktor-Authentifizierung aktivieren

Wenn Sie einen vollständig gesicherten Server mit geringeren Risiken und einer geringeren Anfälligkeit für Cyberangriffe wünschen, ist die Zwei-Faktor-Authentifizierung ein Muss. Der Zugriff auf Ihren Server wird dadurch erheblich erschwert, da Hacker Folgendes tun müssten:

  • Auf das VPN zugreifen, indem sie den Schlüssel/das Zertifikat beschaffen
  • Auf Ihren Rechner zugreifen, um den privaten Schlüssel zu erhalten
  • Irgendwie die Passphrase beschaffen
  • Und schließlich ist für die Zwei-Faktor-Authentifizierung der Zugriff auf Ihr Smartphone erforderlich

Selbst wenn dies möglich wäre, müssten sie Root-Zugriff über `sudo` erlangen, da diese Hacker irgendwie das verschlüsselte Passwort des Deploys beschaffen müssten – und das ist eine enorme Herausforderung.

Verwenden Sie für die Installation:

apt-get install libpam-google-authenticator

Zur Einrichtung benötigen Sie die folgenden Befehle:

su deploy

google-authenticator

Einrichtung von Logwatch

Logwatch ist ein weiteres hilfreiches Tool, das für die Überprüfung der Logdateien erforderlich ist. Täglich erhalten Sie Daten zu allen Zugriffsversuchen, die in diesem Zeitraum stattgefunden haben, sodass Sie einen klaren Überblick darüber haben, was auf Ihrem Server vor sich geht. Dies kann als Überwachungswerkzeug genutzt werden, und die Installation ist ganz einfach:

apt-get install logwatch

Fügen Sie anschließend den folgenden Eintrag hinzu:

vim /etc/cron.daily/00logwatch

Fügen Sie der geöffneten Datei die folgende Zeile hinzu:

/usr/sbin/logwatch --output mail --mailto admin@example.com --detail high

Abschluss der Einrichtung

Hier finden Sie alles, was Sie über die Sicherheit Ihres Ubuntu-Servers wissen müssen. Allein durch die Befolgung unserer praktischen Empfehlungen können Sie virtuelle Angriffe auf Ihr System erheblich minimieren. Wenn Sie noch einen Schritt weiter gehen möchten, sollten Sie auch andere mögliche Schwachstellen überprüfen, die mit dem Dienst und Ihren Anwendungen zusammenhängen. Dies ist jedoch ein ganz anderes Thema!

Teilen

War dieser Artikel für Sie hilfreich?

VPS beliebte Angebote

-5.6%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
60 GB HDD
Bandwidth
Bandwidth
Unlimited
wKVM-HDD 2048 Windows

13.7 /mo

/mo

Alle 12 Monate abgerechnet

-7.4%

CPU
CPU
3 Xeon Cores
RAM
RAM
1 GB
Space
Space
40 GB HDD
Bandwidth
Bandwidth
300 Gb
KVM-HDD HK 1024 Linux

4.86 /mo

/mo

Alle 12 Monate abgerechnet

-10%

CPU
CPU
3 Epyc Cores
RAM
RAM
2 GB
Space
Space
20 GB NVMe
Bandwidth
Bandwidth
Unlimited
KVM-NVMe 2048 Linux

8.8 /mo

/mo

Alle 12 Monate abgerechnet

-18.4%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
75 GB SSD
Bandwidth
Bandwidth
2 TB
wKVM-SSD 2048 Metered Windows

24 /mo

/mo

Alle 12 Monate abgerechnet

-10%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 8192 Linux

25.85 /mo

/mo

Alle 12 Monate abgerechnet

-7.2%

CPU
CPU
3 Xeon Cores
RAM
RAM
1 GB
Space
Space
20 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 1024 Linux

6.4 /mo

/mo

Alle 12 Monate abgerechnet

-8.9%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
400 GB HDD
Bandwidth
Bandwidth
Unlimited
wKVM-HDD 16384 Windows

56 /mo

/mo

Alle 12 Monate abgerechnet

-9.2%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
Unlimited
10Ge-wKVM-SSD 4096 Windows

72 /mo

/mo

Alle 12 Monate abgerechnet

-10%

CPU
CPU
10 Epyc Cores
RAM
RAM
64GB
Space
Space
400 GB NVMe
Bandwidth
Bandwidth
Unlimited
Keitaro KVM 65536
OS
CentOS
Software
Software
Keitaro

149.04 /mo

/mo

Alle 12 Monate abgerechnet

-8.8%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
400 GB HDD
Bandwidth
Bandwidth
300 Gb
wKVM-HDD HK 16384 Windows

45.91 /mo

/mo

Alle 12 Monate abgerechnet

Weitere Artikel zu diesem Thema

cookie

Cookies und Datenschutz akzeptieren?

Wir verwenden Cookies, um sicherzustellen, dass wir Ihnen die beste Erfahrung auf unserer Website bieten. Wenn Sie fortfahren, ohne Ihre Einstellungen zu ändern, gehen wir davon aus, dass Sie mit dem Empfang aller Cookies auf der HostZealot-Website einverstanden sind.