Erstes Server -Setup mit Ubuntu 20.04 /18.04 und 16.04

Erstes Server -Setup mit Ubuntu 20.04 /18.04 und 16.04

In diesem Tutorial führen Sie die ersten grundlegenden Schritte an, die Sie für eine neue installiert konfigurieren müssen Ubuntu Server, um die Sicherheit und Zuverlässigkeit für Ihren Server zu erhöhen.

Die in diesem Thema erläuterten Konfigurationen sind für alle Ubuntu Server -Systeme in Bezug auf die zugrunde liegende OS -Plattform nahezu gleich, ob Ubuntu ist auf einem bare Metallserver, in einer privaten virtuellen Maschine oder einer virtuellen Maschine in einer VPS Public Cloud installiert.

Anforderungen

  • Ubuntu 20.04 Serverinstallation
  • Ubuntu 18.04 Serverinstallation
  • Ubuntu 16.04 Serverinstallation

Ubuntu -System aktualisieren und aktualisieren und aktualisieren und aktualisieren

Der erste Schritt, den Sie bei der neuen Installation von von der neuen Installation erledigen müssen Ubuntu Server oder eine neue bereitgestellte Ubuntu VPS sicherstellt.

So aktualisieren Sie den Ubuntu -Server, um sich bei der Konsole von Server mit einem Konto mit Root -Berechtigungen oder direkt als Root anzumelden und die folgenden Befehle auszuführen, um den Aktualisierungs- und Upgrade -Prozess durchzuführen.

$ sudo APT Update 
Ubuntu Server aktualisieren

Nach dem Ausführen des Aktualisierungsbefehls sehen Sie die Anzahl der verfügbaren Pakete für den Upgrade -Prozess und den Befehl zum Auflisten der Pakete Upgrades.

$ sudo APT -Liste -upgradierbar 
Listen Sie die Ubuntu -Pakete ein

Nachdem Sie die Liste der zum Upgrade verfügbaren Pakete konsultiert haben, geben Sie den folgenden Befehl aus, um den System -Upgrade -Prozess zu starten.

$ sudo APT -Upgrade 
Upgrade von Ubuntu Server -Paketen aktualisieren

Um alle lokal heruntergeladenen DEB-Pakete und alle anderen APT-Get-Caches zu entfernen, führen Sie das folgende Befehl aus.

$ sudo Apt Autoremove $ sudo Apt sauber 
Autoremove -APT -Pakete und Cache

Erstellen Sie ein neues Konto in Ubuntu

Standardmäßig ist das Stammkonto als Sicherheitsmaßnahme in Ubuntu vollständig deaktiviert. Um ein neues Konto im System zu erstellen.

Dieses neue Konto wird mit Root Powers -Privilegien über den Befehl sudo gewährt und wird verwendet, um Verwaltungsaufgaben im System auszuführen. Stellen Sie sicher, dass Sie ein starkes Passwort einrichten, um dieses Konto zu schützen. Folge dem Benutzer hinzufügen Aufforderung zur Einrichtung der Benutzerdetails und des Kennworts.

$ sudo adduser ubuntu_user 
Benutzer in Ubuntu erstellen

Wenn dieses Konto einem anderen Systemadministrator zugewiesen wird, können Sie den Benutzer dazu zwingen, sein Passwort beim ersten Anmelde zu ändern, indem Sie den folgenden Befehl ausgeben.

$ sudo chage -d0 ubuntu_user 

Der neue zusätzliche Benutzer kann vorerst keine Verwaltungsaufgaben über Sudo Utility ausführen. Um dieses neue Benutzerkonto mit administrativen Berechtigungen zu gewähren, sollten Sie den Benutzer hinzufügensudoSystemgruppe durch Ausgabe des folgenden Befehls.

$ sudo usermod -a -g sudo ubuntu_user 

Standardmäßig alle Benutzer, die zur “gehören“sudoGruppe dürfen Befehle mit Root -Berechtigungen über Sudo -Dienstprogramm ausführen. Der Befehl sudo muss verwendet werden, bevor der für die Ausführung benötigte Befehl geschrieben wird, wie im folgenden Beispiel gezeigt.

$ sudo APT installieren Sie Paket_Name 

Testen Sie, ob der neue Benutzer die Stammberechtigungen erteilt hat, indem Sie sich beim System anmelden und die ausführen APT -Update Befehl mit sudo vorangestellt.

$ su - Ubuntu_User $ sudo APT Update 
Überprüfen Sie den neuen Benutzer

Konfigurieren Sie das System -Hostname in Ubuntu

