Linux-Sicherheitsleitfaden. Gefährliche Linux-Schwachstellen Verschlüsseln Sie das Dateisystem in Linux für umfassendere Linux-Sicherheit

Auf der jährlichen LinuxCon-Konferenz 2015 teilte der Schöpfer des GNU/Linux-Kernels Linus Torvalds seine Meinung zur Sicherheit des Systems. Er betonte die Notwendigkeit, die Auswirkungen des Vorhandenseins bestimmter Fehler durch kompetenten Schutz abzumildern, damit beim Ausfall einer Komponente die nächste Schicht das Problem abdeckt.

In diesem Artikel werden wir versuchen, dieses Thema aus praktischer Sicht aufzudecken:

7. Installieren Sie Firewalls

Kürzlich gab es eine neue Schwachstelle, die DDoS-Angriffe auf Linux-Server ermöglicht. Seit Version 3.6 Ende 2012 ist ein Fehler im Systemkern aufgetaucht. Die Schwachstelle ermöglicht es Hackern, Viren in Download-Dateien und Webseiten einzuschleusen und Tor-Verbindungen aufzudecken, und das Hacken erfordert nicht viel Aufwand – die IP-Spoofing-Methode funktioniert.

Der größte Schaden für verschlüsselte HTTPS- oder SSH-Verbindungen besteht in einer Verbindungsunterbrechung, aber ein Angreifer kann neue Inhalte, einschließlich Malware, in ungeschützten Datenverkehr einfügen. Zum Schutz vor solchen Angriffen eignet sich eine Firewall.

Blockieren Sie den Zugriff mit Firewall

Die Firewall ist eines der wichtigsten Tools zum Blockieren von unerwünschtem eingehendem Datenverkehr. Wir empfehlen Ihnen, nur den Verkehr zuzulassen, den Sie wirklich benötigen, und allen anderen Verkehr vollständig zu blockieren.

Für die Paketfilterung haben die meisten Linux-Distributionen einen iptables-Controller. Es wird normalerweise von fortgeschrittenen Benutzern verwendet, und für eine vereinfachte Konfiguration können Sie die UFW-Dienstprogramme unter Debian/Ubuntu oder FirewallD unter Fedora verwenden.

8. Deaktivieren Sie unnötige Dienste

Spezialisten der University of Virginia empfehlen, alle Dienste abzuschalten, die Sie nicht nutzen. Einige Hintergrundprozesse sind so eingestellt, dass sie automatisch geladen und ausgeführt werden, bis das System heruntergefahren wird. Um diese Programme zu konfigurieren, müssen Sie die Initialisierungsskripte überprüfen. Dienste können über inetd oder xinetd gestartet werden.

Wenn Ihr System über inetd konfiguriert ist, können Sie in der Datei /etc/inetd.conf die Liste der „Daemons“-Hintergrundprogramme bearbeiten, um das Laden des Dienstes zu deaktivieren, setzen Sie einfach ein „#“-Zeichen an den Anfang der Zeile und verwandelt sie von einer ausführbaren Datei in einen Kommentar.

Wenn das System xinetd verwendet, befindet sich seine Konfiguration im Verzeichnis /etc/xinetd.d. Jede Verzeichnisdatei definiert einen Dienst, der durch Angabe der Klausel disable = yes deaktiviert werden kann, wie in diesem Beispiel:

Dienstfinger ( socket_type = stream wait = no user = niemand server = /usr/sbin/in.fingerd disable = yes )
Es lohnt sich auch, nach persistenten Prozessen zu suchen, die nicht von inetd oder xinetd verwaltet werden. Sie können Startskripts in den Verzeichnissen /etc/init.d oder /etc/inittab konfigurieren. Nachdem die Änderungen vorgenommen wurden, führen Sie den Befehl unter dem Root-Konto aus.

/etc/rc.d/init.d/inet Neustart

9. Schützen Sie den Server physisch

Ein vollständiger Schutz vor Angriffen durch einen Angreifer mit physischem Zugriff auf den Server ist nicht möglich. Daher ist es notwendig, den Raum, in dem sich Ihr System befindet, zu sichern. Rechenzentren nehmen Sicherheit ernst, beschränken den Zugriff auf Server, installieren Überwachungskameras und ernennen ständige Wachen.

Um das Rechenzentrum zu betreten, müssen alle Besucher bestimmte Authentifizierungsschritte durchlaufen. Es wird auch dringend empfohlen, Bewegungssensoren in allen Bereichen des Zentrums zu verwenden.

10. Schützen Sie den Server vor unbefugtem Zugriff

Ein System für nicht autorisierten Zugriff (IDS) sammelt Daten über die Systemkonfiguration und Dateien und vergleicht diese Daten dann mit neuen Änderungen, um festzustellen, ob sie für das System schädlich sind.

Beispielsweise sammeln die Tools Tripwire und Aide eine Datenbank mit Systemdateien und schützen sie mit einem Schlüsselsatz. Psad wird verwendet, um verdächtige Aktivitäten durch Firewall-Berichte zu verfolgen.

Bro wurde entwickelt, um das Netzwerk zu überwachen, verdächtige Aktivitätsmuster zu verfolgen, Statistiken zu sammeln, Systembefehle auszuführen und Warnungen zu generieren. RKHunter kann zum Schutz vor Viren, meistens Rootkits, verwendet werden. Dieses Dienstprogramm scannt Ihr System anhand einer Datenbank bekannter Schwachstellen und kann unsichere Einstellungen in Anwendungen erkennen.

Abschluss

Die oben aufgeführten Tools und Einstellungen helfen Ihnen, das System teilweise zu schützen, aber die Sicherheit hängt von Ihrem Verhalten und Verständnis der Situation ab. Ohne Aufmerksamkeit, Vorsicht und ständiges Selbstlernen funktionieren möglicherweise nicht alle Schutzmaßnahmen.

Das kann man durchaus sagen Linux mehr sicher(geschützt) als Windows. Sicherheit v Linux eingebaut, und nicht irgendwo seitlich verschraubt, wie es bei Windows implementiert ist. Sicherheit Systeme Linux deckt den Bereich vom Kernel bis zum Desktop ab, aber es besteht die Möglichkeit, dass Hacker Ihr Home-Verzeichnis (/home) beschädigen.

Ihre Fotos, Heimvideos, Dokumente und Kreditkarten- oder Brieftaschendaten sind die wertvollsten Informationen auf einem Computer. Natürlich ist Linux für Windows nicht anfällig für alle möglichen Internetwürmer und Viren. Aber Angreifer können einen Weg finden, auf Ihre Daten in Ihrem Home-Verzeichnis zuzugreifen.

Denken Sie, dass es ausreichen wird, Ihren alten Computer oder Ihre alte Festplatte vor dem Verkauf vorzubereiten und zu formatieren? Es gibt viele moderne Tools zur Datenwiederherstellung. Der Hacker wird Ihre Daten problemlos von Ihrer Festplatte wiederherstellen, unabhängig davon, mit welchem ​​​​Betriebssystem Sie gearbeitet haben.

Zu diesem Thema erinnere ich mich an die Erfahrung eines Unternehmens, das gebrauchte Computer und Festplatten zurückkaufte. Im Zuge ihrer Tätigkeit kamen sie zu dem Urteil, dass 90 % der Vorbesitzer ihres Computers ihre Speichermedien vor dem Verkauf nicht sorgfältig gereinigt haben. Und sie extrahierten sehr sensible Datenbytes. Es ist sogar beängstigend, sich vorzustellen, dass sich irgendwo in den Fächern Ihrer Festplatte Informationen befinden, die Sie in Ihre Online-Bank oder Online-Geldbörse eingeben können.

