14 KiB
Executable File
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 |