Website-Suche

Ersteinrichtung und Konfiguration des Servers unter RHEL 7


In diesem Tutorial besprechen wir die ersten Konfigurationsschritte, die Sie nach einer Neuinstallation von Red Hat Enterprise Linux 7 auf einem Bare-Metal-Server oder auf einem Virtual Private Server durchführen müssen.

Anforderungen

  1. RHEL 7 Minimalinstallation

Wichtig: Benutzer von CentOS 7 können diesem Artikel folgen, um eine Ersteinrichtung des Servers unter CentOS 7 durchzuführen.

Aktualisieren Sie das RHEL 7-System

Melden Sie sich im ersten Schritt mit einem Konto mit Root-Rechten oder direkt als Root an Ihrer RHEL-Serverkonsole an und führen Sie den folgenden Befehl aus, um Ihre Systemkomponenten, wie z. B. die installierten Pakete und den Kernel, vollständig zu aktualisieren oder andere Sicherheitspatches anwenden.

yum check-update
yum update

Um alle lokal heruntergeladenen Pakete und andere zugehörige YUM-Caches zu entfernen, führen Sie den folgenden Befehl aus.

yum clean all

Installieren Sie Systemdienstprogramme auf RHEL 7

Die folgenden Dienstprogramme können sich für die tägliche Systemverwaltung als nützlich erweisen: nano (Texteditor als Ersatz für den vi-Editor), wget, curl (Dienstprogramme zum Herunterladen von Paketen). meist über das Netzwerk) net-tools, lsof (Dienstprogramme zur Verwaltung lokaler Netzwerke) und Bash-Completion (automatische Befehlszeilenvervollständigung).

Installieren Sie sie alle auf einmal, indem Sie den folgenden Befehl ausführen.


yum install nano wget curl net-tools lsof bash-completion

Richten Sie das Netzwerk in RHEL 7 ein

RHEL 7 verfügt über eine breite Palette von Tools, die zum Konfigurieren und Verwalten von Netzwerken verwendet werden können, von der manuellen Bearbeitung der Netzwerkkonfigurationsdatei bis hin zur Verwendung von Befehlen wie ip, ifconfig, nmtui, nmcli oder route.

Das einfachste Dienstprogramm, das ein Anfänger zum Verwalten und Ändern von Netzwerkkonfigurationen verwenden kann, ist die grafische Befehlszeile nmtui.

Um den System-Hostnamen über das Dienstprogramm nmtui zu ändern, führen Sie den Befehl nmtui-hostname aus, legen Sie den Hostnamen Ihres Computers fest und drücken Sie zum Abschluss auf OK, wie abgebildet im folgenden Screenshot.


nmtui-hostname

Um eine Netzwerkschnittstelle zu bearbeiten, führen Sie den Befehl nmtui-edit aus, wählen Sie die Schnittstelle aus, die Sie bearbeiten möchten, und wählen Sie im rechten Menü „Bearbeiten“ aus, wie im folgenden Screenshot gezeigt.

Sobald Sie sich in der grafischen Benutzeroberfläche befinden, die vom Dienstprogramm nmtui bereitgestellt wird, können Sie die IP-Einstellungen der Netzwerkschnittstelle einrichten, wie im folgenden Screenshot dargestellt. Wenn Sie fertig sind, navigieren Sie mit der [Tab]-Taste zu OK, um die Konfiguration zu speichern und den Vorgang zu beenden.

Um die neue Konfiguration der Netzwerkschnittstelle anzuwenden, führen Sie den Befehl nmtui-connect aus, wählen Sie die Schnittstelle aus, die Sie verwalten möchten, und klicken Sie auf die Option Deaktivieren/Aktivieren, um sie außer Betrieb zu setzen und hochzufahren die Schnittstelle mit den IP-Einstellungen, wie in den folgenden Screenshots dargestellt.


nmtui-connect

Um die Netzwerkschnittstelleneinstellungen anzuzeigen, können Sie den Inhalt der Schnittstellendatei überprüfen oder die folgenden Befehle ausführen.


ifconfig enp0s3
ip a
ping -c2 google.com

Weitere nützliche Dienstprogramme, mit denen Sie die Geschwindigkeit und den Verbindungsstatus verwalten oder Informationen über Maschinennetzwerkschnittstellen erhalten können, sind ethtool und mii-tool.


ethtool enp0s3
mii-tool enp0s3

Erstellen Sie ein neues Benutzerkonto

Erstellen Sie im nächsten Schritt, während Sie als Root bei Ihrem Server angemeldet sind, mit dem folgenden Befehl einen neuen Benutzer. Dieser Benutzer wird später verwendet, um sich bei Ihrem System anzumelden und Verwaltungsaufgaben auszuführen.

adduser tecmint_user

Nachdem Sie den Benutzer mit dem obigen Befehl hinzugefügt haben, richten Sie ein sicheres Passwort für diesen Benutzer ein, indem Sie den folgenden Befehl ausführen.

passwd tecmint_user