Beginnen Sie mit den Grundlagen der Linux-Sicherheit

Kommen wir zu den Grundlagen (), die für fast alle geeignet sind
Linux-Distributionen.

Verschlüsseln des Dateisystems in Linux für umfassendere Linux-Sicherheit

Benutzerdefinierte Passwörter lösen das Problem nicht, wenn Sie wirklich möchten, dass niemand Ihr Home-Verzeichnis (/home) oder eine bestimmte Bytegröße lesen kann. Sie können es so machen, dass selbst ein Benutzer mit den höchsten Root-Rechten sich nicht die Nase rümpfen kann.

Löschen Sie vertrauliche Dateien, damit niemand sie wiederherstellen kann

Wenn Sie sich entscheiden, Ihren Computer oder Ihr Speichermedium zu verkaufen oder zu spenden, gehen Sie nicht davon aus, dass eine einfache Formatierung Ihre Dateien dauerhaft löscht. Sie können das Secure-Delete-Tool auf Ihrem Linux installieren, das das Dienstprogramm srm zum sicheren Löschen von Dateien enthält.

Vergessen Sie auch nicht die im Linux-Kernel verfügbare Firewall. Alle Linux-Distributionen enthalten lptables, das Teil des Kernels ist. Mit Lptables können Sie Netzwerkpakete filtern. Natürlich können Sie dieses Dienstprogramm im Terminal konfigurieren. Aber diese Methode übersteigt die Macht vieler, mich eingeschlossen. So installiere und konfiguriere ich so einfach, als würde ich ein Spiel spielen.

Wie alle Betriebssysteme ist Linux anfällig für die Anhäufung von Junk, wenn verschiedene Anwendungen ausgeführt werden. Und das ist nicht die Schuld von Linux, da verschiedene Anwendungen wie Browser, Texteditoren und sogar Videoplayer außerhalb der Kernel-Ebene arbeiten und temporäre Dateien ansammeln. Sie können das universelle Garbage-Entsorgungsprogramm BleachBit installieren.

Anonymes Surfen, Verbergen Ihrer IP - sehr wichtig für die Sicherheit Ihrer Identität unter Linux OS


Abschließend möchte ich Sie über das anonyme Surfen im Internet informieren. Manchmal ist es notwendig, wie ich es tue, wenn ich heimlich von meiner Frau Seiten mit erotischen Inhalten besuche. Natürlich machte ich Witze.

Es wird für Angreifer schwierig sein, an Sie heranzukommen, wenn sie Ihren Standort nicht bestimmen können. Wir decken die Spuren mit einem einfachen Setup von zwei Dienstprogrammen ab, die privoxy und tor zusammenarbeiten.

Meiner Meinung nach werden Sie und Ihr Computer zu 90 % abgesichert, wenn Sie all diese Regeln befolgen und aufstellen.

P.S. Ich verwende eine Cloud namens Dropbox. Darin bewahre ich meine alten und neuen, noch nicht veröffentlichten Artikel auf. Es ist praktisch, von überall auf der Welt und von jedem Computer aus auf Ihre Dateien zugreifen zu können. Wenn ich Artikel für die Seite in einem Texteditor schreibe, speichere ich meine Textdokumente mit einem Passwort und lade sie erst dann auf den Dropbox-Server hoch. Sie sollten niemals die zusätzliche Sicherheit vernachlässigen, die Ihnen nur in die Hände spielt.

Wir alle wissen, dass das Linux-Betriebssystem aufgrund seiner Architektur und eines speziellen Systems zur Verteilung des Zugriffs zwischen Benutzern viel sicherer ist als Windows. Aber Programmierer sind auch Menschen, so sehr wir es auch hassen, sie machen auch Fehler. Und aufgrund dieser Fehler entstehen Lücken im System, durch die Angreifer Sicherheitssysteme umgehen können.

Diese Fehler werden Schwachstellen genannt, sie können in verschiedenen Programmen und sogar im Kern des Systems auftreten und dessen Sicherheit untergraben. In den letzten Jahren hat die Popularität von Linux zugenommen und Sicherheitsforscher schenken diesem System mehr Aufmerksamkeit. Immer mehr Schwachstellen werden entdeckt, und dank des Open-Source-Codes stellt sich heraus, dass sie sehr schnell behoben werden. In diesem Artikel werden wir uns die gefährlichsten Linux-Schwachstellen ansehen, die in den letzten Jahren entdeckt wurden.

Bevor Sie mit der Liste der Schwachstellen selbst fortfahren, ist es wichtig zu verstehen, was sie sind und was sie sind. Wie ich bereits sagte, ist eine Schwachstelle ein Fehler in einem Programm, der es einem Benutzer ermöglicht, das Programm auf eine Weise zu verwenden, die von seinem Entwickler nicht vorgesehen war.

Dies kann die fehlende Validierung der empfangenen Daten, die Überprüfung der Datenquelle und, am interessantesten, die Größe der Daten sein. Die gefährlichsten Schwachstellen sind diejenigen, die die Ausführung von beliebigem Code ermöglichen. Im RAM haben alle Daten eine bestimmte Größe, und das Programm ist so konzipiert, dass es Daten von einem Benutzer einer bestimmten Größe in den Speicher schreibt. Wenn der Benutzer mehr Daten übermittelt, sollte er einen Fehler ausgeben.

Wenn der Programmierer jedoch einen Fehler gemacht hat, überschreiben die Daten den Programmcode und der Prozessor versucht, sie auszuführen, wodurch Pufferüberlauf-Schwachstellen entstehen.

Außerdem können alle Schwachstellen in lokale Schwachstellen unterteilt werden, die nur funktionieren, wenn der Hacker Zugriff auf den lokalen Computer hat, und entfernte Schwachstellen, wenn der Zugriff über das Internet ausreicht. Kommen wir nun zur Liste der Schwachstellen.

1. Schmutzige KUH

Die erste auf unserer Liste wird eine neue Schwachstelle sein, die diesen Herbst entdeckt wurde. Der Name Dirty COW steht für Copy on Write. Beim Copy-on-Write tritt ein Fehler im Dateisystem auf. Hierbei handelt es sich um eine lokale Schwachstelle, die es jedem nicht privilegierten Benutzer ermöglicht, vollen Zugriff auf das System zu erhalten.

Kurz gesagt, es werden zwei Dateien benötigt, um die Schwachstelle auszunutzen, eine ist nur für den Superuser beschreibbar, die zweite ist für uns. Wir beginnen viele Male damit, Daten in unsere Datei zu schreiben und aus der Superuser-Datei zu lesen. Nach einer bestimmten Zeit kommt ein Moment, in dem die Puffer beider Dateien gemischt sind und der Benutzer Daten in eine Datei schreiben kann, deren Schreibzugriff ist stehen ihm nicht zur Verfügung, Sie können sich also Root-Rechte im System geben.

Die Schwachstelle war etwa 10 Jahre im Kernel, wurde aber nach der Entdeckung schnell beseitigt, obwohl es immer noch Millionen von Andoid-Geräten gibt, bei denen der Kernel nicht aktualisiert wurde und nicht denkt und wo diese Schwachstelle ausgenutzt werden kann. Die Schwachstelle hatte den Code CVE-2016-5195.

