RHCSA-Serie: SSH sichern, Hostname setzen und Netzwerkdienste aktivieren - Teil 8
Als Systemadministrator müssen Sie sich oft bei entfernten Systemen anmelden, um eine Vielzahl von Verwaltungsvorgängen über einen Terminalemulator auszuführen. Selten werden Sie vor einem echten (physischen) Terminal sitzen, daher müssen Sie eine Möglichkeit einrichten, sich aus der Ferne bei den Maschinen anzumelden, die Sie verwalten sollen.
Tatsächlich könnte das das Letzte sein, was Sie vor einem physischen Terminal tun müssen. Aus Sicherheitsgründen ist es keine gute Idee, Telnet für diesen Zweck zu verwenden, da der gesamte Datenverkehr unverschlüsselt und im Klartext über das Kabel gesendet wird.
Darüber hinaus werden wir in diesem Artikel auch untersuchen, wie Netzwerkdienste so konfiguriert werden können, dass sie beim Start automatisch gestartet werden, und lernen, wie man die Netzwerkkonfiguration und die Hostnamenauflösung statisch oder dynamisch einrichtet.
Installation und Sicherung der SSH-Kommunikation
Damit Sie sich remote auf einer RHEL 7-Box über SSH anmelden können, müssen Sie die Pakete openssh, openssh-clients und openssh-servers installieren. Der folgende Befehl installiert nicht nur das Remote-Login-Programm, sondern auch das sichere Dateiübertragungswerkzeug sowie das Remote-Dateikopie-Utility:
# yum update && yum install openssh openssh-clients openssh-servers
Beachten Sie, dass es eine gute Idee ist, die Server-Pendants zu installieren, da Sie möglicherweise irgendwann dieselbe Maschine sowohl als Client als auch als Server verwenden möchten.
Nach der Installation gibt es ein paar grundlegende Dinge, die Sie berücksichtigen müssen, wenn Sie den Fernzugriff auf Ihren SSH-Server absichern möchten. Die folgenden Einstellungen sollten in der Datei /etc/ssh/sshd_config vorhanden sein.
1. Ändern Sie den Port, auf dem der sshd-Daemon lauschen wird, von 22 (dem Standardwert) auf einen hohen Port (2000 oder höher), aber stellen Sie zunächst sicher, dass der gewählte Port nicht verwendet wird.
Zum Beispiel, nehmen wir an, Sie wählen den Port 2500. 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-Logins und beschränken Sie die Liste der Benutzer, die sich per SSH anmelden dürfen, auf ein Minimum:
LoginGraceTime 2m
PermitRootLogin no
AllowUsers gacanepa
4. Verwenden Sie nach Möglichkeit eine schlüsselbasierte Authentifizierung anstelle von Passwortauthentifizierung:
PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes
Dies setzt voraus, dass Sie bereits ein Schlüsselpaar mit Ihrem Benutzernamen auf Ihrem Client-Rechner erstellt und es wie hier erläutert auf Ihren Server kopiert haben.
- SSH-Passwortloses Anmelden aktivieren
Konfigurieren von Netzwerken und Namensauflösung
1. Jeder Systemadministrator sollte mit den folgenden systemweiten Konfigurationsdateien gut vertraut sein:
- /etc/hosts wird verwendet, um Namen <---> IPs in kleinen Netzwerken aufzulösen.
Jede Zeile in der /etc/hosts-Datei 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 gegebenen Abfragenamen in einen vollständig qualifizierten Domänennamen zu vervollständigen, wenn kein Domänensuffix angegeben ist.
Unter normalen Umständen müssen Sie diese Datei nicht bearbeiten, da sie vom System verwaltet wird. Wenn Sie jedoch die DNS-Server ändern möchten, beachten Sie bitte, 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. /etc/host.conf gibt die Methoden und die Reihenfolge an, nach denen Hostnamen innerhalb eines Netzwerks aufgelöst werden. Anders ausgedrückt, teilt es dem Namensauflöser mit, welche Dienste verwendet werden sollen und in welcher Reihenfolge.
Obwohl diese Datei mehrere Optionen enthält, umfasst die gebräuchlichste und grundlegendste Einrichtung eine Zeile wie folgt:
order bind,hosts
Was darauf hinweist, dass der Resolver zuerst in den in resolv.conf angegebenen Nameservern nachsehen und dann die /etc/hosts-Datei für die Namensauflösung verwenden sollte.
4. /etc/sysconfig/network enthält Routing- und globale Hostinformationen für alle Netzwerkschnittstellen. Die folgenden Werte können verwendet werden:
NETWORKING=yes|no
HOSTNAME=value
Wo der Wert der vollqualifizierte Domänenname (FQDN) sein sollte.
GATEWAY=XXX.XXX.XXX.XXX
Wobei XXX.XXX.XXX.XXX die IP-Adresse des Gateways des Netzwerks ist.
GATEWAYDEV=value
In einer Maschine mit mehreren NICs ist value das Gateway-Gerät, wie zum Beispiel enp0s3.
5. Dateien im Ordner /etc/sysconfig/network-scripts (Konfigurationsdateien der Netzwerkadapter).
Innerhalb des zuvor erwähnten Verzeichnisses finden Sie mehrere Textdateien mit Namen.
ifcfg-name
Dabei ist name der Name der Netzwerkkarte, wie von ip link show zurückgegeben:
Zum Beispiel:
Abgesehen von der Loopback-Schnittstelle können Sie eine ähnliche Konfiguration für Ihre NICs erwarten. Beachten Sie, dass einige Variablen, falls gesetzt, jene in /etc/sysconfig/network für diese bestimmte Schnittstelle überschreiben. Jede Zeile ist in diesem Artikel zur Verdeutlichung kommentiert, aber in der tatsächlichen 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
Hostnamen festlegen
In Red Hat Enterprise Linux 7 wird der Befehl hostnamectl verwendet, um sowohl den Hostnamen des Systems 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-Dienst neu starten (auf diese Weise müssen Sie sich nicht ab- und wieder anmelden, um die Änderung anzuwenden):
# systemctl restart systemd-hostnamed
Darüber hinaus enthält RHEL 7 auch das nmcli-Dienstprogramm, das für denselben Zweck verwendet werden kann. Um den Hostnamen anzuzeigen, führen Sie aus:
# nmcli general hostname
und es zu ändern:
# nmcli general hostname [new hostname]
Zum Beispiel,
# nmcli general hostname rhel7
Netzwerkdienste beim Start aktivieren
Abschließend wollen wir sehen, wie wir sicherstellen können, dass Netzwerkdienste beim Booten automatisch gestartet werden. Einfach ausgedrückt geschieht dies durch das Erstellen von Symlinks zu bestimmten Dateien, die im [Install]-Abschnitt der Dienstkonfigurationsdateien angegeben sind.
Im Fall von firewalld (/usr/lib/systemd/system/firewalld.service):
[Install]
WantedBy=basic.target
Alias=dbus-org.fedoraproject.FirewallD1.service
Um den Dienst zu aktivieren:
# systemctl enable firewalld
Andererseits bedeutet das Deaktivieren von firewalld, die Symlinks zu entfernen:
# systemctl disable firewalld
Fazit
In diesem Artikel haben wir zusammengefasst, wie man Verbindungen über SSH zu einem RHEL-Server installiert und sichert, wie man seinen Namen ändert und schließlich, wie man sicherstellt, dass Netzwerkdienste beim Booten gestartet werden. Wenn Sie feststellen, dass ein bestimmter Dienst nicht ordnungsgemäß gestartet wurde, können Sie systemctl status -l [service] und journalctl -xn verwenden, um ihn zu beheben.
Fühlen Sie sich frei, uns Ihre Meinung zu diesem Artikel über das unten stehende Kommentarfeld mitzuteilen. Fragen sind ebenfalls willkommen. Wir freuen uns darauf, von Ihnen zu hören!