Normalerweise wird der Maschinenhostname während des Systeminstallationsprozesses oder wenn das VPS in der Cloud erstellt wird. Sie sollten jedoch den Namen Ihrer Maschine ändern, um das Ziel Ihres Servers besser widerzuspiegeln oder den endgültigen Zweck besser zu beschreiben.

In einem großen Unternehmen werden Maschinen nach komplexen Namensschemata benannt. Wenn Ihr Ubuntu -Computer beispielsweise einen Mailserver betreibt, sollte der Name des Geräts diese Tatsache widerspiegeln und Sie können den Maschinen -Hostnamen als einrichten MX01.Mydomain.Lan, Zum Beispiel.

Um Details zu Ihrem Maschinen -Hostnamen anzuzeigen, führen Sie den folgenden Befehl aus.

$ hostnamectl 

Um den Namen Ihrer Maschine zu ändern, haben Sie das Problem HOSTNAMECTL -Befehl Mit dem neuen Namen konfigurieren Sie für Ihre Maschine, wie im folgenden Auszug dargestellt.

$ sudo hostnamectl set-hostname tecmint 

Überprüfen Sie den neuen Namen Ihres Systems mit einem der folgenden Befehle.

$ hostname $ hostname -s $ cat /etc /hostname 
Stellen Sie den Hostnamen auf Ubuntu Server fest

Setup SSH mit öffentlicher Schlüsselauthentifizierung in Ubuntu

Um den Sicherheitsgrad eines Ubuntu-Servers zu erhöhen, sollten Sie die SSH-Authentifizierung der öffentlichen Schlüssel für ein lokales Konto einrichten. Um das SSH -Schlüsselpaar, der öffentliche und private Schlüssel zu generieren, mit einer Schlüssellänge wie 2048 Bits den folgenden Befehl in Ihrer Serverkonsole ausführen.

Stellen Sie sicher, dass Sie sich beim System mit dem Benutzer angemeldet haben.

$ su -ubuntu_user $ ssh -keygen -t RSA -B 2048 
Setup SSH -Tasten in Ubuntu einrichten

Während der Schlüssel generiert wird, werden Sie aufgefordert, hinzuzufügen Passphrase Um den Schlüssel zu sichern. Sie können eine starke Passphrase eingeben oder die Passphrase leer lassen, wenn Sie Aufgaben über SSH -Server automatisieren möchten.

Nachdem der SSH -Schlüssel generiert wurde, können Sie den öffentlichen Schlüssel auf einen Remote -Server kopieren, indem Sie das folgende Befehl ausführen. Um den öffentlichen Schlüssel auf dem Remote -SSH -Server zu installieren.

$ ssh-copy-id [E-Mail geschützt] _server 
Kopieren Sie den SSH -Schlüssel auf Remote -Server

Sie sollten in der Lage sein, sich automatisch über SSH an den Remote -Server anzumelden, indem Sie die öffentliche Schlüsselauthentifizierungsmethode. Sie müssen das Remote -Benutzerkennwort nicht hinzufügen.

Nachdem Sie sich am Remote -Server angemeldet haben, können Sie mit der Ausführung von Befehlen wie z W Befehl Um SSH Remote in den Benutzern angemeldet zu werden, wie im folgenden Screenshot gezeigt.

Geben Sie die Konsole ein, um die Remote -SSH -Sitzung zu schließen.

$ ssh [E -Mail geschützt] _server $ w $ exit 
Überprüfen Sie die SSH -Passwort -Login

Um den Inhalt Ihres öffentlichen SSH -Schlüssels anzuzeigen, um den Schlüssel an einem Remote -SSH -Server manuell zu installieren, geben Sie den folgenden Befehl aus.

$ cat ~/.ssh/id_rsa.Pub 
SSH -Schlüssel anzeigen

Sichere SSH -Server in Ubuntu

Um den SSH -Daemon zu sichern, sollten Sie die Standard -SSH -Portnummer von der SSH -Portnummer ändern 22 zu einem zufälligen Port, höher als 1024, und nicht den Remote -SSH -Zugriff auf das Root -Konto über Kennwort oder Schlüssel nicht zulassen, indem Sie die Hauptkonfigurationsdatei SSH Server öffnen und die folgenden Änderungen vornehmen.

$ sudo vi/etc/ssh/sshd_config 

Suchen Sie zunächst die kommentierte Zeile #Port22 und fügen Sie eine neue Linie darunter hinzu (ersetzen Sie die Höranschlussnummer entsprechend):

Port 2345 

Schließen Sie die Datei nicht, scrollen Sie nach unten und suchen Sie nach der Zeile #Permitrootlogin Ja, Überzeugen Sie die Linie, indem Sie die entfernen # Zeichen (Hashtag) vom Beginn der Zeile und modifizieren Sie die Zeile, um wie im folgenden Auszug auszusehen.