2. Glibc-Schwachstelle

Die Schwachstelle erhielt den Code CVE-2015-7547. Dies war eine der am meisten diskutierten Schwachstellen unter Open-Source-Projekten. Im Februar 2016 stellte sich heraus, dass die Glibc-Bibliothek eine sehr schwerwiegende Schwachstelle aufweist, die es einem Angreifer ermöglicht, seinen Code auf einem entfernten System auszuführen.

Es ist wichtig zu beachten, dass Glibc eine Implementierung der C- und C++-Standardbibliothek ist, die in den meisten Linux-Programmen verwendet wird, einschließlich Diensten und Programmiersprachen wie PHP, Python, Perl.

Im Code zum Analysieren der Antwort des DNS-Servers ist ein Fehler aufgetreten. Daher könnte die Schwachstelle von Hackern ausgenutzt werden, auf deren DNS von anfälligen Maschinen zugegriffen wurde, sowie von MITM-Angriffen durchgeführt werden. Aber die Schwachstelle gab volle Kontrolle über das System

Die Schwachstelle ist seit 2008 in der Bibliothek, aber nach der Entdeckung wurden ziemlich schnell Patches veröffentlicht.

3. Herzbluten

Im Jahr 2014 wurde eine der schwerwiegendsten Schwachstellen in Bezug auf Ausmaß und Folgen entdeckt. Es wurde durch einen Fehler im Heartdead-Modul von OpenSSL verursacht, daher der Name Heartbleed. Die Schwachstelle ermöglichte es Angreifern, direkten Zugriff auf 64 Kilobyte Server-RAM zu erhalten, der Angriff konnte wiederholt werden, bis der gesamte Speicher gelesen war.

Obwohl der Fix sehr schnell veröffentlicht wurde, waren viele Websites und Anwendungen betroffen. Tatsächlich waren alle Websites, die HTTPS zum Sichern des Datenverkehrs verwenden, anfällig. Angreifer könnten Benutzerkennwörter, ihre persönlichen Daten und alles, was sich zum Zeitpunkt des Angriffs im Speicher befand, erhalten. Die Schwachstelle erhielt den Code CVE-2014-0160.

4. Bühnenangst

Wenn eine Schwachstelle einen Codenamen erhalten hat, bedeutet dies definitiv, dass sie Aufmerksamkeit verdient. Die Stagerfight-Schwachstelle ist da keine Ausnahme. Stimmt, das ist nicht wirklich ein Linux-Problem. Stagefright ist eine Bibliothek zum Umgang mit Multimedia-Formaten in Android.

Es ist in C++ implementiert, was bedeutet, dass es alle Java-Sicherheitsmechanismen umgeht. 2015 wurde eine ganze Reihe von Schwachstellen entdeckt, die es ermöglichten, beliebigen Code aus der Ferne auf dem System auszuführen. Dies sind CVE-2015-1538, CVE-2015-1539, CVE-2015-3824, CVE-2015-3826, CVE-2015-3827, CVE-2015-3828 und CVE-2015-3829.

Einem Angreifer reichte es aus, eine MMS mit einer speziell modifizierten Mediendatei an ein verwundbares Smartphone zu senden, und er erlangte die volle Kontrolle über das Gerät mit der Fähigkeit, Daten von der Speicherkarte zu schreiben und zu lesen. Die Schwachstelle wurde von Android-Entwicklern behoben, aber Millionen von Geräten sind immer noch anfällig.

5. Zero-Day-Schwachstelle im Kernel

Dies ist eine lokale Schwachstelle, die es Ihnen ermöglicht, den aktuellen Benutzer aufgrund eines Fehlers im System für die Arbeit mit kryptografischen Kerneldaten, die im Speicher gespeichert sind, zum Root zu erheben. Sie wurde im Februar 2016 entdeckt und deckte alle Kernel ab 3.8 ab, was bedeutet, dass die Schwachstelle 4 Jahre lang bestand.

Der Fehler hätte von Hackern oder Malware genutzt werden können, um ihre Autorität im System zu erhöhen, wurde aber schnell behoben.

6. Schwachstelle in MySQL

Die Schwachstelle hatte den Code CVE-2016-6662 und betraf alle verfügbaren MySQL-Datenbankserverversionen (5.7.15, 5.6.33 und 5.5.52), Oracle-Datenbanken und Klone von MariaDB und PerconaDB.

Angreifer konnten sich über eine SQL-Anfrage vollen Zugriff auf das System verschaffen, es wurde ein Code übermittelt, der es ihnen ermöglichte, my.conf durch eine eigene Version zu ersetzen und den Server neu zu starten. Es war auch möglich, Schadcode mit Superuser-Rechten auszuführen.

MariaDB- und PerconaDB-Lösungen veröffentlichten ziemlich schnell Patches, Oracle reagierte, aber viel später.

7 Shellshock

Diese Schwachstelle wurde 2014 entdeckt, bevor sie 22 Jahre bestand. Ihr wurde der Code CVE-2014-6271 und der Codename Shellshock zugewiesen. Diese Schwachstelle ist in ihrer Gefährdung vergleichbar mit dem bereits bekannten Heartbleed. Es wird durch einen Fehler im Bash-Befehlsinterpreter verursacht, der auf den meisten Linux-Distributionen standardmäßig eingestellt ist.

Bash ermöglicht es Ihnen, Umgebungsvariablen ohne Benutzerauthentifizierung zu deklarieren, und zusammen können Sie jeden Befehl darin ausführen. Dies ist besonders gefährlich in CGI-Skripten, die von den meisten Websites unterstützt werden. Angreifbar sind nicht nur Server, sondern auch Personal Computer von Nutzern, Router und andere Geräte. Tatsächlich kann ein Angreifer jeden Befehl aus der Ferne ausführen, dies ist eine vollwertige Fernsteuerung ohne Authentifizierung.

Sicherheitslücken waren von allen Versionen von Bash betroffen, einschließlich 4.3, aber nach der Entdeckung des Problems veröffentlichten die Entwickler sehr schnell einen Fix.

8.Quadrooter

Dabei handelt es sich um eine ganze Reihe von Schwachstellen in Android, die im August 2016 entdeckt wurden. Sie erhielten die Codes CVE-2016-5340, CVE-2016-2059, CVE-2016-2504, CVE-2016-2503. Mehr als 900 Millionen Android-Geräte sind von dem Fehler betroffen. Alle Schwachstellen wurden im ARM-Prozessortreiber von Qualcomm gefunden, und alle können verwendet werden, um Root-Zugriff auf das Gerät zu erhalten.

Wie bei DirtyCOW sind hier keine Berechtigungen erforderlich. Installieren Sie einfach eine bösartige Anwendung, und sie kann alle Ihre Daten abrufen und an einen Angreifer übertragen.

9. Schwachstelle in OpenJDK

Dies ist eine sehr schwerwiegende Linux 2016-Schwachstelle in der OpenJDK Java Machine mit CVE-2016-0636-Code, die alle Benutzer betrifft, die Oracle Java SE 7 Update 97 und 8 Update 73 und 74 unter Windows, Solaris, Linux und Mac OS X ausführen. Diese Schwachstelle ermöglicht es einem Angreifer, beliebigen Code außerhalb einer Java-Maschine auszuführen, wenn Sie eine spezielle Seite in einem Browser mit einer anfälligen Version von Java öffnen.

