Files
2024-10-14 17:00:20 +02:00

14 KiB
Executable File
Raw Permalink Blame History

Remote Verbindung

1. VNC Server

Wie immer gibt es verschiedene Möglichkeiten, den VNC Server einzurichten. Die Entscheidung, welche Möglichkeit zur Anwendung kommen soll, hängt von den Einsatzbedingungen ab.

1.1 Verbindung für alle

1.1.1 OpenSuSE

Es gibt zwei Möglichkeiten, allen Anwendern den Zugriff auf dem Computer zu erlauben. Dazu rufen wir das Programm YAST auf und unter Punkt Administration von einem entfernten Rechner wird der Punkt Verwaltung via entfernten Rechner (remote) erlauben aktiviert. Bevor wir den Befehl rcxdm restart ausführen, wird in der Datei /etc/opt/kde3/share/config/kdm/kdmrc unter dem Punkt [Xdmcp] die Variable Enable auf true gesetzt. Danach kann der Dienst rcxdm neu gestart werden. Der Computer ist nun auf den Ports 5901 (VNC) und 5801 (VNC über Browser) zu erreichen.

In der zweiten Möglichkeit kann man andere Auflösungen für VNC freischalten. Der Port 5x01 liefert die Auflösung 1024x768, 5x02 1280x1024 und 5x03 1600x1200. Hierzu rufen wir wieder das Programm YAST auf und unter Netzwerkdienste Netzwerkdienste (xinetd) werden alle VNC Dienste (vnc1, vnc2, vnc3, vnchttp1, ..) aktiviert. Auch hier muss sie Datei kdmrc editiert und rcxdm neu gestartet werden.

Der VNC Server muss im Runlevel 5 laufen, da es sonst keinen laufenden X-Server gibt.

1.2 Verbindung für einen

Anstatt generell die Freigabe des Computers zu machen, kann auch jeder einzelne Benutzer den seinen Desktop freigeben. Hierbei wird der VNC Server von Hand gestartet. Nach der Eingabe des Befehls vncserver wird man nach einem Passwort gefragt. Dieses Passwort wird bei dem Verbindungsaufbau abgefragt. Bei dem erfolgreichen starten des Servers erhält man die Meldung, the new X desktop is tux:5. Anschließend ist die Datei ~/.env/xstartup zu editieren. In der letzten Zeile steht der anzuzeigende Desktop. Standardmäßig ist der twm aktiviert. Möchte man einen anderen Desktop, so kann man für KDE den Wert startkde, für Gnome gnome, für XFCE dann startxfce4 und bei Openbox openbox. Das & Zeichen am Ende darf nicht gelöscht werden.

Den VNC Server kann man mit dem Befehl vncserver kill tux:5 beenden.

Möchte man das starten des VNC Servers automatisieren, so ist der Aufruf in der .profile Datei vorzunehmen.

2. SSH

Eine Remote Verbindung mittels SSH ist einer Telnet Verbindung vorzuziehen, da im Gegensatz zu einer Telnet Session die Übertragung verschlüsselt durchgeführt wird. In der nachfolgenden Tabelle ist ein Auszug der Optionen für SSH (aus Linux User 11.2017).

Option Beschreibung
-2 Nur Protokollversion 2
-4 Nur IPv4-Adressen
-6 Nur IPv6-Adressen
-b IP IP-Adresse verwenden
-C Kompression verwenden
-F Datei Angabe alternative Konfigurationsdatei
-i Datei Angabe der Private-Key Datei
-p Port Angabe der Portnummer
-v Ausgabe der Meldungen
-t Interaktive Menüs
-w Rechner:Port Weiterleiten der Standardein- und -ausgabe vom lokalen System zum entfernten System
-X Display ungeschützt umleiten
-Y Display geschützt umleiten
-N Für Tunnelzwecke, kein Commando

2.1 SSH Konfiguration

Die Konfiguration von SSH wird in der Datei sshd_config im Verzeichnis /etc/ssh vorgenommen. In der nachfolgenden Tabelle sind einige Optionen aufgelistet.

