27.08.2014, 22:47 UhrDeutsch | English
Hallo Gast [ Registrierung | Anmelden ]

Einrichtung von SSH und NX über Public Key

Sicherheitswarnung:
Das hier beschriebene Vorgehen in Bezug auf !FreeNX weist eklatante Sicherheitsprobleme auf und entsprechende Änderungen sollten schnellstmöglich rückgängig gemacht werden! Dies betrifft insbesondere evtl. hinzugefügte NX Keys an authorized_!keys2 und Änderungen am
userdel -r nx
apt-get remove --purge freenx

danach kann !FreeNX bei Bedarf wieder installiert werden.



In dieser Anleitung könnt Ihr folgendes finden:
Kapitel 1: Anlegen einer Pubkeyauthentication für ssh
Kapitel 2: Aktivieren eine NX Verbindung über Pubkeyauthentication
Kapitel 3: Zugriff auf den lokalen Arbeitsbereich vom Server (Entfernte Mausbewegungen am Server sichtbar)

Als Client bezeichne ich den PC, der sich verbinden will und Server ist dann natürlich der PC, zu dem verbunden wird.

Kapitel 1 - Pubkeyauthentication für ssh:


Client

Folgendes muss auf jedem Clienten erledigen erledigt werden, der sich zu dem PC mit der Pubkeyauthentication verbinden will:
Mit dem normalen User benötigt man einen Schlüssel, den man anschließend am Server registriert. Dazu gibt man in einer Shell folgendes ein:
ssh-keygen -t rsa -b 2048

Man wird dort nach einem Passwort gefragt. Dies Passwort is zukünftig für die ssh-Verbindung zuständig. Sollte man keines eingeben, wird später die Verbindung sofort aufgebaut (nicht empfehlenswert außer man will mit rsync arbeiten!)

Anschließend findet man im /home/<user>/.ssh/ zwei neue Dateien. Einmal die id_rsa, welche dem Schlüssel für den Clienten entspricht und die id_rsa.pub, welche am Server eingetragen werden muss. Am bestem man kopiert sich die Datei auf den USB-Stick, damit man sie am Server hat (oder alternativ so wie ich per Mail)

Damit sind die Arbeiten am Clienten auch schon vorbei und man kann zum Server wechseln.

Server

Hier muss man zuerst mal den SSH-Server starten. Dazu einfach folgendes in die Shell eintippen:
sux
<passwort>
/etc/init.d/ssh start

Anmerkung: Alle weiteren Befehle, sofern nicht anders erwähnt, sind in so einer Root-Shell auszuführen!

Damit der Server automatisch beim Booten startet:
unfreeze-rc.d
rcconf
freeze-rc.d

Im rcconf eine Kreuz bei ssh setzen (mit der Leertaste und mit Eingabe bestätigen)

Nun müss die Datei /etc/ssh/sshd_config angepasst werden:
mcedit /etc/ssh/sshd_config
/etc/init.d/ssh restart


In der Datei müssen folgende Änderungen gemacht werden:
PermitRootLogin no
StrictModes no
RSAAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile     /etc/ssh/authorized_keys
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
PasswordAuthentication no
UsePAM no


Damit ist sichergestellt, dass man sich nur per Pubkeyauthentication einloggen kann. Die AuthorizedKeysFile hab ich absichtlich auf /etc/ssh/authorized_keys gesetzt, damit später die NX Verbindung auch funktioniert!

Nun muss man noch die Keys importieren. Dazu geht man in den Ordnern in dem sich die id_rsa.pub befindet und gibt folgendes in eine Shell ein:
cat id_rsa.pub >> /etc/ssh/authorized_keys


Nun kann man versuchen, sich vom Client aus auf den Server zu verbinden.
Einfach mit dem normalen User folgendes tippen:
ssh -X <ip-adresse>
<passwort>

Das Passwort ist hierbei das, welches man beim Anlegen des Keys eingegeben hat. Schon kann man auf dem Server arbeiten. Die Option -X gibt an, dass man auch grafische Programme starten darf. Nur werden diese lange laden! Besser ist es, hierzu der NX-Server geeignet.

So damit ist Kapitel 1 beendet.

Tipp für ssh:
Das Programm screen ist nützlich wenn man sich zwischendurch ausloggt (Fenster einfach wegklickt/beendet) und der Server trotzdem weiterrechnen soll. mit screen -r kann man später wieder auf dieses Fenster verbinden.


Kapitel 2 - NX für PubkeyAuthentication


Server

So, da bei Kanotix der FreeNX? ja bereits installiert ist, werde ich gleich die Konfiguration erklären.
Man gibt dazu folgendes in eine Shell ein:
nxsetup-kanotix

Anmerkung: "dpkg-reconfigure freenx" entspricht in etwa den nxsetup-kanotix.

Sicherheitswarnung:
Es wird aus Sicherheitsgründen dringlich davon abgeraten den Inhalt von users.id_dsa.pub an authorized_keys anzufügen, dies umgeht die 2-stage Sicherheitsmechanismen von FreeNX und kann bei Fehlkonfigurationen leicht jedem externen User Vollzugriff auf den Account ermöglichen!

Dort wählt man den zweiten Punkt aus. Es werden nun Keys für den NX Server erstellt und unter /etc/nxserver/ gespeichert. Die Keys tragen den Namen users.id_dsa und users.id_dsa.pub und haben auch die gleiche Bedeutung wie die normalen Keys. Nur dieses mal kopiert man die user.id_dsa auf den USB-Stick, da man die Datei am Client benötigt. Die users.id_dsa.pub muss man in die authorized_keys eintragen:
cd /etc/nxserver
cat users.id_dsa.pub >> /etc/ssh/authorized_keys