Dadurch konnte sich ein Angreifer Zugang zu Ihren Passwörtern und persönlichen Daten verschaffen und auch Programme auf Ihrem Computer ausführen. In allen Java-Versionen wurde der Fehler sehr schnell behoben, er besteht seit 2013.

10. HTTP/2-Schwachstelle

Dabei handelt es sich um eine Reihe von Sicherheitslücken, die 2016 im HTTP/2-Protokoll entdeckt wurden. Sie erhielten die Codes CVE-2015-8659, CVE-2016-0150, CVE-2016-1546, CVE-2016-2525, CVE-2016-1544. Alle Implementierungen dieses Protokolls in Apache, Nginx Microsoft, Jetty und nghttp2 waren Schwachstellen ausgesetzt.

Alle erlauben es einem Angreifer, den Webserver stark zu verlangsamen und einen Denial-of-Service-Angriff durchzuführen. Einer der Fehler führte beispielsweise dazu, dass eine kleine Nachricht versendet werden konnte, die auf dem Server in Gigabyte entpackt wurde. Der Fehler wurde sehr schnell behoben und verursachte daher keinen großen Lärm in der Community.

Bist du in Sicherheit?

In diesem Artikel haben wir die gefährlichsten Linux-Schwachstellen der Jahre 2016, 2015 und 2014 überprüft. Die meisten von ihnen können schwere Schäden an Systemen verursachen, wenn sie nicht rechtzeitig behoben werden. Dank des offenen Quellcodes werden solche Linux-Schwachstellen effektiv erkannt und schnell behoben. Vergessen Sie nur nicht, Ihr System zu aktualisieren. Das Problem bleibt nur bei Android. Einige Geräte erhalten keine Updates mehr und es gibt noch keine Lösung für dieses Problem.


Viele Benutzer halten Ubuntu Pop und Ubuntu Server für nicht seriös. Viele Leute vergessen, dass Ubuntu Server 5 Jahre lang unterstützt wird und der Vater von Debian 5.0 3 Jahre lang auf dem Markt war – von 2009 bis 2012.

In Bezug auf die Support-Preise - im Vergleich zu Red Hat kann und sollte Ubuntu Server gesagt werden - Sie haben es kostenlos bekommen, selbst wenn Sie rund um die Uhr Support 24x7x365 bestellen.

Sehen Sie, welche Sicherheitslösungen in allen Versionen von Ubuntu implementiert sind, und machen Sie es sicher und zuverlässig.

Möglichkeiten

Sicherheitsfähigkeitsmatrix

Gelegenheit 8,04LTS(Winterharter Reiher) 10.04LTS(Klarer Luchs) 11.04 (Natürlicher Narwal) 11.10 (Traumhafter Ozelot) 12.04LTS(Präzises Pangolin) 12.10 (Quantal Quetzal)
Keine offenen Ports Politik Politik Politik Politik Politik Politik
Passwort-Hash md5 sha512 sha512 sha512 sha512 sha512
SYN-Cookies -- Kernel & Sysctl Kernel & Sysctl Kernel & Sysctl Kernel & Sysctl Kernel & Sysctl
Dateisystemfunktionen -- Kernel Kernel Kernel Kernel Kernel
Konfigurierbare Firewall ufw ufw ufw ufw ufw ufw
PR_SET_SECCOMP Kernel Kernel Kernel Kernel Kernel Kernel
AppArmor 2.1 2.5 2.6.1 2.7.0~beta1 2.7.0 2.7.0
SELinux Universum Universum Universum Universum Universum Universum
KLATSCHEN -- Kernel Kernel Kernel Kernel Kernel
Verschlüsseltes LVM Alt-Installer Alt-Installer Alt-Installer Alt-Installer Alt-Installer Alt-Installer
eCryptfs -- ~/Privat oder ~, Dateinamen ~/Privat oder ~, Dateinamen ~/Privat oder ~, Dateinamen ~/Privat oder ~, Dateinamen ~/Privat oder ~, Dateinamen
Stapelschutz gcc-Patch gcc-Patch gcc-Patch gcc-Patch gcc-Patch gcc-Patch
Haufenschutz glibc glibc glibc glibc glibc glibc
verschleierter Zeiger glibc glibc glibc glibc glibc glibc
ASLR-Stack Kernel Kernel Kernel Kernel Kernel Kernel
libs/mmap ASLR Kernel Kernel Kernel Kernel Kernel Kernel
Führen Sie ASLR aus Kernel (-mm Patch) Kernel Kernel Kernel Kernel Kernel
brk ASLR Kernel (exec ASLR) Kernel Kernel Kernel Kernel Kernel
VDSO-ASLR Kernel Kernel Kernel Kernel Kernel Kernel
Bauen mit PIE -- Paketliste Paketliste Paketliste Paketliste Paketliste
-- gcc-Patch gcc-Patch gcc-Patch gcc-Patch gcc-Patch
Montage mit RELRO -- gcc-Patch gcc-Patch gcc-Patch gcc-Patch gcc-Patch
Bauen mit BIND_NOW -- Paketliste Paketliste Paketliste Paketliste Paketliste
Nicht ausführbarer Speicher Nur PAE PAE, ia32 partielle NX-Emulation PAE, ia32 partielle NX-Emulation PAE, ia32 partielle NX-Emulation PAE, ia32 partielle NX-Emulation
Schützen von /proc/$pid/maps Kernel & Sysctl Kernel Kernel Kernel Kernel Kernel
Grenzwerte für symbolische Links -- -- Kernel Kernel Kernel Kernel
Beschränkungen für harte Links -- -- Kernel Kernel Kernel Kernel
Ptrace-Bereich -- -- Kernel Kernel Kernel Kernel
0-Adressenschutz Kernel & Sysctl Kernel Kernel Kernel Kernel Kernel
Schützen von /dev/mem Kernel (-mm Patch) Kernel Kernel Kernel Kernel Kernel
Deaktiviert /dev/kmem Kernel (-mm Patch) Kernel Kernel Kernel Kernel Kernel
Blockieren des Ladens des Moduls CAP_SYS_MODULES fallen lassen sysctl sysctl sysctl sysctl sysctl
Kernel Kernel Kernel Kernel Kernel Kernel
Kernel-Stack-Schutz -- Kernel Kernel Kernel Kernel Kernel
RO/NX-Modul -- -- Kernel Kernel Kernel Kernel
-- -- Kernel Kernel Kernel Kernel
-- -- Kernel Kernel Kernel Kernel
Systemaufruffilterung -- -- -- Kernel Kernel Kernel

Keine offenen Ports

Die standardmäßige Ubuntu-Installation hat keine offenen Ports, die von außerhalb des Netzwerks verfügbar sind. Die Ausnahme von dieser Regel gilt nur für Netzwerkinfrastrukturdienste wie DHCP-Client und mDNS (Avahi/ZeroConf).

Wenn Ubuntu Server installiert ist, kann der Administrator zusätzliche Netzwerkdienste wie den Apache-Webserver installieren. Aber standardmäßig auf einem frisch installierten System, wenn Sie netstat -an --inet | grep HÖREN | grep -v 127.0.0.1 , dann können Sie leicht überprüfen, ob Ubuntu nicht unnötig Ports für den Zugriff von Netzwerken auf das System öffnet.

Passwort-Hash

