Linux Admin - Fernverwaltung

Wenn wir als Administrator über die Remoteverwaltung in CentOS sprechen, werden wir zwei Methoden untersuchen:

  • Konsolenverwaltung
  • GUI-Verwaltung

Remote Console Management

Remote Console Management bedeutet, Verwaltungsaufgaben über die Befehlszeile über einen Dienst wie ssh auszuführen. Um CentOS Linux als Administrator effektiv nutzen zu können, müssen Sie mit der Befehlszeile vertraut sein. Linux wurde im Kern für die Verwendung über die Konsole entwickelt. Noch heute bevorzugen einige Systemadministratoren die Leistung des Befehls und sparen Geld bei der Hardware, indem sie reine Linux-Boxen ohne physisches Terminal und ohne installierte GUI ausführen.

Remote-GUI-Verwaltung

Die Remote-GUI-Verwaltung erfolgt normalerweise auf zwei Arten: entweder als Remote-X-Session oder als GUI-Anwendungsschichtprotokoll wie VNC. Jeder hat seine Stärken und Nachteile. Zum größten Teil ist VNC jedoch die beste Wahl für die Verwaltung. Es ermöglicht die grafische Steuerung von anderen Betriebssystemen wie Windows oder OS X, die das X Windows-Protokoll nicht nativ unterstützen.

Die Verwendung von Remote-X-Sitzungen ist sowohl für die Fenstermanager von X-Window als auch für die DesktopManager nativ, die unter X ausgeführt werden. Die gesamte X-Sitzungsarchitektur wird jedoch hauptsächlich unter Linux verwendet. Nicht jeder Systemadministrator verfügt über einen Linux-Laptop, um eine Remote-X-Sitzung einzurichten. Daher wird am häufigsten eine angepasste Version von VNC Server verwendet.

Die größten Nachteile von VNC sind: VNC unterstützt von Haus aus keine Mehrbenutzerumgebung wie Remote-X-Sessions. Daher wäre für den GUI-Zugriff auf Endbenutzer Remote-XSessions die beste Wahl. Wir befassen uns jedoch hauptsächlich mit der Remoteverwaltung eines CentOS-Servers.

Wir werden die Konfiguration von VNC für mehrere Administratoren im Vergleich zu einigen hundert Endbenutzern mit Remote-X-Sessions diskutieren.

Grundsteinlegung für Sicherheit mit SSH für den Remotekonsolenzugriff

ssh oder Secure Shellist jetzt der Standard für die Remoteverwaltung von Linux-Servern. Im Gegensatz zu Telnet verwendet SSH TLS für die Authentizität und End-to-End-Verschlüsselung der Kommunikation. Bei ordnungsgemäßer Konfiguration kann ein Administrator ziemlich sicher sein, dass sowohl sein Kennwort als auch der Server remote vertrauenswürdig sind.

Lassen Sie uns vor der Konfiguration von SSH ein wenig über die grundlegende Sicherheit und den am wenigsten verbreiteten Zugriff sprechen. Wenn SSH auf seinem Standardport 22 ausgeführt wird; Früher als später werden Sie Brute-Force-Wörterbuchangriffe gegen gängige Benutzernamen und Kennwörter erhalten. Dies kommt nur mit dem Territorium. Unabhängig davon, wie viele Hosts Sie Ihren Verweigerungsdateien hinzufügen, werden diese täglich von verschiedenen IP-Adressen eingegeben.

Mit ein paar gemeinsamen Regeln können Sie einfach einige proaktive Schritte unternehmen und die Bösen ihre Zeit verschwenden lassen. Im Folgenden finden Sie einige Sicherheitsregeln für die Verwendung von SSH für die Remoteverwaltung auf einem Produktionsserver:

  • Verwenden Sie niemals einen gemeinsamen Benutzernamen oder ein Passwort. Benutzernamen auf dem System sollten nicht die Standardeinstellung des Systems sein oder mit der E-Mail-Adresse des Unternehmens verknüpft sein, z.[email protected]

  • Root-Zugriff oder Administrationszugriff sollten nicht über SSH gewährt werden. Verwenden Sie einen eindeutigen Benutzernamen und su, um ein Root-Konto oder ein Administrationskonto zu erstellen, sobald diese über SSH authentifiziert wurden.

  • Kennwortrichtlinie ist ein Muss: Komplexe SSH-Benutzerkennwörter wie: "This & IS & a & GUD & P @ ssW0rd & 24 & me". Ändern Sie die Passwörter alle paar Monate, um die Anfälligkeit für inkrementelle Brute-Force-Angriffe zu beseitigen.

  • Deaktivieren Sie aufgegebene oder Konten, die für längere Zeit nicht verwendet werden. Wenn ein Personalchef eine Voicemail hat, in der angegeben wird, dass er einen Monat lang keine Interviews führt. das kann zum Beispiel zu technisch versierten Personen führen, die viel Zeit zur Verfügung haben.

  • Beobachten Sie Ihre Protokolle täglich. Nehmen Sie sich als Systemadministrator jeden Morgen mindestens 30 bis 40 Minuten Zeit, um die System- und Sicherheitsprotokolle zu überprüfen. Wenn Sie gefragt werden, lassen Sie alle wissen, dass Sie nicht die Zeit haben, nicht proaktiv zu sein. Diese Vorgehensweise hilft dabei, Warnzeichen zu isolieren, bevor ein Problem für Endbenutzer und Unternehmensgewinne auftritt.

