{"id":25035,"date":"2026-09-16T19:09:49","date_gmt":"2026-09-16T19:09:49","guid":{"rendered":"https:\/\/www.mailgun.com\/blog\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\/"},"modified":"2026-09-16T19:09:49","modified_gmt":"2026-09-16T19:09:49","slug":"sicherheitsleitfaden-grundlegende-infrastruktursicherheit","status":"publish","type":"blog","link":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\/","title":{"rendered":"Leitfaden zur Sicherheit: Wie Sie Ihre Infrastruktur vor einfachen Angreifern sch\u00fctzen k\u00f6nnen"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Ihre Infrastruktur in einer sicheren Konfiguration zu betreiben, ist selbst f\u00fcr Sicherheitsfachleute eine gewaltige Aufgabe. Dieser Leitfaden bietet praktische Ratschl\u00e4ge, um Techniker dabei zu unterst\u00fctzen, eine Infrastruktur nach den Sicherheits-Best Practices aufzubauen, damit sie ihre Dienste sicher im \u00f6ffentlichen Internet bereitstellen und das Risiko einer Kompromittierung senken k\u00f6nnen. Dieser Leitfaden richtet sich speziell an Linux-basierte Systeme. Die Best Practices gelten jedoch f\u00fcr alle Computersysteme.<\/p>\n\n\n\r\n    <nav data-content-type=\"longform\" class=\"toc-block longform-spacings px-5 py-6 px-md-6 px-lg-7 py-md-7 bg-light fs-sm rounded-lg\" aria-labelledby=\"toc-title-1236\"><p class=\"h5 m-0\" id=\"toc-title-1236\">Inhaltsverzeichnis<\/p><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">01<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#checkliste-fuer-die-netzsicherheit\">Checkliste f\u00fcr die Netzsicherheit<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">02<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#software-schwachstellen\">Software-Schwachstellen<\/a><a class=\"scrollme link-body-color\" href=\"#so-schuetzen-sie-sich-vor-software-schwachstellen\">So sch\u00fctzen Sie sich vor Software-Schwachstellen<\/a><a class=\"scrollme link-body-color\" href=\"#so-reduzieren-sie-den-schaden-durch-software-schwachstellen\">So reduzieren Sie den Schaden durch Software-Schwachstellen<\/a><a class=\"scrollme link-body-color\" href=\"#zusammenfassung\">Zusammenfassung<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">03<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#netzwerkhaertung\">Netzwerkh\u00e4rtung<\/a><a class=\"scrollme link-body-color\" href=\"#was-ist-netzwerkhaertung\">Was ist Netzwerkh\u00e4rtung?<\/a><a class=\"scrollme link-body-color\" href=\"#so-reduzieren-sie-schaeden-durch-netzwerkhaertung\">So reduzieren Sie Sch\u00e4den durch Netzwerkh\u00e4rtung<\/a><a class=\"scrollme link-body-color\" href=\"#zusammenfassung\">Zusammenfassung<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">04<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#sicherheit-der-netzwerk-firewall\">Sicherheit der Netzwerk-Firewall<\/a><a class=\"scrollme link-body-color\" href=\"#so-ueberpruefen-sie-firewall-regeln\">So \u00fcberpr\u00fcfen Sie Firewall-Regeln<\/a><a class=\"scrollme link-body-color\" href=\"#zusammenfassung\">Zusammenfassung<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">05<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#remote-anmeldung\">Remote-Anmeldung<\/a><a class=\"scrollme link-body-color\" href=\"#beschreibung\">Beschreibung<\/a><a class=\"scrollme link-body-color\" href=\"#zusammenfassung\">Zusammenfassung<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">06<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#trust-boundaries\">Trust Boundaries<\/a><a class=\"scrollme link-body-color\" href=\"#beschreibung\">Beschreibung<\/a><a class=\"scrollme link-body-color\" href=\"#staerkung-des-api-endpunkts\">St\u00e4rkung des API-Endpunkts<\/a><a class=\"scrollme link-body-color\" href=\"#staerkung-des-dienst-endpunkts-und-aller-weiteren-aspekte\">St\u00e4rkung des Dienst-Endpunkts (und aller weiteren Aspekte)<\/a><a class=\"scrollme link-body-color\" href=\"#zusammenfassung\">Zusammenfassung<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">07<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#monitoring-und-protokollierung\">Monitoring und Protokollierung<\/a><a class=\"scrollme link-body-color\" href=\"#beschreibung\">Beschreibung<\/a><a class=\"scrollme link-body-color\" href=\"#allgemeine-anwendungsprotokolle\">Allgemeine Anwendungsprotokolle<\/a><a class=\"scrollme link-body-color\" href=\"#systemprotokolle\">Systemprotokolle<\/a><a class=\"scrollme link-body-color\" href=\"#zusammenfassung\">Zusammenfassung<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">08<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#kryptografie-nutzen\">Kryptografie nutzen<\/a><a class=\"scrollme link-body-color\" href=\"#beschreibung\">Beschreibung<\/a><a class=\"scrollme link-body-color\" href=\"#zusammenfassung\">Zusammenfassung<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">09<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#backups\">Backups<\/a><a class=\"scrollme link-body-color\" href=\"#beschreibung\">Beschreibung<\/a><a class=\"scrollme link-body-color\" href=\"#zusammenfassung\">Zusammenfassung<\/a><\/div><\/div><\/nav>\n\n\n<p class=\"wp-block-paragraph\">Ihre Infrastruktur in einer sicheren Konfiguration zu betreiben, ist selbst f\u00fcr Sicherheitsfachleute eine gewaltige Aufgabe. Dieser Leitfaden bietet praktische Ratschl\u00e4ge, um Techniker dabei zu unterst\u00fctzen, eine Infrastruktur nach den Sicherheits-Best Practices aufzubauen, damit sie ihre Dienste sicher im \u00f6ffentlichen Internet bereitstellen und das Risiko einer Kompromittierung senken k\u00f6nnen. Dieser Leitfaden richtet sich speziell an Linux-basierte Systeme. Die Best Practices gelten jedoch f\u00fcr alle Computersysteme.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Teil des sicheren Betriebs einer Infrastruktur besteht darin, zu verstehen, wovor und vor wem Sie Ihre Infrastruktur sch\u00fctzen. Dieser Leitfaden wird letztendlich drei Versionen umfassen: Basic, Intermediate und Advanced. Jede Version konzentriert sich darauf, Ihre Infrastruktur vor einer anderen Art von Angreifern zu sch\u00fctzen. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sie lesen die Basic-Version, die vor automatisierten Angriffen und Script-Kiddies sch\u00fctzen soll, die eher Exploitation-Tools als Exploitation-Techniken verstehen. Diese Art von Angreifer agiert eher opportunistisch als gezielt und wendet sich schnell leichteren Zielen zu. <b>Wenn Sie ein Nebenprojekt betreiben oder ein Unternehmen gr\u00fcnden, ist dies der beste Ausgangspunkt und hilft Ihnen beim Aufbau einer soliden Grundlage.<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ber\u00fccksichtigen Sie beim Lesen dieses Leitfadens, vor welcher Art von Angreifern und Angriffen Sie sich sch\u00fctzen m\u00f6chten. Die Best Practices, die Sie befolgen oder nicht befolgen, h\u00e4ngen davon ab, was Sie sch\u00fctzen m\u00f6chten und vor wem Sie sich verteidigen wollen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Checkliste f\u00fcr die Netzsicherheit<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dieser Leitfaden folgt in seiner Er\u00f6rterung der Softwaresicherheit den folgenden Leitprinzipien:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b>Verteidigen, erkennen und reagieren. <\/b>Das bedeutet, dass Sie gute Sicherheitspraktiken anwenden, um Ihre Infrastruktur zu verteidigen. Protokollieren Sie jedoch jedes verd\u00e4chtige Verhalten und stellen Sie im Falle einer Kompromittierung einen sicheren Zustand wieder her.<\/li>\n\n\n\n<li><b>Jede Software kann kompromittiert werden.<\/b> Jede nicht triviale Software weist Schwachstellen auf, die es Angreifern mit ausreichender Motivation erm\u00f6glichen, diese auszunutzen.<\/li>\n\n\n\n<li><b>Einfachheit bedeutet Sicherheit. <\/b>\u00dcberm\u00e4\u00dfig komplexe Systeme sind f\u00fcr das Entwicklungsteam schwerer zu durchschauen und f\u00fcr Angreifer leichter auszunutzen. Einfachere Systeme, die leichter nachvollziehbar sind, sind oft sicherer. F\u00fchren Sie keine Sicherheitsl\u00f6sung ein, die Sie nicht verstehen.<\/li>\n\n\n\n<li><b>Verschleierung ist keine Sicherheit. <\/b>Verlassen Sie sich auf die Sicherheit der Protokolle, die Sie zum Schutz Ihrer Infrastruktur verwenden, und nicht auf verborgene Ports und andere Tricks, um unsichere Protokolle zu verbergen.<\/li>\n\n\n\n<li><b>Betrachten Sie alle Eingaben von Nutzern als potenziell feindlich. <\/b>Betrachten Sie alle Eingaben von Nutzern als potenziell feindlich und \u00fcberpr\u00fcfen Sie streng, was Sie zulassen.<\/li>\n\n\n\n<li><b>Prinzip der geringsten Privilegien. <\/b>Gew\u00e4hren Sie nur die minimalen Privilegien, die f\u00fcr die Ausf\u00fchrung eines Vorgangs erforderlich sind. Wenn ein Prozess oder System kompromittiert wird, sollten Angreifer nicht mehr Zugriff erhalten, als minimal erforderlich ist.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Software-Schwachstellen<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">So sch\u00fctzen Sie sich vor Software-Schwachstellen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Das strikte Anwenden von Sicherheitsupdates f\u00fcr Software, die Sie nicht selbst geschrieben haben, mag als unzureichende Methode zum Schutz Ihrer Infrastruktur erscheinen und vielleicht sogar sinnlos wirken. Aus Sicherheitsperspektive ist es jedoch eine der besten Zeitinvestitionen, die Sie t\u00e4tigen k\u00f6nnen. Im Folgenden finden Sie zwei Beispiele f\u00fcr aktuelle Sicherheitsprobleme, die <b>auch weniger versierte Angreifer mit automatisierten Tools ausnutzen k\u00f6nnen, wenn Sie Ihre Server nicht mit den neuesten Sicherheitspatches aktualisiert haben<\/b>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><i>Heartbleed<\/i>: erm\u00f6glicht es Angreifern, Ihre privaten Zertifikate zu stehlen und verschl\u00fcsselten Datenverkehr zu entschl\u00fcsseln<\/li>\n\n\n\n<li><i>Shellshock<\/i>: erm\u00f6glicht es Angreifern, aus der Ferne beliebigen Code auf Ihren Servern auszuf\u00fchren<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Allein diese beiden Probleme w\u00fcrden Angreifern die vollst\u00e4ndige Kontrolle \u00fcber Ihre gesamte Infrastruktur geben. Gl\u00fccklicherweise ist die Behebung dieser Fehler <b>nicht schwierig<\/b>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">So reduzieren Sie den Schaden durch Software-Schwachstellen <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Installieren Sie konsequent Sicherheitsupdates, die vom Anbieter Ihres Betriebssystems bereitgestellt werden. Die meisten Anbieter verf\u00fcgen \u00fcber eine automatisierte Methode. F\u00fcr Debian-basierte Systeme k\u00f6nnen Sie beispielsweise\u00a0<a href=\"https:\/\/wiki.debian.org\/UnattendedUpgrades\" target=\"_tabs\" rel=\"noopener noreferrer\"><i>Unattended Upgrades<\/i><\/a><i>,<\/i> und f\u00fcr Red Hat-basierte Systeme k\u00f6nnen Sie \u00a0<a href=\"http:\/\/fedoraproject.org\/wiki\/AutoUpdates\" target=\"_tabs\" rel=\"noopener noreferrer\"><i>AutoUpdates<\/i><\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Automatisiertes Patching ist hervorragend, hat jedoch einen potenziellen Nachteil (f\u00fcr Ihr Unternehmen), wenn Sie Ihre Software nicht testen, bevor Sie Patches auf Produktionsservern anwenden: <b>Dinge k\u00f6nnen unerwartet kaputtgehen<\/b>. So sehr Paket-Maintainer auch versuchen sicherzustellen, dass Sicherheitsupdates keine Breaking Changes enthalten, k\u00f6nnen sie vor der Ver\u00f6ffentlichung nicht jede Kombination testen, die irgendwo ausgef\u00fchrt wird. Deshalb ist es wichtig, entweder \u00fcber ein Staging-System f\u00fcr Continuous Integration\/Continuous Deployment (CI\/CD) zu verf\u00fcgen oder Sicherheitsupdates manuell zu testen, bevor sie auf Produktionsservern bereitgestellt werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das reine Anwenden dieser Sicherheitsupdates reicht jedoch nicht aus. Wenn sich das Problem in einer Shared Library befindet, verwenden Sie weiterhin die alte Version der Bibliothek und sind anf\u00e4llig f\u00fcr Exploits, bis Sie den damit verkn\u00fcpften Prozess neu starten. Um zu \u00fcberpr\u00fcfen, ob Sie Bin\u00e4rdateien haben, die neu gestartet werden m\u00fcssen, k\u00f6nnen Sie\u00a0<a href=\"http:\/\/manpages.debian.org\/cgi-bin\/man.cgi?query=checkrestart\" target=\"_tabs\" rel=\"noopener noreferrer\"><i>checkrestart<\/i><\/a>\u00a0f\u00fcr Debian-basierte Systeme und\u00a0<a href=\"http:\/\/man7.org\/linux\/man-pages\/man1\/needs-restarting.1.html\" target=\"_tabs\" rel=\"noopener noreferrer\"><i>needs-restarting<\/i><\/a>\u00a0f\u00fcr Red Hat-basierte Systeme verwenden.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Zusammenfassung<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>DO: Patchen Sie Ihre Server gegen die neuesten Sicherheitsl\u00fccken.<\/li>\n\n\n\n<li>DO: Verwenden Sie nach M\u00f6glichkeit automatische Updates von Ihrem Betriebssystem-Anbieter.<\/li>\n\n\n\n<li>DO: Starten Sie alle Dienste neu, die auf aktualisierten Shared Libraries basieren.<\/li>\n\n\n\n<li>DON\u2019T: Stellen Sie keine Updates auf einem Server bereit, ohne vorher Tests durchzuf\u00fchren.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Netzwerkh\u00e4rtung<b> <\/b><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Was ist Netzwerkh\u00e4rtung? <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Das H\u00e4rten Ihrer Anwendung mithilfe von Funktionen auf Betriebssystemebene ist ein effektiver Ansatz, um <b>das Schadensausma\u00df durch Angreifer zu begrenzen<\/b>, nachdem diese eine Schwachstelle in Ihrer Anwendung ausgenutzt haben. Dieser Abschnitt konzentriert sich auf die Verwendung herk\u00f6mmlicher Unix-Zugriffskontrollfunktionen, mit denen die meisten Nutzer vertraut sind, um Ihre Anwendung auf die minimalen Zugriffsrechte zu beschr\u00e4nken, die sie f\u00fcr den Betrieb ben\u00f6tigt. Diese Funktionen umfassen Berechtigungen f\u00fcr Dateien, die Nutzerkennung (UID) und den Root-Zugriff.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das Ziel dieses Abschnitts ist es nicht, Ihre Anwendung so weit zu h\u00e4rten, dass Angreifer sie \u00fcberhaupt nicht kompromittieren k\u00f6nnen. Das ist ein fast unm\u00f6gliches Ziel. Das Ziel ist es, einzuschr\u00e4nken, was Angreifer tun k\u00f6nnen, sobald Ihre Anwendung kompromittiert wurde. Nachdem Angreifer Ihre Anwendung ausgenutzt haben, k\u00f6nnen sie Aktionen im Namen Ihrer Anwendung ausf\u00fchren und m\u00f6glicherweise sogar ihre Privilegien auf Root-Ebene ausweiten, was ihnen vollst\u00e4ndigen Zugriff auf Ihr Betriebssystem erm\u00f6glicht. Das Ziel besteht stattdessen darin, <b>die Aktionen, die Ihre Anwendung ausf\u00fchren kann, auf das N\u00f6tigste zu beschr\u00e4nken<\/b>, was wiederum die Angreifer einschr\u00e4nkt.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">So reduzieren Sie Sch\u00e4den durch Netzwerkh\u00e4rtung <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Sie sollten Ihre Anwendung so einschr\u00e4nken, dass Angreifer selbst dann, wenn sie Ihren Prozess ausgenutzt haben und Code \u00fcber dieses Nutzerkonto ausf\u00fchren k\u00f6nnen, nur \u00fcber eingeschr\u00e4nkte Zugriffsrechte auf das Dateisystem verf\u00fcgen. Dasselbe Konzept gilt f\u00fcr den Prozess, unter dem das Konto ausgef\u00fchrt wird: Beschr\u00e4nken Sie die CPU-Zeit, den Arbeitsspeicher und die Anzahl der Dateideskriptoren, um DoS-\u00e4hnliche Angriffe abzuwehren, bei denen Angreifer Ihre Ressourcen ersch\u00f6pfen. Das Ziel ist es, <b>Angreifer dazu zu zwingen, einen Angriff zur Eskalation von Privilegien durchzuf\u00fchren<\/b> (einen anderen Teil Ihres Betriebssystems auszunutzen, um ihre Privilegien \u00fcber die der laufenden Anwendung hinaus zu erweitern), <b>um \u00fcberhaupt etwas Bedeutungsvolles auf Ihrem System zu erreichen.<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Um das Konto einzuschr\u00e4nken, \u00fcber das Ihre Anwendung ausgef\u00fchrt wird, befolgen Sie diese Richtlinien:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>F\u00fchren Sie Ihre Anwendung niemals als Root oder als Nutzer mit sudo-Rechten aus. Wird Ihre Anwendung ausgenutzt, bedeutet dies praktisch, dass Angreifer Root-Rechte erlangen k\u00f6nnen.<\/li>\n\n\n\n<li>Wenn Sie mehrere Anwendungen haben und jede auf unterschiedliche sensible Daten zugreift, sollten Sie in Betracht ziehen, jede unter ihrem eigenen Konto auszuf\u00fchren und dann Dateisystem-Berechtigungen zu verwenden, um den Zugriff auf sensible Daten voneinander zu isolieren. Das bedeutet, dass sensible Anwendungsdaten niemals \u00fcber Berechtigungen verf\u00fcgen sollten, die es jedem erm\u00f6glichen, diese zu lesen und zu schreiben. Setzen Sie beispielsweise Berechtigungen niemals auf einen Wert wie <code>0777<\/code>, sondern verwenden Sie einen Wert wie <code>0660<\/code>.<\/li>\n\n\n\n<li>Stellen Sie sicher, dass sowohl der Anwendungsnutzer als auch die Gruppe \u00fcber eingeschr\u00e4nkte Rechte verf\u00fcgen. Das bedeutet, einen neuen eingeschr\u00e4nkten Nutzer und eine neue Gruppe f\u00fcr das Konto zu erstellen und diesem Nutzer keine Shell zuzuweisen. Angenommen, Sie haben eine App namens <code>foo<\/code>. Erstellen Sie einen Nutzer namens <code>fooapp <\/code>und legen Sie dessen Stammverzeichnis auf <code>\/var\/appdata\/fooapp<\/code> fest: <code>sudo useradd -r -s \/bin\/false --home \/var\/appdata\/fooapp fooapp sudo mkdir \/var\/appdata\/fooapp sudo chown fooapp:fooapp \/var\/appdata\/fooapp<\/code><\/li>\n\n\n\n<li>Richten Sie Ihre Anwendung als Daemon ein, damit sie automatisch unter einem bestimmten Nutzer gestartet wird. Es gibt zwei allgemeine Ans\u00e4tze, um dieses Problem zu l\u00f6sen. Der erste besteht darin, Betriebssystemfunktionen (wie System V-Init-Skripte (<a href=\"https:\/\/blog.hazrulnizam.com\/create-init-script-centos-6\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Red Hat<\/a> \/ <a href=\"https:\/\/wiki.debian.org\/Daemon\" target=\"_tabs\" rel=\"noopener noreferrer\">Debian<\/a>) oder systemd (<a href=\"https:\/\/access.redhat.com\/documentation\/en-US\/Red_Hat_Enterprise_Linux\/7\/html\/System_Administrators_Guide\/chap-Managing_Services_with_systemd.html\" target=\"_tabs\" rel=\"noopener noreferrer\">Red Hat<\/a>\/ <a href=\"https:\/\/wiki.debian.org\/systemd\" target=\"_tabs\" rel=\"noopener noreferrer\">Debian<\/a>) zum Starten und Stoppen Ihrer Anwendung zu verwenden und anschlie\u00dfend ein Prozess\u00fcberwachungstool (wie <a href=\"https:\/\/mmonit.com\/monit\" target=\"_tabs\" rel=\"noopener noreferrer\">monit<\/a>) einzusetzen, um Ihre Anwendung bei einem Absturz neu zu starten. Der andere Ansatz ist die Verwendung eines Prozessleitsystems (wie <a href=\"http:\/\/supervisord.org\" target=\"_tabs\" rel=\"noopener noreferrer\">supervisord<\/a>, <a href=\"http:\/\/skarnet.org\/software\/s6\" target=\"_tabs\" rel=\"noopener noreferrer\">skarnet s6<\/a>, <a href=\"http:\/\/cr.yp.to\/daemontools.html\" target=\"_tabs\" rel=\"noopener noreferrer\">daemontools<\/a>), die Ihre Anwendung als Child-Prozess starten und sie bei einem Absturz ebenfalls neu starten. Beide Ans\u00e4tze sind absolut in Ordnung, und welcher f\u00fcr Sie am besten geeignet ist, h\u00e4ngt davon ab, was besser zu Ihrem Workflow passt.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Um den Prozess einzuschr\u00e4nken, der Ihre Anwendung ausf\u00fchrt, <b>befolgen Sie diese Richtlinien<\/b>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Weisen Sie pro Prozess Limits zu, indem Sie die Datei <code>\/etc\/security\/limits.conf <\/code>verwenden. Wenn Sie beispielsweise die Anzahl der ge\u00f6ffneten Dateideskriptoren auf 10 und den Arbeitsspeicher auf 1 GB beschr\u00e4nken m\u00f6chten, f\u00fcgen Sie der Datei <code>\/etc\/security\/limits.conf <\/code>die folgenden Zeilen hinzu:<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><code>fooapp hard nofile 10  # Limit von 10 offenen Dateideskriptoren fooapp hard as 1000000 # 1 GB Limit<\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Binden Sie Ihre Anwendung nicht an einen niedrigen Port. Normalerweise m\u00fcssen Sie Ihre Anwendung hierf\u00fcr mit Administratorrechten ausf\u00fchren. Binden Sie sie stattdessen an eine hohe Portnummer und verwenden Sie einen Reverse Proxy, um Ihre Anfragen an Ihre Anwendung weiterzuleiten. Verwenden Sie dann Linux-Capabilities, damit Ihr Reverse Proxy ohne weitere Privilegien an einen niedrigen Port gebunden werden kann. Wenn Sie beispielsweise einen Reverse Proxy in\u00a0<code>\/opt\/rproxy<\/code> haben, k\u00f6nnen Sie seine Capabilities wie folgt festlegen:<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><code>setcap 'cap_net_bind_service=+ep' \/opt\/rproxy<\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ziehen Sie schlie\u00dflich die Verwendung von <code>chroot<\/code> in Betracht. Beachten Sie jedoch, dass dies mit einem gewissen Wartungsaufwand verbunden ist. Mit <code>chroot <\/code>k\u00f6nnen Sie einschr\u00e4nken, was ein Prozess im Dateisystem sehen darf. Genauer gesagt \u00e4ndert es Ihr Root-Verzeichnis in ein Verzeichnis Ihrer Wahl. Wenn Sie beispielsweise <code>\/var\/chroot <\/code>als Ihr neues Root-Verzeichnis definieren, sehen Prozesse die Dateien unter <code>\/var\/chroot <\/code>als <code>\/<\/code>. Obwohl dies sicherer ist, bedeutet es, dass alle Shared Libraries, die Ihr Prozess verwenden k\u00f6nnte, kopiert werden und sich innerhalb von <code>\/var\/chroot<\/code> befinden m\u00fcssen. Dies wiederum bedeutet, dass Sie bei jedem Anwenden von Sicherheitsupdates auch alle aktualisierten Shared Libraries neu kopieren m\u00fcssen. S<b>ie k\u00f6nnen diesen Wartungsaufwand durch Hard Links vermeiden, bieten dann aber einen Weg nach au\u00dfen, den Angreifer potenziell ausnutzen k\u00f6nnen. <\/b>Andere (Cgroup-basierte) Ans\u00e4tze, mit denen Sie \u00e4hnliche Vorteile erzielen k\u00f6nnen, werden in der Intermediate-Version dieses Leitfadens behandelt.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Zusammenfassung<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>DO: Erstellen Sie ein eingeschr\u00e4nktes Konto zur Ausf\u00fchrung Ihrer Anwendung, was bedeutet, dass keine Shell und nur eingeschr\u00e4nkter Dateisystemzugriff vorhanden sind.<\/li>\n\n\n\n<li>DO: Binden Sie Ihre Anwendung an einen hohen Port, damit Sie sie als Nutzer ohne Privilegien ausf\u00fchren k\u00f6nnen.<\/li>\n\n\n\n<li>DO: Verwenden Sie nach M\u00f6glichkeit Capabilities anstelle von Root.<\/li>\n\n\n\n<li>DON\u2019T: Verwenden Sie kein chroot, es sei denn, Sie sind bereit, den Wartungsaufwand in Kauf zu nehmen.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Sicherheit der Netzwerk-Firewall <\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">So \u00fcberpr\u00fcfen Sie Firewall-Regeln <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Strenge Firewall-Regeln erm\u00f6glichen es Ihnen zu definieren, welche eingehende und ausgehende Kommunikation f\u00fcr Ihre Server zul\u00e4ssig ist. Wenn Sie mit einer Default-Deny-Richtlinie beginnen und nur bestimmten ein- und ausgehenden Datenverkehr zulassen, zwingt Sie dies dazu, sich \u00fcber die minimalen Dienste Gedanken zu machen, die Sie freigeben m\u00f6chten, was wiederum Ihr Angriffsrisiko senken kann. <b>Ein fehlerhafter Prozess kann Ihre gesamte Infrastruktur nicht der Allgemeinheit zug\u00e4nglich machen, es sei denn, Sie erlauben dies ausdr\u00fccklich.<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dieser Abschnitt konzentriert sich auf eingehende Firewall-Regeln und TCP\/IP-Stack-Einstellungen. Obwohl ausgehende Firewall-Regeln sehr effektiv sind, um einzuschr\u00e4nken, wie weit Angreifer vordringen k\u00f6nnen, nachdem sie in Ihre Infrastruktur eingedrungen sind, wird sich die n\u00e4chste Version dieses Leitfadens auf sie konzentrieren.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Gegenma\u00dfnahmen<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Zuerst die Firewall-Regeln. Verwenden Sie beim Erstellen eines Skripts f\u00fcr Firewall-Regeln die folgenden Leitprinzipien.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>L\u00f6schen Sie vorhandene Firewall-Regeln. Bei der Entwicklung von Firewall-Regeln ben\u00f6tigen Sie eine schl\u00fcssige Vorstellung davon, was Sie blockieren und was Sie zulassen. Alle vorhandenen Regeln zu verwerfen und von vorne zu beginnen, erf\u00fcllt diesen Zweck.<\/li>\n\n\n\n<li>Setzen Sie die Standardregel f\u00fcr eingehenden Datenverkehr auf DROP. Dies folgt dem <b><i>Prinzip der geringsten Privilegien<\/i><\/b>. Nachdem Sie die Standardrichtlinie auf DROP festgelegt haben, k\u00f6nnen Sie Ihr Netzwerk nach und nach \u00f6ffnen.<\/li>\n\n\n\n<li>Gew\u00e4hren Sie freien Zugriff auf das Loopback-Interface. Im Gegensatz zu externen Schnittstellen ist die Bindung Ihres Prozesses an Localhost in der Regel gut f\u00fcr die Sicherheit. Daher richtet eine Einschr\u00e4nkung des Zugriffs auf das Loopback-Interface mehr Schaden als Nutzen an. Dadurch bleiben Sie zwar anf\u00e4llig f\u00fcr Angriffe durch lokale Nutzer, aber das ist ein Risiko, das Sie f\u00fcr sich selbst abw\u00e4gen m\u00fcssen.<\/li>\n\n\n\n<li>Beenden Sie keine etablierten Verbindungen. Sie m\u00f6chten vermeiden, dass Ihre eigene SSH-Verbindung zu einem Server getrennt wird, und sicherstellen, dass alle laufenden Anfragen abgeschlossen werden k\u00f6nnen, bevor sie beendet werden.<\/li>\n\n\n\n<li>Schr\u00e4nken Sie nicht den gesamten Internet Control Message Protocol (ICMP)-Datenverkehr ein. Die Zulassung von ICMP ist entscheidend f\u00fcr das Funktionieren des Internets. Router und Hosts nutzen es, um wichtige Informationen wie die Verf\u00fcgbarkeit von Diensten, Paketgr\u00f6\u00dfen und die Existenz von Hosts zu \u00fcbermitteln. Typ 3 und 4 (Destination Unreachable und Source Quench) sind von entscheidender Bedeutung. <b>Ihre Einschr\u00e4nkung wird in Zukunft mehr Schaden als Nutzen anrichten.<\/b> Wenn Sie Bedenken haben, dass Angreifer Ihr Netzwerk ausspionieren k\u00f6nnten, besteht ein vern\u00fcnftiger Mittelweg darin, zun\u00e4chst den gesamten ICMP-Datenverkehr durch Rate Limiting zu begrenzen und dann an Ihren Edge-Hosts eine bestimmte Untergruppe an ICMP-Datenverkehr zuzulassen, w\u00e4hrend die interne Host-to-Host-Kommunikation uneingeschr\u00e4nkt m\u00f6glich bleibt.<\/li>\n\n\n\n<li>F\u00fchren Sie grundlegende Sicherheitspr\u00fcfungen durch. Mancher eingehende Datenverkehr erf\u00fcllt keinen legitimen Zweck. Schr\u00e4nken Sie diesen Datenverkehr ein. Wenn Sie h\u00e4ufig durch eine bestimmte Art von Datenverkehr angegriffen werden, kann es hilfreich sein, diesen in eine eigene Chain umzuwandeln, falls Sie diesem Abschnitt regelm\u00e4\u00dfig neue Regeln hinzuf\u00fcgen.<\/li>\n\n\n\n<li>Sofern Sie IPv6 nicht tats\u00e4chlich nutzen und planen, Firewall-Regeln f\u00fcr den IPv6-Datenverkehr zu erstellen, <b>schr\u00e4nken Sie den gesamten eingehenden IPv6-Datenverkehr ein<\/b>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Im Folgenden finden Sie ein kommentiertes Skript, das all diese Ziele erreicht:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nachfolgend finden Sie ein kleines Skript f\u00fcr IPv6-Datenverkehr:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Regeln werden nun im Arbeitsspeicher ausgef\u00fchrt. Sie m\u00fcssen sicherstellen, dass sie beim n\u00e4chsten Neustart Ihres Betriebssystems geladen werden. F\u00fcr Debian-basierte Systeme bedeutet das, Ihre Firewall-Regeln entweder zu\u00a0<a href=\"https:\/\/wiki.debian.org\/iptables\" target=\"_tabs\" rel=\"noopener noreferrer\">\/etc\/network\/ip-pre-up.d\/<\/a>\u00a0hinzuzuf\u00fcgen oder einen pre-up-Befehl zu erg\u00e4nzen in\u00a0<a href=\"https:\/\/help.ubuntu.com\/community\/IptablesHowTo\" target=\"_tabs\" rel=\"noopener noreferrer\">\/etc\/network\/interfaces<\/a>. Bei Red Hat-Systemen geschieht dies typischerweise durch die Verwendung des\u00a0<a href=\"http:\/\/docs.fedoraproject.org\/en-US\/Fedora\/html\/Security_Guide\/sect-Security_Guide-IPTables-Saving_IPTables_Rules.html\" target=\"_tabs\" rel=\"noopener noreferrer\">\/sbin\/service iptables<\/a>\u00a0save-Befehls.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dar\u00fcber hinaus wird die folgende H\u00e4rtung\/Optimierung des TCP\/IP-Stacks empfohlen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Wenn Sie wie im vorhergehenden Beispiel zustandsbehaftete (stateful) Firewall-Regeln verwenden, sollten Sie unbedingt die maximale Anzahl der Verbindungen erh\u00f6hen, die Sie nachverfolgen k\u00f6nnen. Andernfalls k\u00f6nnen Angreifer einen Distributed Denial-of-Service (DDoS)-Angriff auf Sie ver\u00fcben.<\/li>\n\n\n\n<li>Verwenden Sie SYN-Cookies, um SYN-Flood-DoS-Angriffe zu verhindern. <a href=\"http:\/\/security.stackexchange.com\/a\/20917\" target=\"_tabs\" rel=\"noopener noreferrer\">Thomas Pornin bietet eine hervorragende Erkl\u00e4rung dazu, was SYN-Flood-Angriffe sind<\/a> und wie SYN-Cookies diese Art von Angriff abschw\u00e4chen.<\/li>\n\n\n\n<li>Protokollieren Sie alle <a href=\"https:\/\/en.wikipedia.org\/wiki\/Martian_packet\" target=\"_tabs\" rel=\"noopener noreferrer\">Martian-Pakete<\/a> , da jedes Paket, das von einer nicht routingf\u00e4higen Quell- oder Zieladresse stammt, h\u00f6chstwahrscheinlich b\u00f6sartig ist.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Sie k\u00f6nnen alle oben genannten Einstellungen mit dem folgenden Skript ausprobieren:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Damit diese Einstellungen auch nach einem Neustart erhalten bleiben, aktualisieren Sie\u00a0<code>\/etc\/sysctl.conf<\/code>:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Zusammenfassung<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>DO: Lehnen Sie Datenverkehr standardm\u00e4\u00dfig ab. Lassen Sie ausdr\u00fccklich nur den Datenverkehr zu, von dem Sie wissen, dass er Ihr Netzwerk passieren muss.<\/li>\n\n\n\n<li>DON\u2019T: Schr\u00e4nken Sie ICMP nicht einseitig ein.<\/li>\n\n\n\n<li>DO: Gew\u00e4hren Sie freien Zugang zum Loopback-Interface.<\/li>\n\n\n\n<li>DO: Erzwingen Sie einige grundlegende Sicherheitspr\u00fcfungen.<\/li>\n\n\n\n<li>DO: Stellen Sie sicher, dass Ihre Regeln beim Neustart geladen werden.<\/li>\n\n\n\n<li>DO: Optimieren Sie Ihren TCP\/IP-Stack, um die Anzahl der nachverfolgten Verbindungen zu erh\u00f6hen und sich vor SYN-Floods zu sch\u00fctzen.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Remote-Anmeldung<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Beschreibung<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Bei der Remote-Anmeldung sollten Sie nicht nur sicherstellen, dass die Kommunikation mit Ihren Servern verschl\u00fcsselt ist, sondern auch, dass nur autorisierte Nutzer Zugriff auf Ihre Server haben. Im Folgenden sind typische Ziele f\u00fcr die Absicherung der Remote-Anmeldung aufgef\u00fchrt:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Gew\u00e4hren Sie <b>Nutzern nur eingeschr\u00e4nkten Zugriff<\/b>, damit die Kompromittierung eines einzigen Nutzerkontos nicht Ihre gesamte Infrastruktur gef\u00e4hrdet.<\/li>\n\n\n\n<li>Eine starke Kryptografie stellt sicher, dass Lauscher Ihre Kommunikation nicht mitlesen k\u00f6nnen.<\/li>\n\n\n\n<li>Angreifer k\u00f6nnen keine Brute-Force-Techniken verwenden, um sich an Ihren Servern anzumelden.<\/li>\n\n\n\n<li>Selbst wenn Ihr Schl\u00fcssel kompromittiert ist, k\u00f6nnen Angreifer keinen Zugriff auf Ihre Infrastruktur erlangen.<\/li>\n\n\n\n<li>Angreifer, die Brute-Force-Techniken einsetzen, <b>k\u00f6nnen die Serverressourcen nicht ersch\u00f6pfen<\/b>.<\/li>\n\n\n\n<li>Nur autorisierte Nutzer haben Zugriff auf Ihre Server.<\/li>\n\n\n\n<li>Es gibt keine Anmeldung f\u00fcr allgemeine Administratorenkonten. Alle administrativen Aktionen werden \u00fcber eine Form der Eskalation von Privilegien (<code>sudo<\/code>) durchgef\u00fchrt, um die ausgef\u00fchrten Aktionen zu protokollieren.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Das Verfehlen auch nur eines dieser Ziele kann ein Sicherheitsrisiko darstellen. Eine schwache (oder fehlende) Kryptografie kann es Angreifern erm\u00f6glichen, Ihre Kommunikation einzusehen. Eine schwache Authentifizierung kann unautorisierten Nutzern den Zugriff auf Ihre Systeme erm\u00f6glichen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gl\u00fccklicherweise mindert Secure Shell (SSH) die meisten dieser Risiken. Mit ein paar kleinen Anpassungen an Ihren Systemen lassen sie sich sogar vollst\u00e4ndig beseitigen.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Gegenma\u00dfnahmen<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Generieren Sie zun\u00e4chst Ihren SSH-Schl\u00fcssel korrekt. Achten Sie dabei auf eine ausreichend gro\u00dfe Schl\u00fcssell\u00e4nge und darauf, dass Ihr Schl\u00fcssel durch eine Passphrase gesch\u00fctzt ist. Sie k\u00f6nnen dies mit\u00a0<code>ssh-keygen<\/code> erledigen:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>ssh-keygen -t rsa -b 4096 -C foo@example.com  <\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn Sie dazu aufgefordert werden, geben Sie eine Passphrase ein. Eine Passphrase stellt sicher, dass jemand, der Ihren Schl\u00fcssel stiehlt, diesen nicht verwenden kann, ohne auch Ihre Passphrase zu kennen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">OpenSSH verf\u00fcgt \u00fcber eine vern\u00fcnftige Standardkonfiguration, die recht sicher ist. Einige Distributionen weichen diese Standards jedoch m\u00f6glicherweise auf, um die Interoperabilit\u00e4t von OpenSSH mit \u00e4lteren Servern zu gew\u00e4hrleisten. Die folgende Konfiguration stellt lediglich sicher, dass diese\u00a0<b>vern\u00fcnftigen Standardwerte von Ihrer OpenSSH-Version angewendet werden<\/b>. Weitere Informationen zur OpenSSH-Konfiguration finden Sie im\u00a0<a href=\"https:\/\/wiki.mozilla.org\/Security\/Guidelines\/OpenSSH\" target=\"_tabs\" rel=\"noopener noreferrer\">Mozilla-Konfigurationsleitfaden f\u00fcr OpenSSH<\/a>\u00a0und auf der Seite\u00a0<a href=\"http:\/\/wiki.centos.org\/HowTos\/Network\/SecuringSSH\" target=\"_tabs\" rel=\"noopener noreferrer\">Securing SSH<\/a>\u00a0f\u00fcr CentOS. Beides sind exzellente Ressourcen und wir werden in zuk\u00fcnftigen Versionen dieses Leitfadens auf diesen Konfigurationen aufbauen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Stellen Sie auf dem Server sicher, dass die Datei\u00a0<code>\/etc\/ssh\/sshd_config<\/code>\u00a0die folgenden Zeilen enth\u00e4lt:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Konfiguration erreicht die folgenden Ziele:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Protocol 2 stellt sicher, dass Sie eine sichere Version des SSH-Protokolls verwenden. <a href=\"http:\/\/www.snailbook.com\/faq\/ssh-1-vs-2.auto.html\" target=\"_tabs\" rel=\"noopener noreferrer\">Version 1 des Protokolls weist eine Reihe von Problemen auf und gilt als unsicher<\/a>.<\/li>\n\n\n\n<li><code>PasswordAuthentication no <\/code>und <code>PubkeyAuthentication yes <\/code>zwingen Sie dazu, Public-Key-Kryptografie anstelle von Passw\u00f6rtern zu verwenden, um sich an Ihren Servern zu authentifizieren. Obwohl Sie ein sicheres Passwort haben k\u00f6nnen, wenn es sich um ein zuf\u00e4llig generiertes 2048-Bit-Passwort in ASCII-Codierung handelt, <a href=\"https:\/\/www.yahoo.com\/tech\/here-are-500-passwords-you-probably-shouldnt-be-using-96467697789.html\" target=\"_tabs\" rel=\"noopener noreferrer\">sind die meisten Passw\u00f6rter unsicher<\/a> und <b>h\u00e4ufig verwendete Passwortl\u00e4ngen haben einen viel kleineren Suchraum als ein gro\u00dfer Schl\u00fcssel<\/b>.<\/li>\n\n\n\n<li><code>PermitRootLogin no <\/code>deaktiviert die M\u00f6glichkeit der Remote-Anmeldung als Root-Nutzer. Obwohl es sich hierbei nicht um eine direkt ausnutzbare Schwachstelle handelt, hilft Ihnen das Deaktivieren dieser Remote-Anmeldung, saubere Audit-Protokolle zu f\u00fchren, um nachvollziehen zu k\u00f6nnen, was auf Ihren Servern passiert. Das Root-Konto fungiert als gemeinsam genutztes Administratorenkonto, was Ihre M\u00f6glichkeiten einschr\u00e4nkt, zu \u00fcberpr\u00fcfen, welcher Nutzer welche privilegierte Aktion ausf\u00fchrt. Wenn Sie alle Nutzer dazu zwingen, ihre eigenen Konten zu verwenden, <b>erhalten Sie eine \u00fcberpr\u00fcfbare Aufzeichnung dar\u00fcber, welcher Nutzer welche Aktion ausgef\u00fchrt hat<\/b>. Details zur Einrichtung der Audit-Protokollierung finden Sie in einem sp\u00e4teren Abschnitt.<\/li>\n\n\n\n<li><code>LogLevel VERBOSE <\/code>protokolliert den Nutzer und den Fingerprint des Schl\u00fcssels, mit dem ein Authentifizierungsversuch unternommen wurde. Auch hier wehrt diese Einstellung einen Exploit nicht direkt ab, ist aber f\u00fcr Auditing-Zwecke sinnvoll.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Stellen Sie auf Client-Seite sicher, dass Ihre Datei\u00a0<code>\/etc\/ssh\/ssh_config<\/code>\u00a0die folgenden Zeilen enth\u00e4lt:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Konfiguration erreicht die folgenden Ziele:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Protocol 2 stellt sicher, dass Sie eine sichere Version des SSH-Protokolls verwenden. <a href=\"http:\/\/www.snailbook.com\/faq\/ssh-1-vs-2.auto.html\" target=\"_tabs\" rel=\"noopener noreferrer\">Version 1 des Protokolls weist eine Reihe von Problemen auf und gilt als unsicher<\/a>.<\/li>\n\n\n\n<li><code>HashKnownHosts yes <\/code>hasht Hostnamen und Adressen in Ihrer Datei <code>~\/.ssh\/known_hosts <\/code>. Selbst wenn Angreifer Ihre Known Hosts-Datei stehlen, k\u00f6nnen sie nicht einfach die Hosts auflisten, mit denen Sie sich \u00fcber Ihren Schl\u00fcssel verbinden.<\/li>\n\n\n\n<li><code>StrictHostKeyChecking ask <\/code>gleicht den Ihnen pr\u00e4sentierten Schl\u00fcssel mit dem in Ihrer Datei <code>~\/.ssh\/known_hosts <\/code>ab und fragt Sie, falls er sich ge\u00e4ndert hat (oder Sie diesen Host zum ersten Mal besuchen), ob Sie diesen Schl\u00fcssel akzeptieren m\u00f6chten. <b>Dies hilft dabei, Man-in-the-Middle-Angriffe abzuschw\u00e4chen.<\/b><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Gew\u00e4hren Sie Nutzern zu guter Letzt nur eingeschr\u00e4nkten Zugriff auf Ihre Infrastruktur. Beispielsweise ben\u00f6tigen nicht alle Nutzer Zugang zu Ihren Backup-Servern. Gew\u00e4hren Sie nur den Nutzern Zugang, die tats\u00e4chlich wissen, wie Backups wiederhergestellt werden. Dadurch wird sichergestellt, dass die Integrit\u00e4t Ihrer Backups selbst bei der Kompromittierung eines Nutzerkontos ohne Backup-Befugnisse nicht gef\u00e4hrdet ist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Um dies zu erreichen, gibt es zwei g\u00e4ngige Ans\u00e4tze:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Lokale Nutzerkonten. Bei diesem Ansatz erstellen Sie lokale Unix-Konten f\u00fcr Ihre Nutzer und richten diese Konten nur auf den Servern ein, auf die sie zugreifen m\u00fcssen. Hierzu k\u00f6nnen Sie die Befehle <code>newusers <\/code>und <code>userdel <\/code>verwenden und dies mithilfe von Konfigurationsmanagement-Tools automatisieren\/orchestrieren, wie etwa <a href=\"https:\/\/www.chef.io\" target=\"_tabs\" rel=\"noopener noreferrer\">Chef<\/a> oder <a href=\"http:\/\/www.ansible.com\" target=\"_tabs\" rel=\"noopener noreferrer\">Ansible<\/a>.<\/li>\n\n\n\n<li>Zentraler Authentifizierungsdienst wie <a href=\"https:\/\/en.wikipedia.org\/wiki\/Lightweight_Directory_Access_Protocol\" target=\"_tabs\" rel=\"noopener noreferrer\">LDAP<\/a>. Bei diesem Ansatz werden die Server, auf die die jeweiligen Nutzer Zugriff haben, in der Konfiguration des LDAP-Servers definiert und gespeichert.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Zusammenfassung<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>DO: Sch\u00fctzen Sie Ihren Schl\u00fcssel durch eine Passphrase.<\/li>\n\n\n\n<li>DON\u2019T: Verlassen Sie sich nicht darauf, dass Ihre Distribution \u00fcber akzeptable Standardwerte verf\u00fcgt. Definieren Sie stattdessen strikt, was f\u00fcr Ihre Infrastruktur wichtig ist.<\/li>\n\n\n\n<li>DO: Verwenden Sie zur Authentifizierung asymmetrische Verschl\u00fcsselung (Public Key) anstelle einer passwortbasierten Authentifizierung.<\/li>\n\n\n\n<li>DON\u2019T: Gew\u00e4hren Sie nicht allen Nutzern uneingeschr\u00e4nkten Zugriff, sondern beschr\u00e4nken Sie den Zugriff auf die ben\u00f6tigten Teile Ihrer Infrastruktur.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Trust Boundaries<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Beschreibung<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Trust Boundaries (Vertrauensgrenzen) sind ein h\u00e4ufiger Ort f\u00fcr das Auftreten von Sicherheitsl\u00fccken. Die Grenze zwischen der Au\u00dfenwelt und Ihrer internen Infrastruktur ist unverletzlich, und Sie sollten alles tun, um sie zu verteidigen und sicherzustellen, dass sie nur von autorisierten Nutzern \u00fcberschritten werden kann.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Sie sollten sich um zwei prim\u00e4re Vertrauensgrenzen Gedanken machen.<\/b> Die erste ist die Grenze zwischen dem \u00f6ffentlichen Internet und Ihrem API-Endpunkt. Dies ist die Grenze, die Ihre Kunden jeden Tag \u00fcberqueren, wenn sie Ihren Dienst nutzen. Die zweite ist ein Zugangspunkt f\u00fcr Ihr Entwicklungs- und Systemadministrations-Team, der f\u00fcr die Bereitstellung und Wartung Ihrer Anwendung genutzt wird.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei der API-Vertrauensgrenze, die Ihre Kunden \u00fcberschreiten, sollten Sie alle Eingaben von Nutzern als potenziell feindlich betrachten und davon ausgehen, dass jede gestellte Anfrage eigentlich ein Versuch ist, Ihre Infrastruktur zu kompromittieren. Wenn Sie Anfragen von Nutzern auf diese Weise betrachten, wird deutlich, dass Sie die Angriffsfl\u00e4che minimieren m\u00fcssen, die Sie Ihren Nutzern bieten, und den Schaden isolieren m\u00fcssen, der entstehen kann, falls ein Nutzer Ihren Dienst doch einmal kompromittiert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Was die Vertrauensgrenze betrifft, die Sie zur Wartung Ihrer Anwendungen \u00fcberschreiten, sollten Sie alle Ihre Dienste so isolieren, dass sie nicht dem \u00f6ffentlichen Internet ausgesetzt sind. Zwingen Sie dann Nutzer, die aus dem Internet darauf zugreifen, einen gut bewachten Zugangspunkt zu passieren, den Sie verteidigen k\u00f6nnen (nennen wir diesen Bastion Host). Sie k\u00f6nnen alle Ihre Ressourcen auf diesen einen Zugangspunkt konzentrieren und sich weniger darum k\u00fcmmern, wie Ihre Dienste miteinander kommunizieren, solange sie sich innerhalb dieser Vertrauensgrenze befinden.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Gegenma\u00dfnahmen<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Um diese Probleme mit den Vertrauensgrenzen abzuschw\u00e4chen, m\u00fcssen Sie sich die verschiedenen Boxen vorstellen, in die Sie das \u00f6ffentliche Internet und Ihre Infrastruktur einteilen k\u00f6nnen (siehe folgendes Diagramm). Sobald Sie das getan haben, k\u00f6nnen Sie dar\u00fcber nachdenken, wie Sie Ihre Infrastruktur sch\u00fctzen k\u00f6nnen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die erste gro\u00dfe Box ist das \u00f6ffentliche Internet. Im \u00f6ffentlichen Internet sollten Sie niemals irgendjemandem oder irgendetwas vertrauen. Tats\u00e4chlich sollten Sie alle Akteure im \u00f6ffentlichen Internet als potenziell feindlich betrachten, selbst wenn es Ihre eigenen Angestellten sind, die sich per SSH auf Ihren Servern einloggen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die zweite gro\u00dfe Box ist Ihre interne Infrastruktur. Dabei handelt es sich um Ihre vertrauensw\u00fcrdigen Hosts. Dienste, die auf diesen Servern laufen, sollten nach M\u00f6glichkeit nur auf privaten Netzwerkschnittstellen lauschen und nicht direkt dem \u00f6ffentlichen Internet ausgesetzt sein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Die zwei Boxen, die sich \u00fcber beide erstrecken, sind Ihr Jump Host und Ihre API-Hosts. <\/b>Diese Hosts sollten sowohl auf das \u00f6ffentliche Internet als auch auf Ihre interne Infrastruktur zugreifen k\u00f6nnen. Da sie direkt dem \u00f6ffentlichen Internet ausgesetzt sind, sollten sie geh\u00e4rtet werden und nur das absolute Minimum an Diensten ausf\u00fchren, die zur Erf\u00fcllung ihrer Aufgaben erforderlich sind.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">St\u00e4rkung des API-Endpunkts<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Obwohl wir nicht erwarten k\u00f6nnen, dass ein Dienst v\u00f6llig fehlerfrei ist, k\u00f6nnen wir einschr\u00e4nken, in welchem Ausma\u00df Angreifer Ihre Infrastruktur kompromittieren k\u00f6nnen, falls sie Ihren Dienst ausnutzen. Daher empfehlen wir, Dienste, die eingehende Anfragen entgegennehmen, zu isolieren und auf eigenen dedizierten Servern auszuf\u00fchren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dies erreichen Sie, indem Sie <b>eingehende Anfragen in zwei Teile aufteilen<\/b>: das Load Balancing und die Transport Layer Security (TLS)-Terminierung eingehender Anfragen sowie die eigentliche Verarbeitung der Anfrage durch Ihren Dienst. Beide sollten zumindest eigene Prozesse sein, wenn sie nicht gar auf verschiedenen Servern laufen, wobei das Load Balancing und die TLS-Terminierung an der Grenze zwischen nicht vertrauensw\u00fcrdigen und vertrauensw\u00fcrdigen Netzwerken erfolgen. Dieser Abschnitt konzentriert sich auf das Load Balancing und die Terminierung (die Anwendungsh\u00e4rtung wurde bereits in einem vorherigen Abschnitt behandelt).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn Sie Load Balancing und TLS-Terminierung von Ihrer Anwendung trennen, verringern Sie die Wahrscheinlichkeit, dass ein Fehler in Ihrem Load Balancer oder Ihrer TLS-Software zur Kompromittierung der gesamten Anwendung f\u00fchrt, in deren Arbeitsspeicher in der Regel sensible Daten geladen sind. Dies bietet Ihnen auch einen Single Point of Maintenance (und Failure) f\u00fcr das Einspielen von Patches, falls eine Schwachstelle gefunden wird und Sie ein Upgrade Ihrer TLS-Bibliothek vornehmen m\u00fcssen, was immer h\u00e4ufiger erforderlich wird.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nehmen wir beispielsweise an, Angreifer finden in Ihrem HTTP-Server oder Ihrer TLS-Software einen Remote Code Execution (RCE)-Fehler wie GHOST oder einen Fehler zum Auslesen beliebiger Speicherbereiche (wie Heartbleed). Wenn sich Ihr HTTP-Server, die TLS-Terminierung und die Anwendungslogik im selben Prozess befinden, erm\u00f6glicht ein Fehler in einem dieser Bereiche den Angreifern den Zugriff auf sensible Informationen in den anderen Komponenten. Ein Fehler in OpenSSL kann Angreifern beispielsweise Zugang zu sensiblen Schl\u00fcsseln verschaffen, die Ihre Anwendung in den Arbeitsspeicher geladen hat. Umgekehrt kann ein Fehler in Ihrer Anwendung Angreifern m\u00f6glicherweise Zugang zu Ihren SSL-Zertifikaten gew\u00e4hren. <b>Wenn Sie diese Komponenten jedoch voneinander trennen, bleibt der jeweils andere Bereich bei der Kompromittierung eines Teils unber\u00fchrt und Sie verlieren nur\u00a0<\/b><b><i>einen Teil<\/i><\/b><b>\u00a0Ihrer sensiblen Daten.<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">G\u00e4ngige Optionen f\u00fcr das Load Balancing sind NGINX,\u00a0<a href=\"http:\/\/www.haproxy.org\/\" target=\"_tabs\" rel=\"noopener noreferrer\">HAProxy<\/a>\u00a0und\u00a0<a href=\"http:\/\/httpd.apache.org\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Apache<\/a>. Die TLS-Terminierung erfolgt \u00fcblicherweise mit\u00a0<a href=\"https:\/\/www.openssl.org\/\" target=\"_tabs\" rel=\"noopener noreferrer\">OpenSSL<\/a>; es gibt jedoch Alternativen wie\u00a0<a href=\"http:\/\/www.libressl.org\/\" target=\"_tabs\" rel=\"noopener noreferrer\">LibreSSL<\/a>\u00a0\u00a0genannt, und\u00a0<a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Projects\/NSS\" target=\"_tabs\" rel=\"noopener noreferrer\">Mozilla NSS<\/a>\u00a0. Eine weitere Alternative ist die Verwendung von Tools wie\u00a0<a href=\"https:\/\/github.com\/mailgun\/vulcand\" target=\"_tabs\" rel=\"noopener noreferrer\">vulcand<\/a>, das als Load Balancer fungiert und die Go TLS-Bibliothek f\u00fcr die TLS-Terminierung verwendet.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">St\u00e4rkung des Dienst-Endpunkts (und aller weiteren Aspekte)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Sie k\u00f6nnen Ihren Dienst-Endpunkt st\u00e4rken, indem Sie den Zugriff auf Ihre Server aus dem \u00f6ffentlichen Internet einschr\u00e4nken und erzwingen, dass die gesamte Authentifizierung \u00fcber einen\u00a0<i>Jump Host<\/i> abl\u00e4uft. Diese Einschr\u00e4nkung wird \u00fcblicherweise dadurch erreicht, dass Sie Ihre Infrastruktur nicht direkt dem \u00f6ffentlichen Internet aussetzen, sondern stattdessen ein internes Netzwerk aufbauen, auf das nur \u00fcber den Bastion Host zugegriffen werden kann.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es gibt viele M\u00f6glichkeiten zum Aufbau eines internen Netzwerks, und Ihr Ansatz wird gr\u00f6\u00dftenteils davon abh\u00e4ngen, <b>wie Ihre Infrastruktur durch Ihren Anbieter konfiguriert ist<\/b> sowie von Ihren pers\u00f6nlichen Einstellungen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nehmen wir beispielsweise an, Sie hosten Ihre Server bei Amazon Web Services (AWS). Dann k\u00f6nnen Sie mit einer\u00a0<a href=\"http:\/\/aws.amazon.com\/vpc\" target=\"_tabs\" rel=\"noopener noreferrer\">Virtual Private Cloud<\/a>\u00a0(VPC) mit einem einzelnen \u00f6ffentlichen Subnetz beginnen. Ihre Server sind so von anderen Servern auf AWS isoliert und befinden sich in ihrem eigenen\u00a0<code>10.0.0.0\/16<\/code>\u00a0CIDR-Block. Sie haben jedoch weiterhin uneingeschr\u00e4nkten Zugang zum Internet. Um den Zugriff aus dem Internet einzuschr\u00e4nken, erstellen Sie \u00a0<a href=\"http:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/UserGuide\/using-network-security.html\" target=\"_tabs\" rel=\"noopener noreferrer\">Security Groups<\/a>, die sowohl die offenen Ports als auch die Server isolieren, die auf diese Ports zugreifen k\u00f6nnen. Beispielsweise w\u00fcrden Sie Ihre Worker Hosts so konfigurieren, dass sie Verbindungen auf den Ports 22 und 80 akzeptieren \u2013 jedoch nur von Ihrem Jump Host bzw. Ihrem Load Balancer. Ihr Jump Server hingegen w\u00fcrde Verbindungen auf Port 22 von jedem beliebigen Server im \u00f6ffentlichen Internet akzeptieren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn Ihr Anbieter diese Tools nicht bereitstellt, k\u00f6nnen Sie dasselbe Ergebnis erzielen, solange dieser eine Art privates Netzwerk (entweder gemeinsam genutzt oder dediziert) anbietet, mit dem Sie \u00f6ffentlichen und privaten Datenverkehr isolieren k\u00f6nnen. Diese Funktion wird in der Regel von den meisten Anbietern angeboten: Wie bereits erw\u00e4hnt, nennt Amazon sie VPC, bei Rackspace hei\u00dft sie\u00a0<a href=\"http:\/\/www.rackspace.com\/knowledge_center\/frequently-asked-question\/what-is-servicenet\" target=\"_tabs\" rel=\"noopener noreferrer\">ServiceNet<\/a> und bei Digital Ocean lautet der Name\u00a0<a href=\"https:\/\/www.digitalocean.com\/blog\/introducing-private-networking\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Private Networking<\/a>. Alle bieten im Grunde dieselbe M\u00f6glichkeit: <b>Wenn Sie Ihren virtuellen Server erstellen, k\u00f6nnen Sie ihn an die \u00f6ffentliche Schnittstelle, die private Schnittstelle oder an beide binden<\/b>. Wenn Ihr Anbieter bei der Erstellung nicht \u00fcber diese M\u00f6glichkeit verf\u00fcgt, k\u00f6nnen Sie diese Schnittstellen selbst aktivieren und deaktivieren: in der Datei\u00a0<code>\/etc\/network\/interfaces<\/code>\u00a0auf einem Debian-basierten System und in der Datei\u00a0<code>\/etc\/sysconfig\/network-scripts\/ifcfg*<\/code>\u00a0auf einem Red Hat-basierten System.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sobald Sie \u00fcber Server mit \u00f6ffentlichen und privaten Schnittstellen verf\u00fcgen, verwenden Sie\u00a0<code>iptables<\/code>, um eingehenden Datenverkehr auf \u00f6ffentlich zug\u00e4nglichen Schnittstellen auf die Server zu beschr\u00e4nken, die entweder als Jump Hosts fungieren oder die \u00f6ffentlich zug\u00e4ngliche API ausf\u00fchren. Auf Servern, die s\u00e4mtliche interne Dienste wie Ihre Anwendung und Ihren Datenbankserver verarbeiten, wird jeglicher eingehende Datenverkehr auf \u00f6ffentlichen Schnittstellen blockiert. Der eingehende Datenverkehr auf privaten Schnittstellen wird auf die vertrauensw\u00fcrdige Gruppe von Servern beschr\u00e4nkt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sobald Sie dies umgesetzt haben, besteht die einzige M\u00f6glichkeit f\u00fcr Angreifer, Ihre Infrastruktur vom \u00f6ffentlichen Internet aus zu kompromittieren, darin, \u00fcber Ihren geh\u00e4rteten Bastion Host einzudringen oder Ihre API auf irgendeine Weise auszunutzen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Verwenden Sie schlie\u00dflich f\u00fcr den Zugriff auf diese Server nicht\u00a0<code>ssh-agent<\/code>, sondern greifen Sie auf\u00a0<code>ProxyCommand<\/code> zur\u00fcck. Obwohl\u00a0<code>ssh-agent<\/code>\u00a0seine Daseinsberechtigung hat, ist dieses Tool f\u00fcr diesen speziellen Anwendungsfall nicht gut geeignet. Falls Sie dies nutzen, k\u00f6nnte jede Person, die \u00fcber einen Exploit f\u00fcr eine lokale Privilegien-Eskalation f\u00fcr Ihren Bastion-Server verf\u00fcgt, auf jeden Server Ihrer Infrastruktur zugreifen. Dazu wird die Identit\u00e4t der Personen angenommen, deren Schl\u00fcssel derzeit durch\u00a0<code>ssh-agent<\/code>\u00a0in den Arbeitsspeicher geladen sind. Im Gegensatz dazu bleiben Ihre Schl\u00fcssel bei\u00a0<code>ProxyCommand<\/code>\u00a0nicht im Arbeitsspeicher, wo sie gestohlen werden k\u00f6nnten. Ihr privater Schl\u00fcssel verbleibt ausschlie\u00dflich auf Ihrer lokalen Workstation; <b>nur Ihr \u00f6ffentlicher Schl\u00fcssel wird auf jeden Server kopiert, auf den Sie zugreifen m\u00fcssen.<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Um\u00a0<code>ProxyCommand<\/code>\u00a0zu nutzen, kopieren Sie Ihren \u00f6ffentlichen Schl\u00fcssel in\u00a0<code>~\/.ssh\/authorized_hosts<\/code>\u00a0auf allen Servern, auf die Sie zugreifen m\u00fcssen. Aktualisieren Sie dann auf Ihrer Workstation Ihre\u00a0<code>~\/.ssh\/config<\/code>-Datei mit den folgenden Informationen:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Konfiguration erm\u00f6glicht es Ihnen, von\u00a0<code>workstation.example.com<\/code>\u00a0via SSH auf die privaten Schnittstellen von\u00a0<code>server1.example.com<\/code>\u00a0und\u00a0<code>server2.example.com<\/code>\u00a0zuzugreifen, indem Sie \u00fcber jump.example.com \u201espringen&#8220;, da dieser Server sowohl auf \u00f6ffentliche als auch auf private Schnittstellen Zugriff hat. Um eine Verbindung herzustellen, m\u00fcssen Sie lediglich\u00a0<code>ssh server1.example.com<\/code>\u00a0oder\u00a0<code>ssh server2.example.com<\/code>\u00a0eingeben.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Zusammenfassung<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>DO: Verwenden Sie einen Load Balancer, um Ihren HTTP-Anwendungsserver von Ihrem \u00f6ffentlich zug\u00e4nglichen HTTP-Server zu trennen.<\/li>\n\n\n\n<li>DO: Terminieren Sie TLS am Load Balancer.<\/li>\n\n\n\n<li>DO: Verwenden Sie einen geh\u00e4rteten Jump-Host, um den Zugriff auf Ihre Infrastruktur zu kontrollieren.<\/li>\n\n\n\n<li>DON\u2019T: Verwenden Sie nach M\u00f6glichkeit keinen SSH-Agenten. Dadurch sind alle Ihre Schl\u00fcssel m\u00f6glicherweise gef\u00e4hrdet, falls jemand \u00fcber einen Exploit f\u00fcr eine lokale Privilegien-Eskalation verf\u00fcgt.<\/li>\n\n\n\n<li>DO: Nutzen Sie die \u00f6ffentlichen und privaten Schnittstellen, die Ihr Dienstanbieter bereitstellt, um Ihre internen Dienste vom \u00f6ffentlichen Internet zu isolieren.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Monitoring und Protokollierung<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Beschreibung<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Jede Sicherheitsma\u00dfnahme kann und wird irgendwann umgangen werden. Da keine praxistauglichen Sicherheitsma\u00dfnahmen absolute Garantien bieten k\u00f6nnen, sind starke Monitoring- und Protokollierungsfunktionen wichtig. Diese helfen Ihnen zu verstehen, wo und wie Ihre Systeme kompromittiert wurden. Je besser Sie verstehen, wie und was auf Ihren Systemen l\u00e4uft, desto besser k\u00f6nnen Sie anomales Verhalten erkennen. So wie eine Bank \u00dcberwachungskameras installiert, obwohl sie ihre Tresore sichert, sind gute Monitoring-Tools entscheidend, um raffinierte Hacker aufzusp\u00fcren, die Ihre Sicherheitsma\u00dfnahmen \u00fcberwunden haben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Monitoring und Protokollierung nehmen zwei Formen an<\/b>. Die erste ist das Live-Monitoring, mit dem Sie jederzeit sehen k\u00f6nnen, was in Ihrem System passiert. Dies umfasst alles von offenen Netzwerk-Sockets bis hin zu aktuell ausgef\u00fchrten Prozessen. Die zweite Form sind die Protokolldaten bereits durchgef\u00fchrter Aktionen. Dies deckt alles ab\u00a0\u2013 von der Protokollierung der Anwendungslogik bis hin zu Systemprotokollen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In diesem Abschnitt sehen wir uns Systemprotokolle direkt auf den einzelnen Servern an. In der fortgeschrittenen Version dieses Leitfadens sprechen wir \u00fcber die Protokollaggregation und Alarmierung.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Gegenma\u00dfnahmen<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Die folgenden Tools sind in den meisten UNIX-basierten Betriebssystemen enthalten. Sie sind n\u00fctzlich, wenn Sie einen Sicherheitsvorfall vermuten. Es ist jedoch auch im Vorfeld von entscheidender Bedeutung, sie zu nutzen, um ihre normale Ausgabe zu verstehen.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Live-Monitoring<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Im Folgenden finden Sie einige Befehle und ihre erwartete Ausgabe unter normalen Betriebsbedingungen. Diese Beispiele veranschaulichen, wie die Ausgabe auf I<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>who<\/code>\u00a0\u2013 Zeigt Ihnen an, wer im Moment angemeldet ist. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>last -a\u00a0<\/code>\u2013 Zeigt Ihnen eine Liste der letzten angemeldeten Nutzer. Gibt den Nutzernamen, die Anmeldezeit sowie die IP-Adressen aus, von denen aus die Anmeldung erfolgte.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>netstat -plntu<\/code>\u00a0\u2013 Zeigt Prozessnamen und die Ports an, an denen sie auf Verbindungen warten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>netstat -ap<\/code>\u00a0\u2013 Zeigt einen Live-Stream aller Verbindungen einschlie\u00dflich hergestellter ausgehender Verbindungen an.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>find \/ -mtime -1 -ls | head -n 20<\/code>\u00a0\u2013 Listet die Top 20 Dateien auf, die innerhalb der letzten 24 Stunden ge\u00e4ndert wurden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>faillog -a<\/code>,\u00a0um eine Zusammenfassung fehlgeschlagener Anmeldungen zu sehen. Dies ist auch n\u00fctzlich, um die maximale Anzahl fehlgeschlagener Anmeldungen zu begrenzen, die ein Nutzer haben darf.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>tcpdump -i eth1 -s 0 -A tcp port http <\/code>\u00a0\u2013 Gibt den gesamten HTTP-Traffic auf der Schnittstelle <code>eth1<\/code> aus. Dies ist n\u00fctzlich, falls Sie mit <code>netstat <\/code>etwas Verd\u00e4chtiges gefunden haben und der Sache auf den Grund gehen m\u00f6chten. Dieser Leitfaden kann Ihnen nicht alle Details von <code>tcpdump<\/code> vermitteln, <b>aber es gibt eine <\/b><a href=\"http:\/\/bencane.com\/2014\/10\/13\/quick-and-practical-reference-for-tcpdump\" target=\"_tabs\" rel=\"noopener noreferrer\"><b>Vielzahl von Ressourcen<\/b><\/a><b> im Internet, die Ihnen helfen, <\/b><b><code>tcpdump<\/code> zu verstehen<\/b>.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Protokoll-Monitoring<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Im Folgenden finden Sie einige allgemeine Regeln f\u00fcr den Umgang mit der Anwendungsprotokollierung sowie Hinweise auf wichtige Systemprotokolle.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Allgemeine Anwendungsprotokolle<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fchren Sie Ihre Anwendungsprotokolle an einem zentralen Ort zusammen, sei es in einer einzelnen Protokolldatei oder einem Verzeichnis. Der \u00fcbliche Ansatz hierf\u00fcr ist die Verwendung von\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Syslog\" target=\"_tabs\" rel=\"noopener noreferrer\"><i>syslog<\/i><\/a>\u00a0f\u00fcr diese Funktion. Die Verwendung von syslog erleichtert k\u00fcnftig die \u00dcbermittlung der Protokolle an einen zentralen Protokollierungsserver.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Bewahren Sie Ihre Protokolle so lange auf, wie es der Speicherplatz zul\u00e4sst<\/b>. Die Aufbewahrung von Protokollen f\u00fcr bis zu 90 Tage auf der Festplatte ist durchaus sinnvoll, falls Sie \u00fcber den entsprechenden Speicherplatz verf\u00fcgen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Systemprotokolle<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Wie beim Live-Monitoring ist es eine gute Idee, die folgenden Systemprotokolldateien regelm\u00e4\u00dfig zu \u00fcberpr\u00fcfen, um einen soliden Ausgangswert der erwarteten Ausgabe zu entwickeln. Mit einem solchen Ausgangswert ist es in Zukunft viel einfacher, verd\u00e4chtiges Verhalten zu erkennen. Nachfolgend finden Sie eine unvollst\u00e4ndige Liste interessanter Systemprotokolle, die Sie beobachten sollten:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>\/var\/log\/auth.log <\/code>\u00a0\u2013 Protokolle der Systemauthentifizierung.<\/li>\n\n\n\n<li><code>\/var\/log\/syslog <\/code>\u00a0\u2013 Falls Sie keine Protokolle an eine bestimmte syslog-Einrichtung senden, werden sie hier gespeichert.<\/li>\n\n\n\n<li><code>\/var\/log\/messages <\/code>\u2013 Allgemeine Systemprotokollnachrichten.<\/li>\n\n\n\n<li><code>~\/.bash_history <\/code>\u2013 Liste der Bash-Befehle, die vom Nutzer ausgef\u00fchrt wurden. Dieses Protokoll kann von raffinierten Angreifern leicht manipuliert oder gel\u00f6scht werden.<\/li>\n\n\n\n<li><code>\/var\/log\/utmp <\/code>und <code>\/var\/log\/wtmp <\/code>\u2013 Diese Protokolle enthalten die aktuell angemeldeten Nutzer sowie den Verlauf aller angemeldeten Nutzer. Verwenden Sie <code>last -f  <\/code>, um diese Dateien anzuzeigen.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Zusammenfassung<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Eignen Sie sich einige grundlegende Befehle an, die Ihnen dabei helfen, herauszufinden, was aktuell auf Ihren Servern passiert. Zu diesen Befehlen geh\u00f6ren <code>who<\/code>, <code>last<\/code>, <code>lsof<\/code>, <code>netstat<\/code>, <code>faillog<\/code> und <code>find<\/code>.<\/li>\n\n\n\n<li>Finden Sie heraus, was Sie protokollieren m\u00fcssen. Protokolle sind nutzlos, falls sie keine sicherheitskritischen Ereignisse erfassen. \u00dcberwachen Sie mindestens die folgenden Dateien: <code>\/var\/log\/auth.log<\/code>, <code>\/var\/log\/syslog<\/code> und <code>\/var\/log\/messages<\/code>.<\/li>\n\n\n\n<li>Beginnen Sie so fr\u00fch wie m\u00f6glich mit der Zentralisierung Ihrer Protokolle. Die Verwendung von syslog anstelle eines benutzerdefinierten Protokollierungs-Frameworks erleichtert in Zukunft die \u00dcbermittlung der Protokolle an einen zentralen Protokollierungsserver.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Kryptografie nutzen<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Beschreibung<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Kryptografie ist ein komplexes Thema, das gesondert behandelt werden sollte. Schon kleine Versehen oder Fehler k\u00f6nnen zur vollst\u00e4ndigen Gef\u00e4hrdung der Sicherheit eines Produkts f\u00fchren. Deshalb wird das Mantra \u201eEntwickeln Sie nicht Ihre eigene Kryptografie\u201c so oft wiederholt. Zwei gute Quellen, die Sie lesen sollten, bevor Sie mit der Kryptografie beginnen, sind\u00a0<a href=\"https:\/\/www.crypto101.io\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Crypto101<\/a>\u00a0geschrieben von Laurens Van Houtven (lvh) und\u00a0<a href=\"http:\/\/cryptopals.com\/\" target=\"_tabs\" rel=\"noopener noreferrer\">die Matasano Crypto Challenges<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dennoch <b>erfordert die Sicherheit Ihrer Infrastruktur den Einsatz von Kryptografie<\/b>, und es gibt g\u00e4ngige Muster, die sicher verwendet werden k\u00f6nnen. Dieser Abschnitt behandelt eines dieser Muster: wie man sensible Daten im Quellcode (oder auf der Festplatte) speichert.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Gegenma\u00dfnahmen<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn Sie Anmeldedaten speichern, sei es in der Quellcodeverwaltung oder auf der Festplatte, speichern Sie diese nicht unverschl\u00fcsselt. Sie denken vielleicht, dass Ihre Passw\u00f6rter sicher sind, falls Sie ein privates GitHub-Repository verwenden, aber Sie sollten sich nicht auf GitHub verlassen, um Ihre gesamte Infrastruktur vor Angreifern zu sch\u00fctzen. Wenn Sie Ihre Anmeldedaten verschl\u00fcsseln, k\u00f6nnen Sie Ihre Sicherheit aufrechterhalten, selbst falls GitHub kompromittiert wird.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn Sie nach einem Tool oder einer Bibliothek suchen, um kleine Datenmengen zu verschl\u00fcsseln, ber\u00fccksichtigen Sie die folgenden Empfehlungen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verwenden Sie eine moderne symmetrische Verschl\u00fcsselung. Zwei h\u00e4ufig empfohlene Kandidaten sind AES und Salsa20 (NaCl).<\/li>\n\n\n\n<li>Falls Ihre symmetrische Verschl\u00fcsselung verschiedene Modi unterst\u00fctzt, w\u00e4hlen Sie den Modus sorgf\u00e4ltig aus. Beispielsweise ist CBC ein guter Modus f\u00fcr die Verwendung mit AES, ECB hingegen nicht.<\/li>\n\n\n\n<li>Verwenden Sie einen Message Authentication Code (MAC), um sicherzustellen, dass die verschl\u00fcsselten Daten nicht manipuliert wurden. HMAC-SHA-512 oder Poly1305 sind gute Kandidaten.<\/li>\n\n\n\n<li>Nutzen Sie eine hochwertige Zufallsquelle, was typischerweise bedeutet, <code>\/dev\/urandom <\/code>zu verwenden, um Zufallszahlen f\u00fcr Schl\u00fcssel, Salts und Nonces zu erhalten.<\/li>\n\n\n\n<li>Falls die Bibliothek oder das Tool mit Passphrasen arbeitet, stellen Sie sicher, dass eine KDF verwendet wird, um die Passphrase in einen Schl\u00fcssel umzuwandeln.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Sie k\u00f6nnen selbst ein Verschl\u00fcsselungs-Tool entwickeln, aber wie bereits erw\u00e4hnt, <b>kann dies knifflig sein und wird nicht empfohlen<\/b>. Falls Sie jedoch darauf bestehen, eines zu entwickeln, verwenden Sie eine Bibliothek wie\u00a0<a href=\"http:\/\/nacl.cr.yp.to\/\" target=\"_tabs\" rel=\"noopener noreferrer\">NaCl<\/a>\u00a0oder\u00a0<a href=\"https:\/\/www.cryptography.io\/\" target=\"_tabs\" rel=\"noopener noreferrer\">cryptography.io<\/a>\u00a0, die zumindest die Kryptografie korrekt f\u00fcr Sie umsetzt. Es ist jedoch noch besser, ein \u201eRezept&#8220; zu verwenden, das jemand genau daf\u00fcr entwickelt hat, wie etwa\u00a0<a href=\"http:\/\/github.com\/mailgun\/lemma\" target=\"_tabs\" rel=\"noopener noreferrer\">lemma<\/a>\u00a0oder\u00a0<a href=\"https:\/\/cryptography.io\/en\/latest\/fernet\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Fernet<\/a>\u00a0die beide eine einfache API bereitstellen, mit der Sie Daten auf sichere Weise verschl\u00fcsseln und entschl\u00fcsseln k\u00f6nnen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Zusammenfassung<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>DON\u2019T: W\u00e4hlen Sie den Modus f\u00fcr Ihre symmetrische Verschl\u00fcsselung nicht zuf\u00e4llig aus.<\/li>\n\n\n\n<li>DO: Verwenden Sie eine authentifizierte symmetrische Verschl\u00fcsselung mit einem MAC.<\/li>\n\n\n\n<li>DO: Verwenden Sie <code>\/dev\/urandom <\/code>zur Erzeugung von Zufallsmaterial.<\/li>\n\n\n\n<li>DO: Verwenden Sie ein \u201eRezept&#8220; wie oder, falls Sie k\u00f6nnen.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Backups<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Beschreibung<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Obwohl Backups scheinbar nicht in dieselbe Kategorie fallen wie die anderen in diesem Leitfaden diskutierten Themen, sind sie f\u00fcr die Infrastruktursicherheit genauso wichtig. Backups erf\u00fcllen zwei Hauptzwecke: die Wiederherstellung im Falle eines unbeabsichtigten Hardwareausfalls und die Wiederherstellung, falls ein Angreifer Ihre Infrastruktur kompromittiert. Denken Sie daran: Im Falle einer Kompromittierung <b>ist es besser, Ihren Server zu l\u00f6schen und neu aufzusetzen, als zu versuchen, Malware zu entfernen<\/b>, was f\u00fcr unerfahrene Nutzer schwierig bis unm\u00f6glich sein kann. Aus diesem Grund sind Backups im Falle einer Kompromittierung von entscheidender Bedeutung, um Ihre Infrastruktur in einen vertrauensw\u00fcrdigen Zustand zur\u00fcckzuversetzen.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Gegenma\u00dfnahmen<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Die folgenden Ans\u00e4tze sind eine gute allgemeine Strategie f\u00fcr die Arbeit mit Backups:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sichern Sie Ihre Backups nicht unzureichend ab, nur weil sie f\u00fcr Ihren Dienst nicht unternehmenskritisch erscheinen. Angreifer haben es oft genau aus diesem Grund auf Backup-Infrastrukturen abgesehen.<\/li>\n\n\n\n<li>Erstellen Sie so h\u00e4ufig Backups, wie es f\u00fcr Ihre gesch\u00e4ftlichen Anforderungen angemessen ist. Einmal pro Tag ist sinnvoll.<\/li>\n\n\n\n<li>Ihre Backup-Server sollten einen eingeschr\u00e4nkten Zugriff aufweisen, und die vorhandenen Konten sollten andere Authentifizierungs- und Autorisierungsmechanismen verwenden als jene, die f\u00fcr den Rest Ihrer Infrastruktur eingesetzt werden. Beispielsweise sollten Ihre Backup-Server einen anderen SSH-Schl\u00fcssel f\u00fcr die Anmeldung verwenden. Wenn Sie dies tun und Ihre Hauptumgebung kompromittiert wird, verf\u00fcgen Sie <b>weiterhin \u00fcber vertrauensw\u00fcrdige Backups<\/b>, aus denen Sie wiederherstellen k\u00f6nnen.<\/li>\n\n\n\n<li>Falls Sie keine eigene Backup-Infrastruktur betreiben m\u00f6chten, sichern Sie Ihre Daten in einem Datenspeicher eines Drittanbieters wie Amazon S3. Beachten Sie dabei: Wenn Sie den Dienst eines Drittanbieters nutzen, verschl\u00fcsseln Sie Ihre Backups, bevor Sie Ihre Daten dorthin senden. Gehen Sie davon aus, dass es sich bei Ihrem Datenspeicher um einen \u00f6ffentlichen Datenspeicher handelt, und verwenden Sie Verschl\u00fcsselung, um Ihre Daten zu sch\u00fctzen. Mit dieser Herangehensweise sind Ihre Daten selbst bei einer Kompromittierung Ihres Hosts sicher.<\/li>\n\n\n\n<li>Falls Sie Amazon S3 oder Rackspace CloudFiles verwenden, nutzen Sie ein authentifiziertes Verschl\u00fcsselungsrezept wie <a href=\"http:\/\/github.com\/mailgun\/lemma\" target=\"_tabs\" rel=\"noopener noreferrer\">lemma<\/a> oder <a href=\"https:\/\/cryptography.io\/en\/latest\/fernet\" target=\"_tabs\" rel=\"noopener noreferrer\">Fernet<\/a>. Falls Sie sich keine Gedanken \u00fcber die Kryptografie machen m\u00f6chten, verwenden Sie einen Dienst, der Ihre Daten auf dem Client verschl\u00fcsselt und nur verschl\u00fcsselte Blobs an seinen Dienst sendet, wie <a href=\"http:\/\/www.tarsnap.com\" target=\"_tabs\" rel=\"noopener noreferrer\">Tarsnap<\/a>.<\/li>\n\n\n\n<li>Sichern Sie Ihre Quellcode-Repositories, jegliche Drittanbieter-Software, die Ihre Anwendung verwendet, sowie Ihre Datenbank. Das j\u00fcngste Beispiel von FoundationDB verdeutlicht, wie wichtig es ist, ein Backup jeder von Ihnen verwendeten Software zu erstellen. <b>Das Entwicklungsteam kann Software-Downloads jederzeit und aus beliebigem Grund zur\u00fcckziehen.<\/b><\/li>\n\n\n\n<li>Obwohl verteilte Versionskontrollsysteme (DVCSs) wie Git eine gewisse Redundanz bieten, ersetzen sie keine echten Backups. Sie sollten sich nicht darauf verlassen m\u00fcssen, dass sich ein bestimmter Branch auf der Workstation eines Teammitglieds befindet, um den Gesch\u00e4ftsbetrieb aufrechtzuerhalten.<\/li>\n\n\n\n<li>F\u00fchren Sie ein Backup Ihrer Datenbank mit der Methode durch, die von der Datenbank vorgegeben wird.<\/li>\n\n\n\n<li>F\u00fchren Sie ebenso h\u00e4ufig Wiederherstellungen aus Backups durch, wie Sie selbst Backups erstellen. Backups n\u00fctzen nichts, falls sie nicht verwendbar sind. Im Idealfall k\u00f6nnen Sie einige Hilfsdienste, die nicht die aktuellsten Daten ben\u00f6tigen, \u00fcber Ihre wiederhergestellten Backups laufen lassen. Auf diese Weise wissen Sie sofort Bescheid, falls etwas schiefgeht.<\/li>\n\n\n\n<li>Stellen Sie sicher, dass <b>mehrere Personen in Ihrem Team<\/b> in der Lage sind, Backups wiederherzustellen. Vielleicht finden Sie heraus, wie Sie Ihre Backups wiederherstellen, vielleicht aber auch nicht. Es k\u00f6nnte eine Stunde oder zehn Stunden dauern. Es ist besser, jedes Quartal ein paar Stunden damit zu verbringen, Ihre Backup-Infrastruktur gemeinsam mit einem Teammitglied zu \u00fcberpr\u00fcfen.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Zusammenfassung<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>DON\u2019T: Verwenden Sie f\u00fcr Backups nicht dieselben Konten wie in Ihrer Hauptumgebung.<\/li>\n\n\n\n<li>DO: Sichern Sie Quellcode-Repositories, Drittanbieter-Software und Datenbanken.<\/li>\n\n\n\n<li>DO: Versuchen Sie ebenso h\u00e4ufig eine Wiederherstellung aus Backups durchzuf\u00fchren, wie Sie das Backup-Verfahren ausf\u00fchren.<\/li>\n\n\n\n<li>DO: F\u00fchren Sie Hilfsdienste auf Basis wiederhergestellter Backups aus, falls m\u00f6glich.<\/li>\n\n\n\n<li>DON\u2019T: Schaffen Sie keinen Single Point of Failure; stellen Sie sicher, dass mehrere Personen in Ihrem Team in der Lage sind, Backups wiederherzustellen.<\/li>\n\n\n\n<li>DO: Verwenden Sie f\u00fcr Ihre Backups eine authentifizierte Verschl\u00fcsselung. Verwenden Sie ein Tool wie\u00a0<a href=\"http:\/\/github.com\/mailgun\/lemma\" target=\"_tabs\" rel=\"noopener noreferrer\">lemma<\/a>\u00a0oder\u00a0<a href=\"https:\/\/cryptography.io\/en\/latest\/fernet\" target=\"_tabs\" rel=\"noopener noreferrer\">Fernet<\/a>, oder eine gehostete L\u00f6sung wie\u00a0<a href=\"http:\/\/www.tarsnap.com\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Tarsnap<\/a>.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Ihre Infrastruktur in einer sicheren Konfiguration zu betreiben, ist selbst f\u00fcr Sicherheitsfachleute eine gewaltige Aufgabe. Dieser Leitfaden bietet praktische Ratschl\u00e4ge, um Techniker dabei zu unterst\u00fctzen, eine Infrastruktur nach den Sicherheits-Best Practices aufzubauen, damit sie ihre Dienste sicher im \u00f6ffentlichen Internet bereitstellen und das Risiko einer Kompromittierung senken k\u00f6nnen. Dieser Leitfaden richtet sich speziell an Linux-basierte Systeme. Die Best Practices gelten jedoch f\u00fcr alle Computersysteme.<\/p>\n","protected":false},"author":13,"featured_media":4843,"menu_order":0,"template":"","meta":{"_acf_changed":false,"footnotes":""},"blog_category":[23],"class_list":["post-25035","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog_category-it-and-engineering"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>So sch\u00fctzen Sie Ihre Infrastruktur vor Angreifern - Transactional Email API Service For Developers | Mailgun<\/title>\n<meta name=\"description\" content=\"Mailgun gibt praktische Ratschl\u00e4ge, die Fachleuten helfen, sichere Infrastrukturen f\u00fcr zuverl\u00e4ssige Deployments aufzubauen.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"So sch\u00fctzen Sie Ihre Infrastruktur vor Angreifern - Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:description\" content=\"Mailgun gibt praktische Ratschl\u00e4ge, die Fachleuten helfen, sichere Infrastrukturen f\u00fcr zuverl\u00e4ssige Deployments aufzubauen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\/\" \/>\n<meta property=\"og:site_name\" content=\"Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png\" \/>\n\t<meta property=\"og:image:width\" content=\"720\" \/>\n\t<meta property=\"og:image:height\" content=\"448\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"29\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\\\/\",\"name\":\"So sch\u00fctzen Sie Ihre Infrastruktur vor Angreifern - Transactional Email API Service For Developers | Mailgun\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-IT-Engineering.png\",\"datePublished\":\"2026-09-16T19:09:49+00:00\",\"description\":\"Mailgun gibt praktische Ratschl\u00e4ge, die Fachleuten helfen, sichere Infrastrukturen f\u00fcr zuverl\u00e4ssige Deployments aufzubauen.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-IT-Engineering.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-IT-Engineering.png\",\"width\":720,\"height\":448},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/it-and-engineering\\\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Leitfaden zur Sicherheit: Wie Sie Ihre Infrastruktur vor einfachen Angreifern sch\u00fctzen k\u00f6nnen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"description\":\"Leistungsstarke Transaktions-E-Mail-APIs, mit denen Sie E-Mails senden, empfangen und nachverfolgen k\u00f6nnen, speziell f\u00fcr Entwickler konzipiert. Erfahren Sie noch heute mehr!\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/#organization\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-android-chrome-512x512-1.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-android-chrome-512x512-1.png\",\"width\":512,\"height\":512,\"caption\":\"Transactional Email API Service For Developers | Mailgun\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"So sch\u00fctzen Sie Ihre Infrastruktur vor Angreifern - Transactional Email API Service For Developers | Mailgun","description":"Mailgun gibt praktische Ratschl\u00e4ge, die Fachleuten helfen, sichere Infrastrukturen f\u00fcr zuverl\u00e4ssige Deployments aufzubauen.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\/","og_locale":"de_DE","og_type":"article","og_title":"So sch\u00fctzen Sie Ihre Infrastruktur vor Angreifern - Transactional Email API Service For Developers | Mailgun","og_description":"Mailgun gibt praktische Ratschl\u00e4ge, die Fachleuten helfen, sichere Infrastrukturen f\u00fcr zuverl\u00e4ssige Deployments aufzubauen.","og_url":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\/","og_site_name":"Transactional Email API Service For Developers | Mailgun","og_image":[{"width":720,"height":448,"url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"29\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\/","url":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\/","name":"So sch\u00fctzen Sie Ihre Infrastruktur vor Angreifern - Transactional Email API Service For Developers | Mailgun","isPartOf":{"@id":"https:\/\/www.mailgun.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\/#primaryimage"},"image":{"@id":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png","datePublished":"2026-09-16T19:09:49+00:00","description":"Mailgun gibt praktische Ratschl\u00e4ge, die Fachleuten helfen, sichere Infrastrukturen f\u00fcr zuverl\u00e4ssige Deployments aufzubauen.","breadcrumb":{"@id":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\/#primaryimage","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png","width":720,"height":448},{"@type":"BreadcrumbList","@id":"https:\/\/www.mailgun.com\/de\/blog\/it-and-engineering\/sicherheitsleitfaden-grundlegende-infrastruktursicherheit\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.mailgun.com\/de\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/www.mailgun.com\/de\/blog\/"},{"@type":"ListItem","position":3,"name":"Leitfaden zur Sicherheit: Wie Sie Ihre Infrastruktur vor einfachen Angreifern sch\u00fctzen k\u00f6nnen"}]},{"@type":"WebSite","@id":"https:\/\/www.mailgun.com\/de\/#website","url":"https:\/\/www.mailgun.com\/de\/","name":"Transactional Email API Service For Developers | Mailgun","description":"Leistungsstarke Transaktions-E-Mail-APIs, mit denen Sie E-Mails senden, empfangen und nachverfolgen k\u00f6nnen, speziell f\u00fcr Entwickler konzipiert. Erfahren Sie noch heute mehr!","publisher":{"@id":"https:\/\/www.mailgun.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mailgun.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.mailgun.com\/de\/#organization","name":"Transactional Email API Service For Developers | Mailgun","url":"https:\/\/www.mailgun.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.mailgun.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/06\/cropped-android-chrome-512x512-1.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/06\/cropped-android-chrome-512x512-1.png","width":512,"height":512,"caption":"Transactional Email API Service For Developers | Mailgun"},"image":{"@id":"https:\/\/www.mailgun.com\/de\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/blog\/25035","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/users\/13"}],"version-history":[{"count":0,"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/blog\/25035\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/media\/4843"}],"wp:attachment":[{"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/media?parent=25035"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/www.mailgun.com\/de\/wp-json\/wp\/v2\/blog_category?post=25035"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}