Das für die Anmeldung bei Ubuntu verwendete Systemkennwort wird in /etc/shadow gespeichert. Vor langer Zeit wurde der DES-Passwort-Hash in /etc/passwd gespeichert. Aber moderne Linuxe speichern seit langem Hashes in /etc/shadow und zunächst wurde ein auf Salted MD5 basierender Hash crypt id 1 verwendet. Da dieselben Passwörter ohne die Verwendung eines Salts dieselben Hashes hatten, verbesserte die Einführung eines Salts die Sicherheit und erschwerte das Knacken der Passwörter vieler Benutzer des Systems.

Jetzt gilt MD5 als unzuverlässig und mit dem Wachstum der Rechenleistung von Computern wird mit Ubuntu 8.10 ein SHA-512-Hash mit einem Salt (gesalzene SHA-512-basierte Passwort-Hashes, Krypt-ID 6) verwendet. Das macht Brute-Force-Brute-Force-Hacking unglaublich schwierig und zeitaufwändig.

Siehe mancrypt für Details.

Verwenden Sie test-glibc-security.py für Tests.

SYN-Cookies

Wenn das System mit neuen Netzwerkverbindungen überschwemmt wird, hilft der SYN-Cookie-Mechanismus dabei, den Schaden durch SYN-Flood-Angriffe zu reduzieren.

Dateisystemfunktionen

Der Bedarf an setuid-Anwendungen, die mit höheren Rechten laufen als derjenige, der sie gestartet hat, kann durch die Verwendung von Dateisystemfunktionen wie xattrs reduziert werden. Solche Fähigkeiten verringern das Risiko des Missbrauchs potenziell gefährlicher setuid-Anwendungen.

Der Linux-Kernel unterstützt weiterhin und es gibt ein libcap2-bin-Toolkit für die Verwendung von Dateifunktionen wie xattrs, um die Sicherheit von setuid-Anwendungen zu erhöhen.

Verwenden Sie test-kernel-security.py für Tests.

Konfigurierbare Firewall

ufw ist ein iptables-Frontend, das in Ubuntu installiert und verwendet wird, aber vom Benutzer aktiviert werden muss. UFW zielt darauf ab, eine einfach zu bedienende Schnittstelle für Personen bereitzustellen, die mit iptables-Firewall-Konzepten, -Ketten und -Tabellen nicht vertraut sind.

Gleichzeitig vereinfacht UFW komplexe iptables-Befehle, um dem Administrator zu helfen, der weiß, was er tut.

UFW ist ein Assistent und eine Basis für grafische Frontends.

Verwenden Sie ufw-Tests für Tests.

PR_SET_SECCOMP

AppArmor

SELinux

SELinux ist ein obligatorisches Zugriffskontrollsystem, das auf dem Konzept eines Inodes – eines Dateisystem-Inodes – basiert.

Durch die Installation des Selinux-Pakets werden die erforderlichen Änderungen und Anpassungen während des PC-Starts vorgenommen.

Verwenden Sie test-kernel-security.py für Tests.

KLATSCHEN

SMACK ist ein flexibles obligatorisches Zugriffskontrollsystem, das auf dem Konzept von Inode - File System Index Descriptor - basiert.

Verwenden Sie test-kernel-security.py für Tests.

Verschlüsselung des Dateisystems

LVM-Verschlüsselung

Benutzer, die das alternative Installationsprogramm verwenden, können Ubuntu auf einem verschlüsselten LVM (Logical Volume Manage - Logical Volume Manager) installieren, das alle Partitionen verschlüsselt, einschließlich der Swap-Partition.

eCryptfs

Verschlüsselte Ordner wurden erstmals in Ubuntu 8.10 als sicherer Ort zum Speichern vertraulicher Benutzerinformationen implementiert.

Mit dem Alternate and Server Disk Installer können Sie verschlüsselte Ordner für den ersten Benutzer einrichten.

In Ubuntu 9.04 wurde die Unterstützung für die Ordnerverschlüsselung erweitert, damit der Benutzer den gesamten Home-Ordner verschlüsseln kann. Die Verschlüsselung des Home-Ordners wird im alternativen Installationsprogramm und im Desktop-Installationsprogramm über die Option user-setup/encrypt-home=true unterstützt.

Stärkung der Benutzerraumsicherheit

Viele Sicherheitsfunktionen werden durch Kompilierungs-Flags implementiert, wenn Softwarepakete und der Kernel erstellt werden.

Stapelschutz

Das Flag gcc -fstack-protector bietet Schutz vor Stapelüberlauf, indem es eine kleine Zufallszahl als Token platziert. Diese Technik erschwert Stapelüberläufe für verschiedene Exploits.

Eine kleine Anzahl von Programmen funktioniert nicht gut, wenn sie mit dieser Option erstellt wurden und für sie -fstack-protector deaktiviert ist.

Verwenden Sie test-gcc-security.py für Tests.

Haufenschutz

Der Heap-Schutz der GNU C-Bibliothek (automatisch ptmalloc und manuell) bietet Schutz vor beschädigter Liste/Unlink/double-free/Overflow im glibc-Speichermanager.

Dadurch wird verhindert, dass willkürlicher Code durch Heap-Speicherüberlauf ausgeführt wird, wodurch die Struktur des Heap-Bereichs beschädigt wird.

Dieser Schutz hat sich im Laufe der Zeit weiterentwickelt und immer mehr Schutzoptionen hinzugefügt. In seinem aktuellen Zustand widersteht glibc 2.10 selbst subtilen Angriffsbedingungen erfolgreich.

verschleierter Zeiger

Einige glibc-Zeiger werden über die PTR_MANGLE/PTR_UNMANGLE-Makros intern in glibc verschleiert, wodurch verhindert wird, dass Zeiger zur Laufzeit überschrieben werden.

Verwenden Sie die Tests test-glibc-security.py.

Zufällige Platzierung im Adressraum. Adressraum-Layout-Randomisierung (ASLR)

ASLR ist im Kernel implementiert und der ELF-Loader platziert die wichtigsten Strukturen an zufälligen Adressen: Stack, Heap, Shared Libraries und mehr.

Dadurch wird es schwieriger, Adressen vorherzusagen, wenn ein Angreifer versucht, Exploits zu verwenden.

ASLR wird global über /proc/sys/kernel/randomize_va_space geändert. Vor Ubuntu 8.10 war der Wert „1“ (aktiviert). In späteren Versionen, die brk ASLR enthalten, wird der Wert auf "2" gesetzt (aktiviert mit brk ASLR).

ASLR-Stack

Die Ergebnisse jeder Ausführung des Programms werden an verschiedenen Stellen auf dem Stapel abgelegt. Es ist schwer, im Speicher zu finden und das Programm anzugreifen, indem bösartige Payload hinzugefügt wird.

libs/mmap ASLR

Bibliotheken werden dynamisch in verschiedene Speicherorte geladen, was es einem Angreifer erschwert, einen Rückkehrpunkt zu finden.

Der Schutz ist ab Kernel 2.6.15 (Ubuntu 6.06) verfügbar.

Führen Sie ASLR aus

Programme, die mit der Option "-fPIE -pie" erstellt wurden, werden an verschiedenen Stellen im Speicher geladen. Dies macht es schwieriger, eine Adresse anzugreifen oder zu ihr zu springen, um einen Speichermodifikationsangriff durchzuführen.

Der Schutz ist ab Kernel 2.6.25 (Ubuntu 8.04 LTS) verfügbar.