Schlüssel Wert Beschreibung
PermitRootLogin no / yes Root-Zugang erlauben
AllowGroups Gruppe Nur Benutzer in Gruppe dürfen sich anmelden.
AllowUsers User Nur Benutzer User darf sich anmelden
PasswordAuthentication no / yes Unterbindet das Anmelden mit einem Passwort
ChallengeResponseAuthentication no / yes Nur über einen Schlüssel anmelden
PermitEmptyPasswords no / yes Keine leeren Kennwörter erlauben
Port Nummer Abweichenden Port festlegen
ListenAddress IP Netzwerkschnittstelle benutzen, je IP-Adresse eine Zeile
MaxSessions Auf kritischen Systemen so niedrig wie möglich (1)
MaxStartups Auf kritischen Systemen so niedrig wie möglich (1)

In der nachfolgenden Tabelle sind die wichtigsten Client Dateien für SSH aufgelistet. Sie befinden sich alle im Verzeichnis ~/.ssh

Name Beschreibung
config Benutzerdefinerte Einstellungen, überschreibt die Systemeinstellungen
known_hosts Liste der Systeme, wo schon eine Verbindung aufgebaut wurde und der Schlüssel akzeptiert worden ist.
authorized_keys Öffentlicher Schlüssel, wenn der Rechner als Server fungiert.
id_rsa Privater Schlüssel
id_rsa.pub Öffentlicher Schlüssel

2.2 Root Login disable

In der Datei /etc/ssh/sshd_config ist der Eintrag PermitRootLogin auf no zu setzten, um das Root Login zu verbieten. Für PermitRootLogin kann man folgende Parameter setzen:

Parameter Beschreibung
yes Anmelden am System erlaubt
no Anmelden am System nicht erlaubt
without-password Das Anmelden ist ohne Passwort möglich
forced-commands-only Anmelden mit public key möglich, aber nur in Verbindung mit der command Option.

2.3 User Verbindungen

Der Eintrag AllowUsers in der Datei /etc/ssh/sshd_config mit die zugelassenen User auf, die eine SSH Verbindung aufbauen dürfen. Die Syntax für den Eintrag lautet: AllowUsers *

Ebenso muss die Variable PasswordAuthentication auf yes gesetzt werden.

2.4 SSH Banner

Möchte man bei einer SSH Verbindung ein Banner anzeigen, so muss in der Datei /etc/ssh/sshd_config die Zeile #Banner auskommentiert und der Pfad zur Banner Datei angegeben werden.

uws@tux>grep Banner /etc/ssh/sshd_config
Banner /etc/ssh/sshd-banner

uws@tux>cat /etc/ssh/sshd-banner
*************************************************
WARNING:
========
Only authorized User to used this system.
Are you not authorized User, leave this session.
*************************************************

2.5 SSH Dienst

Bei jeder Änderung an der SSH Konfiguration muss der Dienst neu gestartet werden.

root@tux>/etc/init.d/sshd restart

root@tux>service sshd restart

root@tux>#unter SystemD
root@tux>systemctl restart sshd

2.6 X11 Forwarding

Möchte man die Graphische Ausgabe auf seinem Rechner haben, so schaltet man auf dem Zielrechner das X11Forwarding ein. In der Datei /etc/ssh/sshd_config werden die Parameter X11Forwarding yes, X11DisplayOffset 10 und X11UseLocalhost yes aktiviert.

uws@tux>ssh X C uws@tux01

uws@tux01>export DISPLAY=tux:10.0

uws@tux01>xclock &

2.7 SSH Key erstellen

Einen Schlüssel kann man mit ssh-keygen erstellt werden. Es werden zwei Schlüssel erstellt, ein Privater und ein Public Schlüssel. Den Public Schlüssel kann an andere Remote Systeme gesendet werden. Lässt man bei der Passwort Abfrage das Passwort leer, so kann man sich später an dem Remote System ohne Passwort anmelden. Kann gut in Scripte verwendet werden.

uws@tux>ssh-keygen t rsa b 4096