Note On Linux Security- Jeder, der sich für die Linux-Administration interessiert, sollte sich aktiv mit aktuellen Cyber-Security-Nachrichten und -Technologien befassen. Während wir meistens von anderen Betriebssystemen hören, die kompromittiert werden, ist eine unsichere Linux-Box ein begehrter Schatz für Cyberkriminelle. Mit der Leistung von Linux über eine Hochgeschwindigkeits-Internetverbindung kann ein erfahrener Cyberkrimineller Linux verwenden, um Angriffe auf andere Betriebssysteme zu nutzen.

Installieren und konfigurieren Sie SSH für den Remotezugriff

Step 1 - Installieren Sie den SSH-Server und alle abhängigen Pakete.

[root@localhost]# yum -y install openssh-server 
'Loaded plugins: fastestmirror, langpacks 
Loading mirror speeds from cached hostfile 
* base: repos.centos.net 
* extras: repos.dfw.centos.com 
* updates: centos.centos.com 
Resolving Dependencies 
   --> Running transaction check 
   ---> Package openssh-server.x86_64 0:6.6.1p1-33.el7_3 will be installed 
   --> Finished Dependency Resolution 
Dependencies Resolved

Step 2 - Machen Sie eine sichere regelmäßige Verwendung, um für den Shell-Zugriff hinzuzufügen.

[root@localhost ~]# useradd choozer 
[root@localhost ~]# usermod -c "Remote Access" -d /home/choozer -g users -G 
wheel -a choozer

Note- Wir haben den neuen Benutzer auf die Rad - Gruppe ermöglicht Fähigkeit, su in root einmal SSH - Zugriff authentifiziert wurde. Wir haben auch einen Benutzernamen verwendet, der in allgemeinen Wortlisten nicht zu finden ist. Auf diese Weise wird unser Konto nicht gesperrt, wenn SSH angegriffen wird.

Die Datei mit den Konfigurationseinstellungen für den sshd-Server lautet / etc / ssh / sshd_config .

Die Teile, die wir anfänglich bearbeiten möchten, sind -

LoginGraceTime 60m
PermitRootLogin no

Step 3- Laden Sie den SSH-Daemon sshd neu .

[root@localhost]# systemctl reload sshd

Es ist gut, die Abmeldefrist auf 60 Minuten festzulegen. Einige komplexe Verwaltungsaufgaben können den Standardwert von 2 Minuten überschreiten. Es gibt wirklich nichts Frustrierenderes als ein SSH-Sitzungszeitlimit beim Konfigurieren oder Erforschen von Änderungen.

Step 4 - Versuchen wir, uns mit den Root-Anmeldeinformationen anzumelden.

bash-3.2# ssh centos.vmnet.local 
[email protected]'s password:   
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

Step 5- Wir können uns nicht mehr remote über ssh mit Root- Anmeldeinformationen anmelden . Melden wir uns also bei unserem nicht privilegierten Benutzerkonto an und su beim Root- Konto.

bash-3.2# ssh [email protected]
[email protected]'s password:
[choozer@localhost ~]$ su root
Password:

[root@localhost choozer]#

Step 6- Stellen Sie abschließend sicher, dass der SSHD-Dienst beim Booten geladen wird und die Firewall externe SSH-Verbindungen zulässt.

[root@localhost]# systemctl enable sshd

[root@localhost]# firewall-cmd --permanent --add-service=ssh 
success

[root@localhost]# firewall-cmd --reload 
success
 
[root@localhost]#

SSH ist jetzt eingerichtet und bereit für die Remoteverwaltung. Abhängig von Ihrer Unternehmensgrenze muss das Paketfilter-Grenzgerät möglicherweise so konfiguriert werden, dass eine SSH-Remoteverwaltung außerhalb des Unternehmens-LAN möglich ist.

Konfigurieren Sie VNC für die Remote-CentOS-Verwaltung