brk ASLR

Wie exec ASLR passt brk ASLR Speicheradressen zwischen exec und brk für kleine Speicherzuweisungsanforderungen an. Die Randomisierung des brk exec-Speicheroffsets wurde in Kernel 2.6.26 (Ubuntu 8.10) hinzugefügt.

VDSO-ASLR

Jedes Mal, wenn das Programm ausgeführt wird, platziert es die Ergebnisse in einem anderen vdso. Erschien zuerst in Kernel 2.6.18 (x86, PPC) und 2.6.22 (x86_64), war aber aufgrund von COMPAT_VDSO, das in Ubuntu 8.04 LTS entfernt wurde, nicht in Ubuntu 6.10 enthalten.

Schützt vor Jump-in-syscall-Angriffen.

Nur x86 wurde von glibc 2.6 unterstützt. glibc 2.7 (Ubuntu 8.04 LTS) unterstützte bereits x86_64 ASLR vdso.

Diejenigen, die das alte statische pre-libc6 vdso benötigen, können "vdso=2" als Kernelparameter verwenden und erhalten wieder COMPAT_VDSO.

Bauen mit PIE

Alle Programme, die mit der Position Independent Executables (PIE)-Option „-fPIE -pie“ erstellt wurden, können den exec-ASLR-Schutz nutzen.

Dies schützt vor „Return-to-Text“-Angriffen und macht herkömmliche Speichermodifikationsangriffe nutzlos.

Aufgrund von PIE kommt es bei Architekturen mit einer kleinen Anzahl von Allzweckregistern (z. B. x86) zu einem großen Leistungsabfall (5–10 %).

Daher wird PIE für eine kleine Anzahl sicherheitskritischer Pakete verwendet.

PIE für x86_64 hat keine Probleme mit Leistungseinbußen, daher wird es für alle Pakete verwendet, muss aber besser getestet werden.

Plastiktüte 8,04LTS 9.04 9.10 10.04LTS 10.10 11.04 11.10
öffnetsch Ja Ja Ja Ja Ja Ja Ja
apache2 -- Ja Ja Ja Ja Ja Ja
binden9 -- Ja Ja Ja Ja Ja Ja
openldap -- Ja Ja Ja Ja Ja Ja
postfix -- Ja Ja Ja Ja Ja Ja
Tassen -- Ja Ja Ja Ja Ja Ja
postgresql-8.3 -- Ja Ja Ja Ja Ja Ja
Samba -- Ja Ja Ja Ja Ja Ja
Taubenschlag -- Ja Ja Ja Ja Ja Ja
dhcp3 -- Ja Ja Ja Ja Ja Ja
ntp -- -- Ja Ja Ja Ja Ja
amavisd-neu -- -- Ja Ja Ja Ja Ja
Tintenfisch -- -- Ja Ja Ja Ja Ja
cyrus-sasl2 -- -- Ja Ja Ja Ja Ja
exim4 -- -- Ja Ja Ja Ja Ja
Nagios3 -- -- Ja Ja Ja Ja Ja
Nagios-Plugins -- -- Ja Ja Ja Ja Ja
xinetd -- -- Ja Ja Ja Ja Ja
ipsec-tools -- -- Ja Ja Ja Ja Ja
mysql-dfsg-5.1 -- -- Ja Ja Ja Ja Ja
beweisen -- -- -- Ja Ja Ja Ja
Feuerfuchs -- -- -- Ja Ja Ja Ja
Gnomen-Kontrollzentrum -- -- -- -- -- Ja Ja
tiff -- -- -- -- -- Ja Ja
Totem -- -- -- -- -- Ja Ja
qemu-kvm -- -- -- -- -- -- Ja
Pidgin -- -- -- -- -- -- Ja

Bauen mit Fortify Source

Programme, die mit "-D_FORTIFY_SOURCE=2" (und -O1 oder höher) erstellt wurden, enthalten mehrere Kompilierungs- und Laufzeitschutzmaßnahmen in glibc:

  • Aufrufe "sprintf", "strcpy" mit ihren undefinierten Grenzen werden durch verwandte Funktionen mit begrenztem N ersetzt, wenn die Puffergröße im Voraus bekannt ist. Dies schützt vor Speicherüberläufen.
  • Stoppen eines Angriffs über das Zeichenfolgenformat "%n", wenn sich die Zeichenfolge in einem Speichersegment mit Schreibzugriff befindet.
  • erfordern die Überprüfung der Rückgabewerte der wichtigsten Funktionen und Argumente (z. B. für system, write, open).
  • erfordern eine explizite Maske beim Erstellen der Datei.

Montage mit RELRO

Verschärfung für ELF-Programme, um das Überschreiben des Bootloader-Speichers zu bekämpfen. Verringert die Wahrscheinlichkeit eines Angriffs im GOT-Überschreibungsstil.

Verwenden Sie test-gcc-security.py-Tests.

Bauen mit BIND_NOW

Markiert ELF-Programme, um dynamische Zeichen beim Start zuzulassen, anstatt bei Bedarf, auch bekannt als "sofortige Bindung".

Dies macht das GOT in Kombination mit der Option RELRO vollständig schreibgeschützt.

Verwenden Sie test-built-binaries.py-Tests.

Nicht ausführbarer Speicher

Moderne Prozessoren schützen Datenspeicherbereiche (Heap, Stack) vor Codeausführung.

Diese Technologie ist als Non-eXecute (NX) oder eXecute-Disable (XD) bekannt. Der Schutz verringert die Fähigkeit eines Angreifers, willkürlichen Code zu platzieren.

Der Schutz erfordert "PAE", das auch die Adressierung von über 3 GB RAM ermöglicht. 64bit und 32bit -server und -generic-pae Kernel sind bereits mit PAE gebaut.

Ab Ubuntu 9.10 wird der Schutz teilweise auf 32-Bit-Kernels für Prozessoren emuliert, die keine NX-Hardware unterstützen.

Nach dem Laden können Sie den Grad der Unterstützung für den NX-Schutz sehen:

  • Hardware: [ 0.000000] NX (Execute Disable) Schutz: aktiv
  • Emulation:
    [ 0.000000] Verwendung von x86-Segmentgrenzen zur Annäherung an den NX-Schutz

Wenn Sie keine Erwähnung von NX sehen, überprüfen Sie Ihre BIOS-Einstellungen. Seit Ubuntu 11.04 werden BIOS-Einstellungen für NX vom Kernel ignoriert.

Ubuntu 9.04 und früher
CPU unterstützt NX CPU unterstützt kein NX
NX im BIOS aktiviert NX im BIOS deaktiviert
i386 -386, -generischer Kernel (nicht-PAE) nx wird nicht unterstützt nx wird nicht unterstützt nx wird nicht unterstützt
-Server-Kernel (PAE) echt nx nx wird nicht unterstützt nx wird nicht unterstützt
amd64 beliebiger Kern (PAE) echt nx nx wird nicht unterstützt nx wird nicht unterstützt

Verwenden Sie test-kernel-security.py-Tests.

Schützen von /proc/$pid/maps

Wenn ASLR ausgeführt wird, werden aktuelle Prozessspeicherzuordnungen für einen Angreifer sehr wertvoll. Die Zuordnungsdatei ist nur für den Prozess selbst und den Eigentümer des Prozesses lesbar.

Verfügbar seit Kernel 2.6.22.

Verwenden Sie test-kernel-security.py-Tests.