Sicherheitswarnung:
Es wird aus Sicherheitsgründen dringlich davon abgeraten den Inhalt von users.id_dsa.pub an authorized_keys anzufügen, dies umgeht die 2-stage Sicherheitsmechanismen von FreeNX und kann bei Fehlkonfigurationen leicht jedem externen User Vollzugriff auf den Account ermöglichen!

Jetzt muss man noch die /etc/nxserver/node.conf Datei anpassen:
mcedit /etc/nxserver/node.conf


Man ändert folgende Zeilen:
SSHD_PORT=22
ENABLE_PASSDB_AUTHENTICATION="1"
ENABLE_SSH_AUTHENTICATION="1"
ENABLE_SU_AUTHENTICATION="1"
damit schaltet man das Einloggen auf ssh über Keys um.

Sicherheitswarnung:
Das folgende ist absoluter Wahnsinn und sollte unter allen Umständen rückgängig gemacht werden, der Systemuser nx hat privilegierten Zugriff auf das Sessionmanagement und dies kommt insbesondere in Verbindungen mit den Änderungen an node.conf einem
Außerdem musste ich noch den User nx von seinem lock befreien, da ansonsten ebenfalls kein Einloggen möglich war:

passwd -u nx
damit wäre man mit dem Server fertig und man braucht sich nur noch verbinden.
Sicherheitswarnung:
Das obige ist absoluter Wahnsinn und sollte unter allen Umständen rückgängig gemacht werden, der Systemuser nx hat privilegierten Zugriff auf das Sessionmanagement und dies kommt insbesondere in Verbindungen mit den Änderungen an node.conf einem

Client

Hier muss eigentlich nicht viel getan werden.
Man startet einfach den nxclient über das K-Menü oder als normaler User mit:
/usr/NX/bin/nxclient


Beim ersten Start kommt der Connection Wizard und man folgt einfach den Schritten.

  1. Seite:
    Session ... wie die Verbindung heißen soll
    Host ... IP-Adresse oder URL des Servers
    Port ... wenn in den Config nicht geändert 22
  2. Seite:
    Unix und KDE passen normal. Natürlich kann man was anderes wählen.
    Available Area ist fei wählbar.
    SSL encryption ... hier unbedingt den Harken setzen!
  3. Seite:
    Create shortcut on desktop ... kann man aktiveren wenn man will
    Show the Advanced Configuration ... unbedingt den Harken setzen
  4. Seite (Advanced Configuration)
    Hier gibt es einen Knopf mit der Aufschrift "Key..." drückt man diesen, geht ein Fenster auf, wo man den user.id_dsa eintragen muss. Einfach auf Import klicken und die Position des Keys angeben. Anschließend, wenn man den richtigen Key sieht, mit Save bestätigen. Damit ist auch die Gegenkopplung abgeschlossen. (Ich musste beim Import den File type auf Any files ändern ...) Eventuell kann man den Harken bei remember my password setzen.

Anschließend speicht man alles mit Save und geht mit OK auf den Anmeldeschirm. Username und Password sind die man am Server definiert hat.
Damit ist auch Kapitel 2 zu Ende.


Kapitel 3 - Zugriff auf Screen0 bzw Screen1


Dazu muss man nur am Server 2 Kleinigkeiten einstellen:

  1. Im Kontrollzentrum unter Internet & Netzwerk klickt man auf Arbeitsfläche freigeben. Dort aktiviert man "Verbindung ohne Einladung erlauben" und "Steuerung der Arbeitsfläche durch uneingeladene Verbindungen erlauben". Die anderen zwei sollten deaktiviert werden. Das Passwort ist wichtig wenn auf dem Server keine Firewall installiert ist welche den Port 5900 blockt!
  2. Jetzt braucht man nur mehr das Programm "krdc" zum Verbinden. Dies legt man sich am besten gleich auf den Desktop am Server. In einer Rootshell:
    apt-get update
    apt-get install krdc
Zum Verbinden gibt man dort "localhost:0" oder "localhost:1" ein und schon hat man Zugriff auf den Arbeitbereich vom eingeloggten User. Dieser Screen bleibt dann auch erhalten, wenn man sich ausloggt. Entspricht dem Screen-Programm in der Konsole.


Quellen:
http://gentoo-wiki.com/Talk:HOWTO_FreeNX_Server
http://wiki.ltsp.org/twiki/bin/view/Ltsp/FreeNX


Mit bleibt jetzt nur mehr übrig, Euch viel Spaß mit den Remotearbeiten zu wünschen. Bei Fehler in der Anleitung bitte einfach bei mir melden und ich bessere es gleich aus.

lg
Raider700


zurück

XML Revisions of $tag
Seiten-History :: Letzter Editor : RoEn :: Eigentümer : Raider700 ::
Powered by pnWikka 1.0
 
 
Deutsch | English
Logos and trademarks are the property of their respective owners, comments are property of their posters, the rest is © 2004 - 2006 by Jörg Schirottke (Kano).
Consult Impressum and Legal Terms for details. Kanotix is Free Software released under the GNU/GPL license.
This CMS is powered by PostNuke, all themes used at this site are released under the GNU/GPL license. designed and hosted by w3you. Our web server is running on Kanotix64-2006.