Es gibt einige Möglichkeiten, die Remote-CentOS-Verwaltung über VNC unter CentOS 6 - 7 zu aktivieren. Die einfachste, aber einschränkendste Möglichkeit besteht darin, einfach ein Paket namens vino zu verwenden .Vinoist eine Virtual Network Desktop Connection-Anwendung für Linux, die auf der Gnome Desktop-Plattform basiert. Daher wird davon ausgegangen, dass die Installation mit Gnome Desktop abgeschlossen wurde. Wenn der Gnome Desktop nicht installiert wurde, tun Sie dies bitte, bevor Sie fortfahren. Vino wird standardmäßig mit einer Gnome-GUI-Installation installiert.

Um die Bildschirmfreigabe mit Vino unter Gnome zu konfigurieren, möchten wir die CentOS-Systemeinstellungen für die Bildschirmfreigabe aufrufen.

Applications->System Tools->Settings->Sharing

Hinweise zum Konfigurieren der VNC-Desktopfreigabe -

  • Disable New Connections must ask for access- Diese Option erfordert physischen Zugriff, um jede Verbindung in Ordnung zu bringen. Diese Option verhindert die Remoteverwaltung, es sei denn, jemand befindet sich auf dem physischen Desktop.

  • Enable Require a password- Dies ist vom Benutzerkennwort getrennt. Es steuert den Zugriff auf den virtuellen Desktop und erfordert weiterhin das Benutzerkennwort, um auf einen gesperrten Desktop zuzugreifen (dies ist gut für die Sicherheit).

  • Forward UP&P Ports: If available leave disabled- Durch das Weiterleiten von UP & P-Ports werden universelle Plug-and-Play-Anforderungen für ein Layer 3-Gerät gesendet, damit VNC-Verbindungen zum Host automatisch zugelassen werden. Das wollen wir nicht.

Stellen Sie sicher, dass Vino den VNC-Port 5900 überwacht.

[root@localhost]# netstat -antup | grep vino 
tcp        0        0 0.0.0.0:5900        0.0.0.0:*        LISTEN        4873/vino-server
tcp6       0        0 :::5900                :::*          LISTEN        4873/vino-server
   
[root@localhost]#

Lassen Sie uns nun unsere Firewall so konfigurieren, dass eingehende VNC-Verbindungen zugelassen werden.

[root@localhost]# firewall-cmd --permanent --add-port=5900/tcp 
success

[root@localhost]# firewall-cmd --reload 
success

[root@localhost rdc]#

Wie Sie sehen, können wir unsere CentOS Box verbinden und mit einem VNC-Client unter Windows oder OS X verwalten.

Es ist genauso wichtig, die gleichen Regeln für VNC einzuhalten, wie wir sie für SSH festgelegt haben. Genau wie SSH wird VNC kontinuierlich über IP-Bereiche hinweg gescannt und auf schwache Passwörter getestet. Beachten Sie auch, dass das Aktivieren der standardmäßigen CentOS-Anmeldung mit einem Konsolen-Timeout die Remote-VNC-Sicherheit verbessert. Da ein Angreifer den VNC und das Benutzerkennwort benötigt, stellen Sie sicher, dass Ihr Kennwort für die Bildschirmfreigabe anders und genauso schwer zu erraten ist wie das Benutzerkennwort.

Nach Eingabe des Kennworts für die VNC-Bildschirmfreigabe müssen wir auch das Benutzerkennwort eingeben, um auf einen gesperrten Desktop zugreifen zu können.

Security Note- Standardmäßig ist VNC kein verschlüsseltes Protokoll. Daher sollte die VNC-Verbindung zur Verschlüsselung über SSH getunnelt werden.

SSH-Tunnel über VNC einrichten

Durch das Einrichten eines SSH-Tunnels wird eine Schicht SSH-Verschlüsselung zum Tunneln der VNC-Verbindung bereitgestellt. Eine weitere großartige Funktion ist die Verwendung der SSH-Komprimierung, um den VNC-GUI-Bildschirmaktualisierungen eine weitere Komprimierungsebene hinzuzufügen. Sicherer und schneller ist immer eine gute Sache, wenn es um die Verwaltung von CentOS-Servern geht!

Lassen Sie uns von Ihrem Client, der die VNC-Verbindung initiiert, einen Remote-SSH-Tunnel einrichten. In dieser Demonstration verwenden wir OS X. Zuerst müssen wir sudo -s zum Rooten verwenden .

bash-3.2# sudo -s 
password:

Geben Sie das Benutzerpasswort ein und wir sollten jetzt eine Root-Shell mit einer # Eingabeaufforderung haben -

bash-3.2#

Jetzt erstellen wir unseren SSH-Tunnel .

ssh -f [email protected] -L 2200:192.168.1.143:5900 -N

