Erstes Server -Setup mit Ubuntu 20.04 /18.04 und 16.04
- 3082
- 168
- Hr. Moritz Bozsik
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 UpdateUbuntu 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 -upgradierbarListen 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 -UpgradeUpgrade 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 sauberAutoremove -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_userBenutzer 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 /hostnameStellen 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 2048Setup 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] _serverKopieren 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.PubSSH -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 NrSicherer 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 abnehmenKonfigurieren 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/WienSetzen 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.comNTP -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.ServiceStart 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 -tulpnListen 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östDeaktivieren 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 pstreeListe 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.
- « So installieren Sie LightTPD mit PHP, Mariadb und Phpmyadmin in Ubuntu
- So klonen Sie einen CentOS -Server mit RSYNC »