Erläuterung Nr 
Sicherer SSH -Service

Starten Sie den SSH -Server anschließend neu, um die neuen Einstellungen anzuwenden und die Konfiguration zu testen, indem Sie versuchen, sich mit dem Stammkonto über die neue Portnummer von einem Remote -Computer auf diesen Server anzumelden. Der Zugriff auf Root -Konto über SSH sollte eingeschränkt werden.

$ sudo systemctl starten sshd neu starten 

Führen Sie auch Netstat aus oder SS -Befehl und filtern Sie die Ausgabe über GREP -Befehl, um die neue Hörportnummer für SSH Server anzuzeigen.

$ sudo ss -tlpn | grep ssh $ sudo netstat -tlpn | Grep Ssh 
Überprüfen Sie den SSH -Port Verwandter Artikel: 7 nützliche SSH -Sicherheitstipps zum Harden OpenSSH Server

Es gibt Situationen, in denen Sie möglicherweise alle Remote -SSH -Verbindungen, die nach einer Zeit der Inaktivität auf Ihren Server eingerichtet wurden, automatisch trennen möchten.

Um diese Funktion zu aktivieren, führen Sie den folgenden Befehl aus, der das hinzugefügt wird Tmout Bash -Variable in Ihr Konto .bashrc Versteckte Datei und zwingt jede SSH-Verbindung, die mit dem Namen des Benutzers hergestellt wurde.

$ echo 'tmout = 300' >> .bashrc 

Führen Sie den Befehl durch, um zu überprüfen, ob die Variable am Ende von korrekt hinzugefügt wurde .bashrc Datei. Alle nachfolgenden SSH -Verbindungen werden nach 5 Minuten Inaktivität von nun an automatisch geschlossen.

$ schwanz .bashrc 

Im folgenden Screenshot wurde die Remote-SSH-Sitzung vom Drupal-Maschine zum Ubuntu-Server über Ubuntu_User-Konto nach 5 Minuten zeitlich und automatisch eingestellt.

Automatische SSH -Sitzungen automatisch abnehmen

Konfigurieren Sie Ubuntu Firewall UFW

Jeder Server benötigt eine gut konfigurierte Firewall, um das System auf Netzwerkebene zu sichern. Ubuntu Server verwendet UFW Anwendung zum Verwalten der Iptables -Regeln auf dem Server.

Überprüfen Sie den Status der UFW -Firewall -Anwendung in Ubuntu, indem Sie die folgenden Befehle ausgeben.

$ sudo systemctl Status UFW $ sudo UFW Status 
Überprüfen Sie den UFW -Firewall -Status

Normalerweise ist der UFW -Firewall -Daemon auf Ubuntu -Server ausgeführt, aber die Regeln werden standardmäßig nicht angewendet. Bevor Sie die UFW -Firewall -Richtlinie in Ihrem System aktivieren, sollten Sie zuerst eine neue Regel hinzufügen, damit SSH -Verkehr über den geänderten SSH -Anschluss durch Firewall passieren kann. Die Regel kann hinzugefügt werden, indem der folgende Befehl ausgeführt wird.

$ sudo ufw erlauben 2345/tcp 

Nachdem Sie SSH -Verkehr zugelassen haben, können Sie die UFW -Firewall -Anwendung mit den folgenden Befehlen aktivieren und überprüfen.

$ sudo ufw aktivieren $ sudo ufw Status 
Öffnen Sie den SSH -Port und überprüfen Sie

Um neue Firewall -Regeln für andere Netzwerkdienste hinzuzufügen, die anschließend auf Ihrem Server installiert sind, z. B. HTTP -Server, einen Mailserver oder andere Netzwerkdienste.

$ sudo UFW Ermöglichen 

Um alle Firewall -Regeln aufzulisten, führen Sie den folgenden Befehl aus.

$ sudo UFW Status wortreich 
Überprüfen Sie die UFW -Firewall -Regeln Verwandter Artikel: So richten Sie die UFW -Firewall auf Ubuntu Server ein

Setzen Sie die Ubuntu -Serverzeit

Führen Sie den Befehl Timedatectl ohne Argument aus.

Um die Zeitzoneneinstellungen Ihres Servers zu ändern, führen Sie zunächst aus Timedatectl -Befehl Mit Listen-TimeZones-Argument, um alle verfügbaren Zeitzonen aufzulisten, und dann die Zeitzone Ihres Systems wie im folgenden Auszug gezeigt festlegen.

$ sudo Timedatectl $ sudo Timedatectl List-TimeZones $ sudo Timedatectl Set-TimeZone Europa/Wien 
Setzen Sie Ubuntu Timezone