-t => Typ des Schlüssels, hier RSA -b => Länge des Schlüssels, hier 4096 Bits. Je länger, desto schwerer zu entschlüsseln.

2.8 SSH Key senden

Den erstellen Public Key Schlüssel kann man mit ssh-copy-id zu den Remote Systemen geschickt werden.

uws@tux>ssh-copy-id <user>@<hostname>

2.9 SSH Key entfernen

Hat sich der SSH Key eines Remote Zieles verändert, so kann man den SSH Key aus der Datei known_host mit dem folgenden Befehlt entfernen.

uws@tux>ssh-keygen R tux10 f /home/uws/.ssh/known_hosts

2.10 Alias

In der Datei ~/.ssh/config können Verbindungen definiert werden, die dann mit einem Alias aufgerufen werden. Die config-Datei darf nur für den User bearbeitbar sein. Es muss unbedingt mit chmod 600 auf diese Datei gemacht werden, sonst kommt es zu einer Fehlermedung.

uws@tux>cat ~/.ssh/config
Host Remote1
 HostName 10.81.3.16
 User Carl
 CheckHostIP no

uws@tux>ssh Remote1

2.11 TCP-Stealth

Wird in der Datei /etc/ssh/sshd_config die Option TCPStealthSecret auf dem Server / Client aktiviert, so klappt es mit der Verbindung. Ansonsten wird sie abgelehnt. Der eingetragene Wert ist ein Autorisierung-Token. Nur wenn beide gleich sind, wird eine Verbindung ausgebaut. Diesen Modus kann man nur einschalten, wenn auch der Kernel mit TCPStealthSecret kompiliert worden ist.

2.12 Match

Mit Match kann man Parameter gezielt setzen. Entweder für User, Gruppen, Computer, Ports, Adressen oder Local Adressen. Die Syntax eines Match Blocks ist:

Match <Condition> <Value>
    Parameter <new Value>
    Parameter <new Value>

In dem Block kann man folgende Parameter setzen.

AcceptEnd AllowAgentForwarding AllowGroups
AllowStreamLocalForwarding AllowTcpForwarding AllowUsers
AuthenticationMethods AuthorizedKeyCommand AuthorizedKeyCommandUser
AuthorizedKeysFile AuthorizedPrincipalsCommand AuthorizedPrincipalsCommandUser
AuthorizedPrincipalsFile Banner ChrootDirectory
DenyGroups DenyUsers ForceCommand
GatewayPorts GSSAPIAuthentication HostbasedAcceptKeyTypes
HostbasedAuthentication HostbasedUsesNameFromPacketOnly IPQoS
KbdInteractiveAuthentication KerberosAuthentication MaxAuthTries
MaxSessions PasswordAuthentication PermitEmptyPasswords
PermitOpen PermitRootLogin PermitTTY
PermitTunnel PermitUserRC PubkeyAcceptedKeyTypes
PubkeyAuthentication RekeyLimit RevokedKeys
RhostsRSAAuthentication RSAAuthentication StreanLocalBindMask
StreamLocalBindUnlink TrustedUserCAKeys X11DisplayOffsett
X11Forwarding

Als Beispiel wird ein Anmelden als Root ohne Passwort erlaubt und ein User muss sich mit Kennwort anmelden.

PermitRootLogin no
PasswordAuthentication no
AllowUsers paul root

Match Address 192.168.70.0/24,192.168.8.0/24,127.0.0.1
      PermitRootLogin without-password
      PasswordAuthentication yes

2.13 Chroot für Sftp

Mit ChrootDirectory kann man wie in Linux eine Chroot Umgebung für Sftp-User einrichten. In dieser Umgebung können die Sftp-User nicht die anderen Verzeichnisse sehen.

root@tux># create group sftpuser
root@tux>groupadd sftuser

root@tux># create user paul
root@tux>useradd d /sftp/paul G sftpuser s /bin/false paul