Grenzwerte für symbolische Links

Die häufigste Art, diesen Fehler auszunutzen, besteht darin, Root dazu zu zwingen, einen von einem Angreifer erstellten symbolischen Link zu verwenden, um eine böswillige Aktion als Root auszuführen.

Ab Ubuntu 10.10 können Symlinks in Verzeichnissen wie /tmp nicht durchlaufen werden, es sei denn, der "Follower" und der Besitzer des Verzeichnisses sind mit dem Besitzer des Symlinks identisch.

Dieser Mechanismus wird durch den Yama-Mechanismus /proc/sys/kernel/yama/protected_sticky_symlinks gesteuert. Yama wird von Canonical entwickelt.

Verwenden Sie test-kernel-security.py-Tests.

Beschränkungen für harte Links

Wenn sich die Verzeichnisse /etc/ und /home/ auf derselben Partition befinden, kann ein normaler Benutzer einen festen Link zur Passwort-Hash-Datei /etc/shadow in seinem Home-Ordner erstellen. Wenn eine bestimmte Datei für keinen Benutzer lesbar oder beschreibbar ist, hat der harte Link zu dieser Datei natürlich dieselben Berechtigungen und steht daher auch diesem Benutzer nicht zur Verfügung. Mithilfe von Hardlinks kann ein Angreifer eine solche Datei jedoch an eine Anwendung "schieben", die über Zugriffsrechte verfügt.

Mit Yama können Sie diesen Angriff blockieren, indem Sie die Erstellung harter Links durch Benutzer verhindern, die keine Zugriffsrechte auf die Quelldateien haben.

Das Verhalten wird von /proc/sys/kernel/yama/protected_nonaccess_hardlinks Yama gesteuert.

Ptrace-Bereich

Ohne die Verwendung des entsprechenden Yama-Schutzes kann jeder Prozess mit dem CAP_SYS_PTRACE-Privileg auf den Speicher aller Prozesse mit derselben UID zugreifen. Bei Verwendung von Yama ist es möglich, den Zugriffsbereich nur auf den Speicher zu beschränken, der den Nachkommen eines solchen gehört Verfahren.

In Ubuntu 10.10 und höher können Benutzer Prozesse nicht mit ptrace debuggen, es sei denn, sie sind Nachkommen davon.

Das Verhalten wird von /proc/sys/kernel/yama/ptrace_scope Yama gesteuert.

Verwenden Sie test-kernel-security.py-Tests.

Härten des Kernels

Kernel-Verteidigung aktiviert, um Angriffe zu erschweren.

0-Adressenschutz

Da der Kernel und der Benutzerbereich virtuelle Speicheradressen gemeinsam nutzen, muss der „NULL“-Speicher geschützt werden und der „Benutzer“-Speicher kann nicht bei Adresse 0 beginnen, wodurch Dereferenzierungen von Kerneladressen verhindert werden – ein „NULL-Dereferenzierungs“-Angriff.

Der Schutz ist seit Kernel 2.6.22 über den Sysctl-Parameter „mmap_min_addr“ verfügbar. Ab Ubuntu 9.04 ist mmap_min_addr in den Kernel eingebaut - Adresse 64k auf x86, 32k auf ARM.

Verwenden Sie test-kernel-security.py-Tests.

Schützen von /dev/mem

Einige Anwendungen, wie z. B. Xorg, erfordern direkten Zugriff auf den physischen Speicher im Benutzerbereich. Die spezielle /dev/mem-Datei bietet diesen Zugriff.

In der Vergangenheit war es möglich, den Kernel-Speicher über diese Datei anzuzeigen und zu ändern, wenn ein Angreifer Root-Zugriff erlangte.

Die Option CONFIG_STRICT_DEVMEM wurde eingeführt, um solche Versuche zu blockieren (ursprünglich hieß die Option CONFIG_NONPROMISC_DEVMEM).

Verwenden Sie test-kernel-security.py-Tests.

Deaktiviert /dev/kmem

Für einen modernen Benutzer ist /dev/kmem nicht relevant, da es von Angreifern hauptsächlich zum Herunterladen von Rootkits verwendet wurde.

CONFIG_DEVKMEM ist jetzt auf "n" gesetzt.

Die Datei /dev/kmem ist in Versionen von Ubuntu 8.04 LTS bis Ubuntu 9.04 vorhanden, wurde jedoch mit nichts im Kernel verknüpft und wird nicht verwendet.

Verwenden Sie test-kernel-security.py-Tests.

Blockieren des Ladens des Moduls

In Ubuntu 8.04 LTS und früher war es möglich, das Feature CAP_SYS_MODULES zu entfernen und so zu verhindern, dass neue Kernel-Module geladen werden.

Dies war eine weitere Schutzebene, um Rootkits nicht beim Start eines kompromittierten Systems herunterzuladen.

In Kernel 2.6.25 (Ubuntu 8.10) ist diese Funktionalität weg. Ab Ubuntu 9.10 ist es nun möglich, Module wieder zu deaktivieren, indem /proc/sys/kernel/modules_disabled auf "1" gesetzt wird.

Verwenden Sie test-kernel-security.py-Tests.

Nur-Lese-Datenabschnitt

Das Markieren des Kerneldatenabschnitts als schreibgeschützt stellt sicher, dass Änderungen blockiert werden. Dies trägt zum Schutz vor einigen Rootkits bei. Aktiviert über die Option CONFIG_DEBUG_RODATA.

Verwenden Sie test-kernel-security.py-Tests.

Kernel-Stack-Schutz

Neben dem Schutz von ELF-Programmen im User Space kann der Kernel seinen internen Stack über die Option CONFIG_CC_STACKPROTECTOR schützen.

Verwenden Sie test-kernel-security.py-Tests.

RO/NX-Modul

Dieses Feature erweitert CONFIG_DEBUG_RODATA um Beschränkungen für geladene Kernel-Module. Dies hilft, Exploits zu widerstehen. Aktiviert über den Parameter CONFIG_DEBUG_MODULE_RONX.

Verwenden Sie test-kernel-security.py-Tests.

Einschränkung der Anzeige von Kerneladressen

Wenn Angreifer versuchen, mithilfe von Kernel-Schwachstellen einen Exploit zu entwickeln, der überall funktioniert, müssen sie die Position interner Kernel-Strukturen kennen.

Kernel-Adressen sind als wichtige Informationen für normale Benutzer nicht zugänglich.

Ab Ubuntu 11.04 ist /proc/sys/kernel/kptr_restrict auf „1“ gesetzt und blockiert Lecks von Kernel-Adressinformationen.

Außerdem werden verschiedene Dateien und Verzeichnisse von root schreibgeschützt gemacht.
/boot/vmlinuz*, /boot/System.map*, /sys/kernel/debug/, /proc/slabinfo

Verwenden Sie test-kernel-security.py-Tests.

Schwarze Liste seltener Protokolle

Normalerweise erlaubt der Kernel, dass alle Netzwerkprotokolle automatisch bei Bedarf über MODULE_ALIAS_NETPROTO(PF_...)-Makros geladen werden.

Da viele dieser Protokolle veraltet, selten und für den durchschnittlichen Ubuntu-Benutzer von geringem Nutzen sind und möglicherweise unbekannte Schwachstellen enthalten, wurden sie seit Ubuntu 11.04 auf die schwarze Liste gesetzt.

