Hardening Ubuntu 14.04 Server
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