Lassen Sie uns diesen Befehl aufschlüsseln -

  • ssh - Führt das lokale Dienstprogramm ssh aus

  • -f - ssh sollte im Hintergrund ausgeführt werden, nachdem die Aufgabe vollständig ausgeführt wurde

  • [email protected] - Remote-SSH-Benutzer auf dem CentOS-Server, auf dem VNC-Dienste gehostet werden

  • -L 2200:192.168.1.143:5900 - Erstellen Sie unseren Tunnel [Lokaler Port]: [Remote-Host]: [Remote-Port des VNC-Dienstes]

  • -N teilt ssh mit, dass wir keinen Befehl auf dem Remote-System ausführen möchten

bash-3.2# ssh -f [email protected] -L 2200:192.168.1.143:5900 -N
[email protected]'s password:

Nach erfolgreicher Eingabe des Passworts des Remote-SSH-Benutzers wird unser SSH-Tunnel erstellt. Nun zum coolen Teil! Um eine Verbindung herzustellen, richten wir unseren VNC-Client auf den lokalen Host am Port unseres Tunnels, in diesem Fall Port 2200. Nachfolgend finden Sie die Konfiguration auf dem VNC-Client des Mac-Laptops:

Und schließlich unsere Remote-VNC-Desktop-Verbindung!

Das Coole am SSH-Tunneling ist, dass es für fast jedes Protokoll verwendet werden kann. SSH-Tunnel werden häufig verwendet, um die Filterung von Ausgangs- und Eingangsports durch einen ISP zu umgehen sowie IDS / IPS auf Anwendungsebene zu tricksen und gleichzeitig die Überwachung anderer Sitzungsschichten zu umgehen.

  • Ihr ISP filtert möglicherweise Port 5900 nach Nicht-Geschäftskonten, lässt jedoch SSH auf Port 22 zu (oder SSH kann auf jedem Port ausgeführt werden, wenn Port 22 gefiltert wird).

  • IPS und IDS auf Anwendungsebene untersuchen die Nutzlast. Zum Beispiel ein allgemeiner Pufferüberlauf oder SQL Injection. Durchgängige SSH-Verschlüsselung verschlüsselt Daten der Anwendungsschicht.

SSH-Tunneling ist ein großartiges Tool in der Toolbox eines Linux-Administrators, um Dinge zu erledigen. Als Administrator möchten wir jedoch untersuchen, wie die Verfügbarkeit von weniger privilegierten Benutzern, die Zugriff auf SSH-Tunneling haben, gesperrt wird.

Administration Security Note- Das Einschränken des SSH-Tunnelns erfordert von einem Administrator Überlegungen. Beurteilung, warum Benutzer überhaupt SSH-Tunneling benötigen; Welche Benutzer benötigen Tunneling? zusammen mit praktischer Risikowahrscheinlichkeit und Worst-Case-Auswirkungen.

Dies ist ein fortgeschrittenes Thema, das sich außerhalb des Bereichs eines Primers der Mittelstufe erstreckt. Forschung zu diesem Thema wird für diejenigen empfohlen, die die oberen Ebenen der CentOS Linux Administration erreichen möchten.

Verwenden Sie den SSH-Tunnel für Remote X-Windows

Das Design von X-Windows unter Linux ist im Vergleich zu Windows wirklich ordentlich. Wenn wir eine entfernte Linux-Box von einer anderen Linux-Box aus steuern möchten, können wir die in X integrierten Mechanismen nutzen.

X-Windows (oft nur "X" genannt) bietet den Mechanismus zum Anzeigen von Anwendungsfenstern, die von einer Linux-Box stammen, auf dem Anzeigeteil von X auf einer anderen Linux-Box. Über SSH können wir also anfordern, dass eine X-Windows-Anwendung an die Anzeige einer anderen Linux-Box auf der ganzen Welt weitergeleitet wird!

Um eine X-Anwendung remote über einen SSH-Tunnel auszuführen, müssen Sie nur einen einzigen Befehl ausführen:

[root@localhost]# ssh -X [email protected]

The syntax is - ssh -X [Benutzer] @ [Host], und der Host muss ssh mit einem gültigen Benutzer ausführen.

Es folgt ein Screenshot von GIMP, das auf einer Ubuntu Workstation über einen Remote-XWindows-SSH-Tunnel ausgeführt wird.

Es ist ziemlich einfach, Anwendungen von einem anderen Linux-Server oder einer anderen Workstation aus auszuführen. Es ist auch möglich, eine gesamte X-Session zu starten und die gesamte Desktop-Umgebung mit wenigen Methoden remote zu nutzen.

  • XDMCP

  • Headless-Softwarepakete wie NX

  • Konfigurieren alternativer Anzeigen und Desktops in X- und Desktop-Managern wie Gnome oder KDE

Diese Methode wird am häufigsten für kopflose Server ohne physische Anzeige verwendet und überschreitet tatsächlich den Umfang eines Primers der Zwischenstufe. Es ist jedoch gut, die verfügbaren Optionen zu kennen.