In Fällen, in denen Sie diesen neuen Benutzer zwingen möchten, sein Passwort beim ersten Anmeldeversuch zu ändern, führen Sie den folgenden Befehl aus.

chage -d0 tecmint_user

Dieses neue Benutzerkonto verfügt vorerst über reguläre Kontoberechtigungen und kann keine Verwaltungsaufgaben über den Sudo-Befehl ausführen.

Um zu vermeiden, dass das Root-Konto zum Ausführen von Administratorrechten verwendet wird, gewähren Sie diesem neuen Benutzer Administratorrechte, indem Sie den Benutzer zur Systemgruppe „wheel“ hinzufügen.

Den Benutzern der Gruppe „wheel“ ist es in RHEL standardmäßig gestattet, Befehle mit Root-Rechten auszuführen, indem sie das Dienstprogramm sudo verwenden, bevor sie den für die Ausführung erforderlichen Befehl schreiben.

Um beispielsweise den Benutzer „tecmint_user“ zur Gruppe „wheel“ hinzuzufügen, führen Sie den folgenden Befehl aus.

usermod -aG wheel tecmint_user

Melden Sie sich anschließend mit dem neuen Benutzer am System an und versuchen Sie, das System über den Befehl „sudo yum update“ zu aktualisieren, um zu testen, ob dem Benutzer Root-Rechte gewährt wurden.

su - tecmint_user
sudo yum update

Konfigurieren Sie die SSH-Authentifizierung mit öffentlichem Schlüssel auf RHEL 7

Um die Sicherheit Ihres RHEL-Servers zu erhöhen, konfigurieren Sie im nächsten Schritt die SSH-Authentifizierung mit öffentlichem Schlüssel für den neuen Benutzer. Um ein SSH-Schlüsselpaar, den öffentlichen und privaten Schlüssel, zu generieren, führen Sie den folgenden Befehl auf Ihrer Serverkonsole aus. Stellen Sie sicher, dass Sie mit dem Benutzer, für den Sie den SSH-Schlüssel einrichten, am System angemeldet sind.

su - tecmint_user
ssh-keygen -t RSA

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

Nachdem der SSH-Schlüssel generiert wurde, kopieren Sie das öffentliche Schlüsselpaar auf einen Remote-Server, indem Sie den folgenden Befehl ausführen. Um den öffentlichen Schlüssel auf dem Remote-SSH-Server zu installieren, benötigen Sie ein Benutzerkonto mit Anmeldeinformationen für die Anmeldung bei diesem Server.

