Hardening ist der Prozess, Schwachstellen zu reduzieren und ein System vor möglichen Angriffspunkten zu schützen. Das Reduzieren von Sicherheitslücken umfasst das Entfernen unnötiger Dienste, Benutzernamen und Logins sowie das Deaktivieren unnötiger Ports. In diesem Artikel zeigen wir Ihnen, wie Sie einen Ubuntu-Server härten können.

Bedarf

Ubuntu 14.04 LTS Server mit Open SSH installiert.

Erste Schritte: Aktualisieren Sie das System

Das System muss nach der Installation eines Betriebssystems auf dem neuesten Stand gehalten werden. Dies reduziert bekannte Sicherheitslücken in Ihrem System.

Für Ubuntu 14.04 führe folgendes aus:

 sudo apt-get Aktualisierung sudo apt-get Aktualisierung sudo apt-get Autoremove sudo apt-get autoclean 

Aktivieren Sie automatische Sicherheitsupdates

Das Aktivieren automatischer Updates kann sehr wichtig sein, um Ihren Server zu sichern. Um die "unbeaufsichtigten Upgrades" zu installieren, führen Sie sie aus

 sudo apt-get installieren unbeaufsichtigte Upgrades 

Führen Sie den folgenden Befehl aus, um es zu aktivieren:

 sudo dpkg-reconfigure - lasst unbeaufsichtigte Upgrades laufen 

Dadurch wird die unten gezeigte Datei "/etc/apt/apt.conf.d/20auto-upgrades" erstellt.

 APT :: Periodic :: Update-Paket-Listen "1"; APT :: Periodic :: Unattended-Upgrade "1"; 

Erstelle "Schattenbenutzer" mit sudo-Befugnissen

Die Verwendung eines "Schattenbenutzers" anstelle des Root-Accounts ist aus Sicherheitsgründen erforderlich. Sie können einen Benutzer erstellen, der für andere Benutzer nicht leicht zu erraten ist. In diesem Tutorial verwenden wir "maketech111" als Benutzernamen.

Führen Sie den folgenden Befehl aus, um einen Benutzer zu erstellen:

 sudo useradd -d / home / maketech111 -s / bin / bash -m maketech111 

Führen Sie den folgenden Befehl aus, um dem Benutzer den sudo-Zugriff zu gewähren:

 sudo usermod -a -G Sudo maketech111 

Führen Sie den folgenden Befehl aus, um ein Kennwort festzulegen:

 sudo passwd maketech111 

Hinweis: Stellen Sie sicher, dass Ihr Passwort mindestens acht Zeichen lang ist und eine komplexe Kombination aus Zahlen, Buchstaben und Satzzeichen enthält.

Um die Eingabeaufforderung für Sudo zu entfernen, bearbeiten Sie die sudoers-Datei.

 sudo nano / etc / sudoers 

Hinzufügen / bearbeiten wie unten beschrieben.

 maketech111 ALL = (ALLE) NOPASSWD: ALLE 

Speichern Sie die Datei und beenden Sie sie.

Deaktivieren Sie das root-Konto

Das Deaktivieren des Root-Accounts ist aus Sicherheitsgründen erforderlich.

Verwenden Sie den folgenden Befehl, um das root-Konto zu deaktivieren:

 sudo passwd -l root 

Führen Sie den folgenden Befehl aus, wenn Sie das Konto erneut aktivieren müssen:

 sudo passwd -u root 

Fügen Sie eine SWAP-Partition hinzu

Einige Ubuntu-Server sind nicht mit SWAP konfiguriert. SWAP wird verwendet, wenn der gesamte physische Speicher (RAM) voll ist.

Führen Sie den folgenden Befehl aus, um nach SWAP-Speicherplatz zu suchen:

 sudo swapon -s 

Wenn es keine SWAP-Datei gibt, sollten Sie eine der folgenden Ausgaben erhalten.

 Dateiname Typ Größe Verwendet Priorität 

Um die 4-GB-SWAP-Datei zu erstellen, müssen Sie den Befehl "dd" verwenden.

 sudo dd if = / dev / zero von = / swapfile bs = 4M count = 1000 

Führen Sie den folgenden Befehl aus, um die SWAP-Datei einzurichten:

 sudo mkswap / swapfile 

Um die Auslagerungsdatei zu aktivieren, führen Sie sie aus

 sudo swapon / swapfile sudo swapon -s 

Dies wird wie folgt ausgegeben:

 Dateiname Typ Größe Verwendet Priorität / Auslagerungsdatei 4096000 0 -1 

Um es dauerhaft zu aktivieren, bearbeiten Sie die Datei "/ etc / fstab".

 sudo nano / etc / fstab 

Fügen Sie die folgende Zeile hinzu:

 / swapfile swap swap defaults 0 0 