Auf der schwarzen Liste: ax25, netrom, x25, rose, decnet, econet, rds und af_802154.

Wenn eines dieser Protokolle benötigt wird, können sie über modprobe oder durch Bearbeiten von /etc/modprobe.d/blacklist-rare-network.conf geladen werden.

Verwenden Sie test-kernel-security.py-Tests.

Systemaufruffilterung

Programme können Kernel-Aufrufe mit seccomp_filter filtern.

Dies geschieht in Containern oder Sandboxes, um potenziell nicht vertrauenswürdige Software weiter einzuschränken.

Verwenden Sie test-kernel-security.py-Tests.

Ergebnis

Nach dem Lesen ist das klar Canonical nimmt Ubuntu-Sicherheit ernst. Zwei Projekte, AppArmor und Yama, sind seit langem mit Ubuntu verbunden und tragen zur Verbesserung der Sicherheit bei. Ubuntu öffnet standardmäßig keine unnötigen Ports-Türen im Netzwerk und wartet nicht auf Abenteuerverbindungen auf dem Kopf. Für wichtige Programme, die mit dem Netzwerk zusammenarbeiten, wurden AppArmor-Profile erstellt, die Programme in Schach halten.

Ihr Computer ist mit Ubuntu sicher!

Installation und Konfiguration von Administrationstools, Netzwerkkonfiguration

Nachdem wir das Basis-Betriebssystem Ubuntu14.04 aus der Minimal-Distribution installiert haben, gilt es zunächst zu überlegen, wie man es komfortabel verwaltet. Grundsätzlich dient ssh/telnet dazu, *nix-basierte Server zu konfigurieren und zu verwalten, aber neuerdings scheinen auch webbasierte Tools dafür recht geeignet zu sein. Ich verwende kostenlose Lösungen webmin Und Ajenti. Beide Panels verdienen Aufmerksamkeit, und trotz der Tatsache, dass sie alles einzeln machen können, ist jedes von ihnen besser für etwas, also ist es besser, beide zu haben. Ich sollte anmerken, dass auf Kampfproduktionsservern solche Lösungen aus Sicherheitsgründen nicht installiert werden. Doch je mehr Kontrollsysteme vorhanden sind, desto wahrscheinlicher ist es, eine Schwachstelle darin zu finden. Wenn Ihre Sicherheitsanforderungen also auf der Stufe "Paranoia" liegen, akzeptieren Sie einfach die Tatsache, dass Sie nur über ssh (über die Konsole) mit dem Server arbeiten müssen.

Netzwerkeinrichtung in Ubuntu 14.04

Um mit unserem Server über das Netzwerk zu kommunizieren, müssen Sie ihn zunächst konfigurieren. Standardmäßig wurde das Netzwerk während der Installation automatisch konfiguriert, und wenn das Installationsprogramm einen DHCP-Server im Netzwerk gefunden hat, hat es höchstwahrscheinlich bereits alles nach Bedarf konfiguriert. Wenn kein DHCP-Server im Netzwerk vorhanden ist, hat der Installer trotzdem alles auf der Grundlage der Abfrage des Routers konfiguriert, mit dem die Netzwerkkarte verbunden ist. Um zu sehen, wie das Netzwerk aktuell konfiguriert ist, geben Sie einfach im Terminal ein:

Was sehen wir hier:

Wir haben zwei Netzwerkschnittstellen eth0 und lo, wobei lo die „Loopback-Schnittstelle“ und eth0 der Name unserer Netzwerkkarte ist, und wenn lo die unveränderte Netzwerkschnittstelle ist, dann können sich alle anderen Schnittstellen im Namen unterscheiden. Wenn zwei Netzwerkkarten in der Systemeinheit installiert sind, sehen ihre Schnittstellen höchstwahrscheinlich wie eth0 und eth1 aus und so weiter. Das Aussehen des Schnittstellennamens hängt von der Art der Netzwerkkarte ab. Wenn die Netzwerkkarte beispielsweise mit dem WiFi-Protokoll arbeitet, trägt sie höchstwahrscheinlich den Namen wlan0.

Um das Netzwerk zu konfigurieren, bearbeiten Sie die folgende Datei:

sudo nano /etc/network/interfaces

Bringen wir es in diese Form:

iface eth0 inet statisch
Adresse 192.168.0.184
Netzmaske 255.255.255.0
Gateway 192.168.0.1
auto eth0
DNS-Nameserver 8.8.8.8 8.8.4.4

Wo: iface eth0 inet statisch- zeigt an, dass sich die Schnittstelle (iface eth0) im Bereich der IPv4 (inet)-Adressen mit einer statischen IP (statisch) befindet;
Adresse 192.168.0.184- zeigt an, dass die IP-Adresse (Adresse) unserer Netzwerkkarte 192.168.0.184 ist;
Netzmaske 255.255.255.0- zeigt an, dass unsere Subnetzmaske (Netzmaske) 255.255.255.0 ist;
Gateway 192.168.0.1- Standard-Gateway-Adresse 192.168.0.254;
auto eth0- zeigt dem System an, dass die eth0-Schnittstelle automatisch aktiviert werden soll, wenn das System mit den oben genannten Parametern bootet.
eth0— Name der verbundenen Schnittstelle. Die Liste der Schnittstellen kann durch Eingabe von ifconfig angezeigt werden
DNS-Nameserver- DNS-Server werden mit Leerzeichen geschrieben.

Wie Sie in meinem Fall sehen können, habe ich mich entschieden, eine statische IP 192.168.0.184 festzulegen

starten Sie den Server mit dem Befehl neu

Wir pingen unseren Server aus dem Netzwerk an und stellen sicher, dass er sichtbar ist. Jetzt ist es an der Zeit, eine Verbindung mit ihm über SSH herzustellen, dazu werden wir tatsächlich den ssh-Server installieren:

sudo apt-get install ssh

Jetzt können Sie sich beispielsweise über das Programm putty mit unserem Server per ssh verbinden, jetzt können Sie Befehle nicht manuell eingeben, sondern indem Sie die von uns benötigten Zeilen kopieren und in den ssh-Client einfügen, da dies in Zukunft die Konfiguration überraschend erleichtert, wie Sie werden bald selbst sehen:

ALLE BEFEHLE UNTER DIESER ZEILE WERDEN IM NAMEN DES SUPERUSERS EINGEGEBEN, und um in den Superuser-Modus zu gelangen, müssen Sie Folgendes eingeben:

webmin installieren

echo "deb https://download.webmin.com/download/repository sarge contrib" >> /etc/apt/sources.list echo "deb https://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib" >> /etc/apt/sources.list wget https://www.webmin.com/jcameron-key.asc apt-key add jcameron-key.asc apt-get update apt-get install -y webmin

Echo "deb https://download.webmin.com/download/repository Sarge contrib">>

Echo "deb https://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib">> /etc/apt/sources. Liste

wgethttps : //www.webmin.com/jcameron-key.asc

apt-key jcameron-key hinzufügen. aufsteigend

apt-get update

apt - Get install - und webmin

Alle! 6 nacheinander eingegebene Befehle und Webmin ist installiert und konfiguriert. Jetzt können Sie den Browser unter der Adresse durchlaufen:

https://192.168.0.184:10000

Standardmäßig sieht Webmin minimalistisch aus, die Oberfläche wird standardmäßig auf Englisch angezeigt, aber alles ist anpassbar!

Wir machen es so:

Es stellt sich so heraus:

mob_info