ssh-copy-id [email 

Jetzt sollten Sie versuchen, sich über SSH beim Remote-Server anzumelden und dabei den privaten Schlüssel als Authentifizierungsmethode zu verwenden. Sie sollten sich automatisch anmelden können, ohne dass der SSH-Server nach einem Passwort fragt.

ssh [email 

Geben Sie den folgenden Befehl ein, um den Inhalt Ihres öffentlichen SSH-Schlüssels anzuzeigen, wenn Sie den Schlüssel manuell auf einem entfernten SSH-Server installieren möchten.

cat ~/.ssh/id_rsa

Sicheres SSH auf RHEL 7

Um den SSH-Daemon zu sichern und den Remote-SSH-Zugriff auf das Root-Konto per Passwort oder Schlüssel zu verhindern, öffnen Sie die Hauptkonfigurationsdatei des SSH-Servers und nehmen Sie die folgenden Änderungen vor.

sudo vi /etc/ssh/sshd_config

Suchen Sie nach der Zeile #PermitRootLogin ja, kommentieren Sie die Zeile aus, indem Sie das #-Zeichen (Hashtag) vom Anfang der Zeile entfernen und ändern Sie die Zeile so, dass sie wie unten gezeigt aussieht Auszug.

PermitRootLogin no

Starten Sie anschließend den SSH-Server neu, um die neuen Einstellungen zu übernehmen und testen Sie die Konfiguration, indem Sie versuchen, sich mit dem Root-Konto bei diesem Server anzumelden. Der Zugriff auf das Root-Konto über SSH sollte jetzt eingeschränkt sein.

sudo systemctl restart sshd

Es gibt Situationen, in denen Sie nach einer Zeit der Inaktivität möglicherweise alle Remote-SSH-Verbindungen zu Ihrem Server automatisch trennen möchten.

Um diese Funktion systemweit zu aktivieren, führen Sie den folgenden Befehl aus, der die Bash-Variable TMOUT zur Hauptdatei bashrc hinzufügt und erzwingt, dass jede SSH-Verbindung getrennt oder getrennt wird. nach 5 Minuten Inaktivität ausfällt.

su -c 'echo "TMOUT=300" >> /etc/bashrc'

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

tail /etc/bashrc

Im folgenden Screenshot wurde die Remote-SSH-Sitzung vom Drupal-Rechner zum RHEL-Server nach 5 Minuten automatisch abgemeldet.

Konfigurieren Sie die Firewall auf RHEL 7

Im nächsten Schritt konfigurieren Sie die Firewall, um das System auf Netzwerkebene weiter abzusichern. RHEL 7 wird mit der Firewalld-Anwendung zur Verwaltung von iptables-Regeln auf dem Server geliefert.

Stellen Sie zunächst sicher, dass die Firewall in Ihrem System ausgeführt wird, indem Sie den folgenden Befehl ausführen. Wenn der Firewalld-Daemon gestoppt ist, sollten Sie ihn mit dem folgenden Befehl starten.

sudo systemctl status firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld

Sobald die Firewall in Ihrem System aktiviert ist und ausgeführt wird, können Sie das Befehlszeilendienstprogramm firewall-cmd verwenden, um die Firewall-Richtlinieninformationen festzulegen und den Datenverkehr zu bestimmten Netzwerkports, z. B. dem SSH-Daemon, zuzulassen an einen internen Webserver oder andere damit verbundene Netzwerkdienste.

Da wir derzeit nur einen SSH-Daemon auf unserem Server ausführen, können wir die Firewall-Richtlinie anpassen, um Datenverkehr für den SSH-Dienst-Port zuzulassen, indem wir den folgenden Befehl ausgeben.

sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload

Um eine Firewall-Regel spontan hinzuzufügen, ohne die Regel beim nächsten Start des Servers anzuwenden, verwenden Sie die folgende Befehlssyntax.

sudo firewall-cmd --add-service=sshd

Wenn Sie andere Netzwerkdienste auf Ihrem Server installieren, z. B. einen HTTP-Server, einen Mailserver oder andere Netzwerkdienste, können Sie wie folgt Regeln hinzufügen, um die spezifischen Verbindungen zuzulassen.

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-service=smtp

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

sudo firewall-cmd --permanent --list-all

Entfernen Sie nicht benötigte Dienste in RHEL 7

Um eine Liste aller Netzwerkdienste (TCP und UDP) zu erhalten, die standardmäßig auf Ihrem RHEL-Server ausgeführt werden, geben Sie den Befehl ss ein, wie im folgenden Beispiel dargestellt.

sudo ss -tulpn

Der Befehl ss zeigt einige interessante Dienste an, die standardmäßig in Ihrem System gestartet und ausgeführt werden, wie zum Beispiel den Postfix-Masterdienst und den für das NTP-Protokoll verantwortlichen Server.

Wenn Sie nicht vorhaben, diesen Server als Mailserver zu konfigurieren, sollten Sie den Postfix-Daemon stoppen, deaktivieren und entfernen, indem Sie die folgenden Befehle ausführen.

sudo systemctl stop postfix.service 
sudo yum remove postfix

Kürzlich wurden einige schlimme DDOS-Angriffe über das NTP-Protokoll gemeldet. Falls Sie nicht vorhaben, Ihren RHEL-Server so zu konfigurieren, dass er als NTP-Server läuft, damit interne Clients ihre Zeit mit diesem Server synchronisieren können, sollten Sie den Chrony-Daemon vollständig deaktivieren und entfernen, indem Sie die folgenden Befehle ausführen.

sudo systemctl stop chronyd.service 
sudo yum remove chrony

Führen Sie erneut den Befehl ss aus, um festzustellen, ob andere Netzwerkdienste in Ihrem System ausgeführt werden, und deaktivieren und entfernen Sie diese.

sudo ss -tulpn

Um die genaue Zeit für Ihren Server bereitzustellen und die Zeit mit einem Peer-Server mit höherer Uhrzeit zu synchronisieren, können Sie das Dienstprogramm ntpdate installieren und die Zeit mit einem öffentlichen NTP-Server synchronisieren, indem Sie die folgenden Befehle ausführen.

sudo yum install ntpdate
sudo ntpdate 0.uk.pool.ntp.org

Um den Zeitsynchronisierungsbefehl ntpdate so zu automatisieren, dass er jeden Tag ohne Benutzereingriff ausgeführt wird, planen Sie einen neuen Crontab-Job mit dem folgenden Inhalt, der um Mitternacht ausgeführt wird.

sudo crontab -e

Auszug aus der Crontab-Datei:

@daily /usr/sbin/ntpdate 0.uk.pool.ntp.org

Das ist alles! Jetzt ist Ihr RHEL-Server für die Installation zusätzlicher Software vorbereitet, die für benutzerdefinierte Netzwerkdienste oder -anwendungen benötigt wird, beispielsweise für die Installation und Konfiguration eines Webservers, eines Datenbankservers, eines Dateifreigabedienstes oder anderer spezifischer Anwendungen.

Um den RHEL 7-Server weiter zu sichern und zu härten, lesen Sie die folgenden Artikel.

  1. Der Mega-Leitfaden zum Härten und Sichern von RHEL 7 – Teil 1
  2. Der Mega-Leitfaden zum Härten und Sichern von RHEL 7 – Teil 2

Wenn Sie planen, Websites auf diesem RHEL 7-System bereitzustellen, erfahren Sie, wie Sie den LAMP-Stack oder LEMP-Stack einrichten und konfigurieren.