root@tux># create directories and permissions
root@tux>mkdir p /sftp/paul
root@tux>chown R root:root /sftp
root@tux>chmod R 775 /sftp
root@tux>mkdir p /sftp/paul/daten
root@tux>chown paul:sftuser /sftp/paul/daten
root@tux>chmod 775 /sftp/paul/daten

root@tux># edit /etc/ssh/sshd_config
# disable next
#Subsystem sftp /usr/lib/ssh/sftp-server

# new value
Subsystem sftp internal-sftp

# ChrootPermission root:root 775
# Directorys under Chroot, paul:sftpuser 775
Match User paul
      ChrootDirectory /sftp/paul
      X11Forwarding no
      AllowTcpForwarding no
      PermitTTY no
      Banner /etc/ssh/sftp.txt
      ForceCommand internal-sftp

root@tux># restart sshd service
root@tux>systemctl restart sshd

2.14 Error

Taucht in der /var/log/messages folgender Fehler auf: sshd syslogin_perform_logout:logout() returned an error, so ist die Datei utmp im Verzeichnis /var/run neu anzulegen.

root@tux>rm /var/run/utmp

root@tux>touch /var/run/utmp

2.15 Beispiele

uws@tux># Dateien packen und senden
uws@tux>tar czvf - <path> | ssh user@host cd <path> && tar xzpvf –‘

uws@tux># Dateien holen und entpacken
uws@tux>ssh user@host cd <path> && tar czvf - <path> | tar -xzfv -

3. Displaymanager

3.1 Konfiguration

Die Variable DISPLAYMANAGER_REMOTE_ACCESS wird auf yes gesetzt, die sich in der Datei /etc/sysconfig/displaymanager befindet. Danach in der Datei /etc/X11/xdm/Xaccess das Kommentarzeichen aus der Zeile * #any host can get a login entfernen.

3.2 Dienst starten

Nach einer Änderung in der Datei displaymanager müssen folgende Schritte gemacht werden.

root@tux>SuSEconfig

root@tux>rcxdm restart

Bei Änderungen in der Datei Xaccess muss der Dienst neu gestartet werden.

root@tux>kdm Stopp

root@tux>kdm start

root@tux># SystemD Systeme
root@tux>systemctl restart kdm

3.3 Root Login GDM

Standardmäßig kann man sich nicht mit dem User root an einem Oracle Linux Server anmelden (GUI). Damit man sich anmelden kann, muss in der Datei /etc/pam.d/gdm die folgende Zeile auskommentiert werden:

auth required pam_succeed_if.so user != root quit

3.4 Anmelde Bildschirm

Damit man bei einer Remote Anmeldung (GUI) die Login Oberfläche angezeigt bekommt, fügt man in der Datei /etc/gdm/custom.conf im Abschnitt [xdmcp] den Eintrag Enable=true ein

4. SCP

Um Dateien zwischen von einem Linux Rechner auf einem anderen Rechner zu kopieren, so gibt es hierzu den Befehl scp. In den nachfolgenden Beispielen werden zuerst Dateien von einem Rechner zu einem anderen kopiert. Im zweiten Beispiel wird eine Verbindung zu dem Zielrechner mit einem anderen Benutzername hergestellt. Und im letzten Beispiel werden Dateien von einem entfernten Rechner kopiert.

uws@tux>scp /home/uws/transfer/*.jpg tux01:/home/uws/transfer

uws@tux>scp /home/uws/transfer*.jpg jan@tux01:/home/jan/transfer

uws@tux>scp jan@tux01:/home/jan/bin/*.sh uws@tux:/home/uws/bin

In der nachfolgenden Tabelle sind einige Optionen Optionen für scp aufgelistet.

Option Beschreibung
-C Kompremieren
-F Datei Alternative Konfigurationsdatei
-i Datei Privater Schlüssel Datei
-l Wert Bandbreite, Angabe in kbit/s
-o Option SSH-Optionen
-P Port Portangabe, Standard Port 22
-p Dateiattribute übertragen
-q Meldungen einschränken
-r Rekursiv kopieren, Symlinks folgen
-v Ausführliche Meldungen