Verbessere SWAP-Leistung

Stellen Sie den richtigen Swappiness-Wert ein, um die Gesamtleistung des Systems zu verbessern.

Sie können dies mit dem folgenden Befehl tun:

 sudo echo 0 >> / proc / system / vm / swappiness sudo echo vm.swappiness = 0 >> /etc/sysctl.conf 

Starten Sie das System neu, um zu überprüfen, ob SWAP ordnungsgemäß aktiviert wird.

Deaktivieren Sie IPv6

Es wird empfohlen, IPv6 zu deaktivieren, da Probleme mit der Internetverbindung langsam sind.

Um IPv6 zu deaktivieren, bearbeiten Sie die Datei "/etc/sysctl.conf".

 sudo nano /etc/sysctl.conf 

Bearbeiten Sie wie unten beschrieben:

 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 

Um die Konfiguration neu zu laden, führen Sie

 sudo sysctl -p 

Deaktivieren Sie IRQBALANCE

IRQBALANCE wird verwendet, um Hardware-Interrupts auf mehrere CPUs zu verteilen, um die Systemleistung zu erhöhen. Es wird empfohlen, IRQBALANCE zu deaktivieren, um Hardware-Interrupts in Ihren Threads zu vermeiden.

Um IRQBALANCE zu deaktivieren, editiere "/ etc / default / irqbalance"

 sudo nano / etc / default / irqbalance 

und ändern Sie den Wert ENABLED auf 0:

 AKTIVIERT = 0 

Fix OpenSSL Heartbleed Bug

Das Heartbleed ist eine ernsthafte Schwachstelle in OpenSSL. Es ermöglicht einem Remotebenutzer, den Speicher in bis zu 64 KByte zu verlieren. Hacker können dann die privaten Schlüssel abrufen, um Daten wie den Benutzernamen und die Passwörter des Benutzers zu entschlüsseln.

Der Heartbleed-Fehler wurde in OpenSSL 1.0.1 gefunden und ist in folgenden Versionen vorhanden:

  • 1.0.1
  • 1.0.1a
  • 1.0.1b
  • 1.0.1c
  • 1.0.1d
  • 1.0.1e
  • 1.0.1f

Führen Sie die folgenden Befehle aus, um die Version von OpenSSL in Ihrem System zu überprüfen:

 sudo openssl-Version-v sudo openssl-Version -b 

Dies wird etwas wie folgt ausgeben:

 OpenSSL 1.0.1 10. März 2012 gebaut am: Mi Jan 2 18:45:51 UTC 2015 

Wenn das Datum älter ist als "Mo Apr 7 20:33:29 UTC 2014" und die Version "1.0.1" lautet, ist Ihr System anfällig für den Heartbleed-Fehler.

Um diesen Fehler zu beheben, aktualisieren Sie OpenSSL auf die neueste Version und führen Sie es aus

 sudo apt-get Aktualisierung sudo apt-get Aktualisierung openssl libssl-dev sudo apt-Cache-Richtlinie openssl libssl-dev 

Jetzt überprüfe die Version und renne

 sudo openssl-Version -b 

Dies wird etwas wie folgt ausgeben:

 gebaut am: Mo Apr 7 20:31:55 UTC 2014 

Sichern Sie die Konsole, den gemeinsamen Speicher, / tmp und / var / tmp

Sichern Sie die Konsole

Standardmäßig sind viele Terminals in Ihrem System aktiviert. Sie können nur ein Terminal zulassen und die anderen Terminals deaktivieren.

Um nur "tty1" zuzulassen und andere Terminals zu deaktivieren, bearbeiten Sie die Datei "/ etc / securetty".

 sudo nano / etc / securetty 

Hinzufügen / Bearbeiten der folgenden Zeilen:

 tty1 # tty2 # tty3 # tty4 # usw. 

Um die Datei "/ etc / securetty" zu sichern, ändern Sie die Berechtigung der Datei und führen Sie die folgenden Befehle aus:

 sudo chown root: Wurzel / etc / securetty sudo chmod 0600 / etc / securetty 

Sicherer gemeinsamer Speicher

Jeder Benutzer kann gemeinsam genutzten Speicher verwenden, um einen laufenden Dienst wie Apache oder httpd anzugreifen. Standardmäßig ist Shared Memory Read / Write mit Ausführungsberechtigung eingehängt.

Um die Sicherheit zu erhöhen, bearbeiten Sie die Datei "/ etc / fstab".

 sudo nano / etc / fstab 

Fügen Sie die folgende Zeile hinzu:

 tmpfs / run / shm tmpfs ro, noexec, nosuid 0 0 

Um die Änderungen ohne Neustart durchzuführen, können Sie ausführen

 sudo mount -a 

Sichern Sie / tmp und / var / tmp

