RHCSA-Serie: Sichern von SSH, Festlegen des Hostnamens und Aktivieren von Netzwerkdiensten - Teil 8
Als Systemadministrator müssen Sie sich häufig bei Remote-Systemen anmelden, um eine Vielzahl von Verwaltungsaufgaben mit einem Terminalemulator auszuführen. Sie werden selten vor einem echten (physischen) Terminal sitzen, daher müssen Sie eine Möglichkeit einrichten, sich aus der Ferne bei den Computern anzumelden, die Sie verwalten sollen.
In der Tat ist dies möglicherweise das Letzte, was Sie vor einem physischen Terminal tun müssen. Aus Sicherheitsgründen ist die Verwendung von Telnet für diesen Zweck keine gute Idee, da der gesamte Datenverkehr in unverschlüsseltem Klartext über das Kabel geleitet wird.
Darüber hinaus werden wir in diesem Artikel auch überprüfen, wie Sie Netzwerkdienste so konfigurieren, dass sie beim Booten automatisch gestartet werden, und lernen, wie Sie die Netzwerk- und Hostnamenauflösung statisch oder dynamisch einrichten.
Installieren und Sichern der SSH-Kommunikation
Damit Sie sich per SSH remote an einer RHEL 7-Box anmelden können, müssen Sie die Pakete openssh, openssh-clients und openssh-servers installieren. Mit dem folgenden Befehl wird nicht nur das Remote-Anmeldeprogramm installiert, sondern auch das Tool für die sichere Dateiübertragung sowie das Dienstprogramm zum Kopieren von Remote-Dateien:
yum update && yum install openssh openssh-clients openssh-servers
Beachten Sie, dass es eine gute Idee ist, die Server-Gegenstücke zu installieren, da Sie möglicherweise zu einem bestimmten Zeitpunkt denselben Computer als Client und Server verwenden möchten.
Nach der Installation gibt es einige grundlegende Dinge, die Sie berücksichtigen müssen, wenn Sie den Fernzugriff auf Ihren SSH-Server sichern möchten. Die folgenden Einstellungen sollten in der Datei /etc/ssh/sshd_config vorhanden sein.
1. Ändern Sie den Port, an dem der sshd-Daemon lauscht, von 22 (dem Standardwert) auf einen hohen Port (2000 oder höher), aber stellen Sie zuerst sicher, dass der ausgewählte Port nicht verwendet wird.
Nehmen wir zum Beispiel an, Sie wählen Port 2500 aus. Verwenden Sie netstat, um zu überprüfen, ob der gewählte Port verwendet wird oder nicht:
netstat -npltu | grep 2500
Wenn netstat nichts zurückgibt, können Sie Port 2500 sicher für sshd verwenden, und Sie sollten die Port-Einstellung in der Konfigurationsdatei wie folgt ändern:
Port 2500
2. Nur Protokoll 2 zulassen:
Protocol 2
3. Konfigurieren Sie das Authentifizierungs-Timeout auf 2 Minuten, erlauben Sie keine Root-Anmeldungen und beschränken Sie die Liste der Benutzer, die sich über SSH anmelden dürfen, auf ein Minimum:
LoginGraceTime 2m
PermitRootLogin no
AllowUsers gacanepa
4. Verwenden Sie nach Möglichkeit eine schlüsselbasierte anstelle einer Passwortauthentifizierung:
PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes
Dies setzt voraus, dass Sie bereits ein Schlüsselpaar mit Ihrem Benutzernamen auf Ihrem Client-Computer erstellt und auf Ihren Server kopiert haben, wie hier beschrieben.
- Aktivieren Sie die passwortlose SSH-Anmeldung
Konfigurieren des Netzwerks und der Namensauflösung
1. Jeder Systemadministrator sollte mit den folgenden systemweiten Konfigurationsdateien vertraut sein:
- /etc/hosts wird verwendet, um Namen <---> IPs in kleinen Netzwerken aufzulösen.
Jede Zeile in der Datei /etc/hosts hat die folgende Struktur:
IP address - Hostname - FQDN
Zum Beispiel
192.168.0.10 laptop laptop.gabrielcanepa.com.ar
2. /etc/resolv.conf gibt die IP-Adressen der DNS-Server und die Suchdomäne an, die verwendet wird, um einen bestimmten Abfragenamen zu einem vollqualifizierten Domänennamen zu vervollständigen, wenn kein Domänensuffix angegeben wird.
Unter normalen Umständen müssen Sie diese Datei nicht bearbeiten, da sie vom System verwaltet wird. Wenn Sie jedoch den DNS-Server wechseln möchten, beachten Sie, dass Sie sich in jeder Zeile an die folgende Struktur halten müssen:
nameserver - IP address
Zum Beispiel
nameserver 8.8.8.8
3. 3. Urheberrecht /etc/host.conf gibt die Methoden und die Reihenfolge an, in der Hostnamen innerhalb eines Netzwerks aufgelöst werden. Mit anderen Worten, teilt dem Namensresolver mit, welche Dienste in welcher Reihenfolge verwendet werden sollen.
Obwohl diese Datei über mehrere Optionen verfügt, enthält die gebräuchlichste und grundlegendste Einrichtung eine Zeile wie folgt:
order bind,hosts
Dies bedeutet, dass der Resolver zuerst in den in resolv.conf angegebenen Nameservern und dann in der Datei /etc/hosts nach der Namensauflösung suchen sollte.
4. /etc/sysconfig/network enthält Routing- und globale Hostinformationen für alle Netzwerkschnittstellen. Folgende Werte können verwendet werden:
NETWORKING=yes|no
HOSTNAME=value
Dabei sollte der Wert der vollqualifizierte Domänenname (Fully Qualified Domain Name, FQDN) sein.
GATEWAY=XXX.XXX.XXX.XXX
Dabei ist XXX.XXX.XXX.XXX die IP-Adresse des Gateways des Netzwerks.
GATEWAYDEV=value
In einem Computer mit mehreren Netzwerkkarten ist der Wert das Gateway-Gerät, z. B. enp0s3.
5. Dateien in /etc/sysconfig/network-scripts (Konfigurationsdateien für Netzwerkadapter).
In dem zuvor erwähnten Verzeichnis finden Sie mehrere Klartextdateien, die benannt sind.
ifcfg-name
Dabei ist name der Name der Netzwerkkarte, wie er von ip link show zurückgegeben wird:
Zum Beispiel:
Abgesehen von der Loopback-Schnittstelle können Sie eine ähnliche Konfiguration für Ihre Netzwerkkarten erwarten. Beachten Sie, dass einige Variablen, falls gesetzt, die in /etc/sysconfig/network vorhandenen Variablen für diese spezielle Schnittstelle überschreiben. Jede Zeile wird in diesem Artikel zur Verdeutlichung kommentiert, aber in der eigentlichen Datei sollten Sie Kommentare vermeiden:
HWADDR=08:00:27:4E:59:37 # The MAC address of the NIC
TYPE=Ethernet # Type of connection
BOOTPROTO=static # This indicates that this NIC has been assigned a static IP. If this variable was set to dhcp, the NIC will be assigned an IP address by a DHCP server and thus the next two lines should not be present in that case.
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no # Should be added to the Ethernet interface to prevent NetworkManager from changing the file.
NAME=enp0s3
UUID=14033805-98ef-4049-bc7b-d4bea76ed2eb
ONBOOT=yes # The operating system should bring up this NIC during boot
Festlegen von Hostnamen
In Red Hat Enterprise Linux 7 wird der Befehl hostnamectl verwendet, um den Hostnamen des Systems sowohl abzufragen als auch festzulegen.
Um den aktuellen Hostnamen anzuzeigen, geben Sie Folgendes ein:
hostnamectl status
Um den Hostnamen zu ändern, verwenden Sie
hostnamectl set-hostname [new hostname]
Zum Beispiel
hostnamectl set-hostname cinderella
Damit die Änderungen wirksam werden, müssen Sie den hostnamed-Daemon neu starten (auf diese Weise müssen Sie sich nicht ab- und wieder anmelden, um die Änderung zu übernehmen):
systemctl restart systemd-hostnamed
Darüber hinaus enthält RHEL 7 auch das Dienstprogramm nmcli, das für den gleichen Zweck verwendet werden kann. Um den Hostnamen anzuzeigen, führen Sie Folgendes aus:
nmcli general hostname
und um es zu ändern:
nmcli general hostname [new hostname]
Zum Beispiel
nmcli general hostname rhel7
Starten von Netzwerkdiensten beim Booten
Lassen Sie uns abschließend sehen, wie wir sicherstellen können, dass Netzwerkdienste beim Booten automatisch gestartet werden. Einfach ausgedrückt geschieht dies durch das Erstellen von symbolischen Links zu bestimmten Dateien, die im Abschnitt [Install] der Servicekonfigurationsdateien angegeben sind.
Im Fall von firewalld (/usr/lib/systemd/system/firewalld.service):
[Install]
WantedBy=basic.target
Alias=dbus-org.fedoraproject.FirewallD1.service
So aktivieren Sie den Dienst:
systemctl enable firewalld
Auf der anderen Seite berechtigt das Deaktivieren von firewalld zum Entfernen der symbolischen Links:
systemctl disable firewalld
Schlussfolgerung
In diesem Artikel haben wir zusammengefasst, wie Sie Verbindungen über SSH zu einem RHEL-Server installieren und sichern, wie Sie dessen Namen ändern und schließlich sicherstellen, dass Netzwerkdienste beim Booten gestartet werden. Wenn Sie feststellen, dass ein bestimmter Dienst nicht ordnungsgemäß gestartet werden konnte, können Sie systemctl status -l [service] und journalctl -xn verwenden, um eine Fehlerbehebung durchzuführen.
Teilen Sie uns Ihre Meinung zu diesem Artikel über das Kommentarformular unten mit. Auch Fragen sind willkommen. Wir freuen uns auf Sie!