Das neue systemd-timesyncd Der systemd -Daemon -Client kann in Ubuntu verwendet werden, um Ihren Server über den Netzwerk eine genaue Zeit zu erhalten und die Zeit mit einem Peer -Server der oberen Zeit zu synchronisieren.

Um diese neue Funktion von SystemD anzuwenden, ändern Sie systemd-timesyncd Dämon -Konfigurationsdatei und fügen Sie die NTP -Anweisungszeile der geografischsten NTP -Server hinzu, wie im folgenden Dateiauszug gezeigt:

$ sudo nano/etc/systemd/timesyncd.Conf 

Fügen Sie die folgende Konfiguration hinzu zu Timesyncd.Conf Datei:

[Zeit] ntp = 0.Schwimmbad.NTP.org 1.Schwimmbad.NTP.org fallbackntp = ntp.Ubuntu.com 
NTP -Zeitkonfiguration

Um Ihre geografisch NTP -Server am nächsten hinzuzufügen, wenden Sie sich unter der folgenden Adresse die Liste der NTP Pool Project Server:.Schwimmbad.NTP.org/en/

Starten Sie anschließend den Systemd Timesync -Daemon neu, um Änderungen widerzuspiegeln und den Dämon -Status durch Ausführen der folgenden Befehle zu überprüfen. Nach dem Neustart beginnt der Daemon mit dem neuen NTP -Server -Peer die Zeit zu synchronisieren.

$ sudo systemctl restart systemd-Timesyncd.Service $ sudo systemctl status systemd-timesyncd.Service 
Start Timesyncd Service

Deaktivieren und entfernen Sie unnötige Dienste in Ubuntu

Um eine Liste aller TCP- und UDP-Netzwerkdienste auf Ihrem Ubuntu-Server zu erhalten, führen Sie die aus ss oder Netstat -Befehl.

$ sudo netstat -tulpn oder $ sudo ss -tulpn 
Listen Sie alle laufenden Dienste auf

Starren mit Ubuntu 16.10 Freigabe, der Standard -DNS -Resolver wird jetzt von gesteuert systemd-aufgelöst Service, wie die Ausgabe von enthüllt Netstat oder SS -Befehle.

Sie sollten auch die überprüfen systemd-aufgelöst Service -Status durch Ausführen des folgenden Befehls.

$ sudo systemctl Status systemd-aufgelöst.Service 
Überprüfen Sie den aufgelösten Status von Systemd

Der systemd-aufgelöst Service bindet an allen aktivierten Netzwerkschnittstellen und hört auf Ports zu 53 Und 5355 TCP Und UDP.

Betrieb Systemaufgelöst Caching DNS -Daemon auf einem Produktionsserver kann aufgrund der zahlreichen Anzahl von DDOS -Angriffen von böswilligen Hackern gegen ungesicherte DNS -Server gefährlich sein.

Um diesen Dienst anzuhalten und zu deaktivieren, führen Sie die folgenden Befehle aus.

$ sudo systemctl stop systemd-aufgelöst $ sudo systemCTL Deaktivieren systemd-aufgelöst 
Deaktivieren Sie systemd -gelöstes Service

Überprüfen Sie, ob der Dienst durch Ausgabe gestoppt und deaktiviert wurde ss oder Netstat -Befehl. Die systemd-aufgelösten Höranschlüsse, 53 und 5355 TCP und UDP, sollten nicht in der Ausgabe von Netstat oder SS-Befehlsausgabe aufgeführt werden.

Sie sollten den Computer auch neu starten, um alle systemd-aufgelösten Daemon-Dienste vollständig zu deaktivieren und den Standard wiederherzustellen /etc/resolv.Conf Datei.

$ sudo ss -tulpn $ sudo netstat -tulpn $ sudo systemctl Neustart 
Überprüfen Sie alle laufenden Dienste

Obwohl Sie einige unerwünschte Netzwerkdienste deaktiviert haben, um auf Ihrem Server auszuführen LXC Prozess und Snapd Service. Diese Dienste können leicht über PS, Top oder erkannt werden Pstree Befehle.

$ sudo ps aux $ sudo top $ sudo pstree 
Liste laufende Dienste im Baumformat

Wenn Sie nicht die Virtualisierung von LXC Container auf Ihrem Server verwenden oder mit der Installation von Software über Snap Paket Manager beginnen, sollten Sie diese Dienste vollständig deaktivieren und entfernen, indem Sie die folgenden Befehle ausgeben.

$ sudo APT Autoremove-Purge LXC-Common LXCFS $ sudo APT Autoremove--Purge Snapd 

Das ist alles! Jetzt ist Ubuntu Server jetzt für die Installation zusätzlicher Software vorbereitet, die für benutzerdefinierte Netzwerkdienste oder Anwendungen benötigt wird, z.