Temporäre Verzeichnisse wie / tmp, / var / tmp und / dev / shm öffnen die Tür für Angreifer, um Platz für die Ausführung von Skripts und bösartigen ausführbaren Dateien zu schaffen.

Sicher / tmp-Ordner

Erstellen Sie eine 1 GB Dateisystemdatei für die / tmp-Partition.

 sudo dd if = / dev / zero von = / usr / tmpDSK bs = 1024 Anzahl = 1024000 sudo mkfs.ext4 / usr / tmpDSK 

Erstellen Sie eine Sicherungskopie des aktuellen / tmp-Ordners:

 sudo cp -avr / tmp / tmpbackup 

Mounten Sie die neue / tmp-Partition und legen Sie die richtigen Berechtigungen fest.

 sudo mount -t tmpfs -o Schleife, noexec, nosuid, rw / usr / tmpDSK / tmp sudo chmod 1777 / tmp 

Kopieren Sie die Daten aus dem Sicherungsordner, und entfernen Sie den Sicherungsordner.

 sudo cp -avr / tmpbackup / * / tmp / sudo rm -rf / tmpbackup 

Setze das / tmp in die fbtab.

 sudo nano / etc / fstab 

Fügen Sie die folgende Zeile hinzu:

 / usr / tmpDSK / tmp tmpfs Schleife, nosuid, noexec, rw 0 0 

Testen Sie Ihren fstab-Eintrag.

 sudo mount -a 

Sicher / var / tmp:

Einige Software verwendet diesen Ordner als temporären Ordner, daher sollten wir diesen auch sichern.

Um / var / tmp zu sichern, erstellen Sie einen symbolischen Link, der / var / tmp auf / tmp verweist.

 sudo mv / var / tmp / var / tmpold sudo ln -s / tmp / var / tmp sudo cp -avr / var / tmpold / * / tmp / 

Legen Sie Sicherheitsbeschränkungen fest und deaktivieren Sie unerwünschte Dienste

Sicherheitsgrenzwerte festlegen

Um Ihr System vor Gabelbombenangriffen zu schützen, sollten Sie ein Prozesslimit für Ihre Benutzer einrichten.

Um dies einzurichten, bearbeiten Sie die Datei "/etc/security/limits.conf",

 sudo nano /etc/security/limits.conf 

und bearbeite die folgende Zeile:

 user1 hart nproc 100 @ group1 hart nproc 20 

Dadurch wird verhindert, dass Benutzer einer bestimmten Gruppe maximal zwanzig Prozesse haben und die Anzahl der Prozesse auf hundert zu 100 maximiert wird.

Deaktivieren Sie unnötige Dienste

Viele Dienste in Ubuntu benötigen Speicherplatz und Speicherplatz, den Sie möglicherweise benötigen. Das Deaktivieren oder Entfernen nicht benötigter Dienste kann die Systemleistung insgesamt verbessern.

Führen Sie den folgenden Befehl aus, um herauszufinden, welche Dienste gerade ausgeführt werden:

 sudo initctl Liste | Grep läuft 

Sie können es deaktivieren, indem Sie diesen Befehl ausführen.

 sudo update-rc.d -f Dienstname remove sudo apt-get Löschen service_name 

Fix Shellshock Bash Schwachstelle:

Die Shellshock-Schwachstelle ermöglicht es Hackern, Bash-Umgebungsvariablen zuzuweisen und unberechtigten Zugriff auf das System zu erlangen. Diese Sicherheitsanfälligkeit ist sehr einfach zu nutzen.

Führen Sie den folgenden Befehl aus, um die Systemanfälligkeit zu überprüfen:

 sudo env i = '() {:;}; echo Ihr System ist Bash vulnerable 'bash -c "echo Bash Schwachstellen-Test" 

Wenn Sie die folgende Ausgabe sehen, bedeutet dies, dass Ihr System anfällig ist.

 Ihr System ist Bash vulnerable Bash Vulnerability Test 

Führen Sie den folgenden Befehl aus, um diese Sicherheitsanfälligkeit zu beheben:

 sudo apt-get Aktualisierung; sudo apt-get install --only-upgrade bash 

Wenn Sie den Befehl erneut ausführen, sehen Sie Folgendes:

 bash: warning: VAR: Ignoriere Funktionsdefinitionsversuch bash: Fehler beim Import der Funktionsdefinition für `VAR 'Bash Vulnerability Test 

Fazit:

Hier haben wir grundlegende Dinge erklärt, die Sie tun könnten, um Ubuntu zu härten. Sie sollten nun über ausreichende Kenntnisse der grundlegenden Sicherheitspraktiken verfügen, die Sie auf Ihrem Ubuntu-Server implementieren können. Ich hoffe, dass dieser Beitrag für Sie nützlich sein wird.

Referenz : Ubuntu-Härtungshandbuch