OpenSSH
Installation
Für alle folgenden Anleitungen ist ein Shellzugang zur NSLU notwendig. Dies kann entweder durch temporäre Aktivierung des Telnetzugangs (nur Aktiv bis zum Neustart der Box) oder deutlich komfortabler und sicherer mittels OpenSSH erfolgen. Die Übertragung zwischen Client und NSLU erfolgt SSL verschlüsselt (im Gegensatz zu Telnet das gänzlich ohne Verschlüsselung auskommt).
Telnet Zugang aktivieren, falls noch nicht aktiv (siehe → Firmware flashen/Telnet).
ipkg update ipkg install openssh
Windows Client
Als Clients sind Putty und Winscp sehr empfehlenswert.
- Putty empfiehlt sich vor allem für alle Administrationsaufgaben auf der Kommandozeilenebene.
- Winscp ist ähnlich eines FTP-Programms, vor allem auf Mausbedienung ausgelegt. Es ist aber auch relativ einfach möglich, Konfigurationsdateien mit einem Windowskonformen Editor einfacher als mit dem rudimentären vi, zu bearbeiten. Es ist auch einfach möglich, Datein per Drag&Drop zwischen Windows-PC und Linux (hier NSLU) hin und her zu kopieren.
Putty
Download von Putty: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Hinweis: Am einfachsten zu installieren ist die Windows-Installer Version. Also diese downloaden. Den Anweisungen des Installers folgen um Putty zu installieren.
WinSCP
Download von WinSCP: http://winscp.net/eng/download.php Zur Installation den Anweisungen des Setup-Programms folgen. Hinweis: Während der Installation wird nach dem gewünschten User Interfaface gefragt. Es steht zur Wahl:
- Norton Explorer Imitation: Zwei Dateifenster. Linkes Fenster: Lokale Windows Verzeichnisse. Rechtes Fenster: Remote (NSLU) Directory
- Windows Explorer Style: Verzeichnisbaum und Dateifenster der NSLU. Kein lokales Fenster für Windows files.
Funktions Test
Putty
Um WinSCP und die SSH-Verbindung zur NSLU zu testen, folgende Schritte durchführen:
- Putty starten
- Folgende Einstellungen vornehmen:
Protokoll SSH (Standardmäßig angewählt) Port 22 (Standard für SSH) Hostname: IP_der_NSLU
- Button Open anklicken
- Im sich öffnenden Fenster User: root und Passwort: root_Passwort eingeben
WinSCP
Um WinSCP und die SSH-Verbindung zur NSLU zu testen, folgende Schritte durchführen:
- WinSCP starten
- Folgende Einstellungen vornehmen:
Hostname: IP_der_NSLU Port Number: 22 User Name: root Password: root_pwd File protocol: SCP oder SFTP
Hinweis: Wenn die Verbindungsdaten mittels Button "Save" gespeichert werden sollen, sollte aus Sicherheitsgründen hier kein Passwort eingegeben werden. Das Passwort wird dann später abgefragt.
- Button Login drücken
- Beim ersten Connect zur NSLU erscheint eine Warnung, dass der verwendete Schlüssel nicht in der Datenbank von WinSCP zu finden sei. Button Yes anklicken.
- Passwort des Users root eingeben, falls nicht bereits im Schritt 2 erfolgt
- Das Verzeichnis root wird angezeigt
Erweiterung: Zugang mittels Public Key
Es ist möglich, sich mittels sog. Public- und Private-Keys anzumelden. Dann entfällt die nötige Eingabe von User und Passwort. Zusätzlich wird die Sicherheit erhöht. Um Zugang zu erreichen ist der korrekte Schlüssel erforderlich anstatt "nur" eines Passwortes. Ein Passwort kann erraten werden, falls es nicht besonders sicher ist, bzw. durch Brut-Force Attacken ermittelt werden. Das Zertifikat kann zur Erhöhung der Sicherheit mit einem Passwort versehen werden. Im lokalen Netz ist dies eigentlich nicht unbedingt nötig. Wenn allerdings die NSLU via Internet per OpenSSH erreichbar sein soll (→ siehe hier, dann ist es empfehlenswert ein Passwort zu vergeben.
Der OpenSSH-Server (NSLU) verwendet den Public Key und der SSH-Client (Putty oder WinSCP zum Beispiel) authentifiziert sich als berechtigter User mit dem Private Key. Deshalb sollte der Private Key nie in fremde Hände geraten.
Generierung von Private und Public Key mittels Puttygen:
- Start:Programme\Putty\Puttygen
- Parameters: 1024 bit / Type=SSH
- Button "Generate" anklicken.
- Mauszeiger solange bewegen, bis der eingeblendete Fortschrittsbalken komplett ausgefült ist
- Password vergeben (2x bei passphrase und confirm passphrase). Hinweis siehe einleteinder Absatz dieses Kapitels.
- Private Key speichern, z.B. nslu_private.key
- den Public Key (Feld "Public Key for pasting into OpenSSH authorized_keys file") komplett mit der Maus markieren und STRG-C drücken, um ihn ins Clipboard zu übertragen.
NSLU konfigurieren
- Folgendes Verzeichnis an der Console einrichten:
cd /root mkdir .ssh chmod og= .ssh cd .ssh
- Den Public Key an die NSLU per Copy&Paste via clipboard und Putty übertragen.
vi authorized_keys
- <rechte Maustaste> betätigen, um den eben kopierten Public Key einzufügen
- File abspeichern und editor beenden
- Die Zugriffsrechte des Pubic Key anpassen:
chmod og= authorized_keys
Putty konfigurieren
- Putty öffnen
- Konfigurationsdaten wie → hier beschrieben
- Zusätzlich im Bereich Connection/SSH/Auth (linker Options-Baum) das eben erstellte Private Key File ("Private key file for authentification") auswählen.
- Zusätzlich im Bereich Connection/Data (linker Options-Baum) User root als Auto-login username eintragen
- Open anklicken
- Im sich öffnenden Fenster sollte erscheinen 'Using username "root".'
- Es sollte keine normale Passwortabfrage wie vor der Einrichtung des Public Key-Verfahrens erscheinen, sondern:
- Falls bei der Generierung des Keys in Puttygen ein Passwort vergeben wurde, wird dies hier abgefragt (Ausgabe in der Form):
Passphrase for key "rsa-key-20080906":
- Nun sollte eine Ausgabe in der Form erscheinen:
Authenticating with public key "rsa-key-20080906"
WinSCP konfigurieren
- WinSCP öffnen
- Konfigurationsdaten wie → hier beschrieben
- Zusätzlich: untere Private Keyfile den eben erstellten Private Key auswählen
- login anklicken
Authorized Keys Only
Trotz eingerichtetem → Public-Key Verfahren, kann die Authentifizierung nachwievor mittels Passwort oder deutlich sicherer mittels Public/Private Key-Verfahren. Nun kann die Authentifizierung mittels Passwort abgeschaltet werden, so dass nur noch Verbindungen mittels passendem Schlüssel möglich sind. Allerdings sollte bedacht werden, dass jeder, der im Besitz des Schlüssels ist, sich einloggen kann, falls kein Schlüssel-Passwortschutz vergeben wurde. Weiterhin sollte bedacht werden, dass falls der Private Key verloren gehen sollte, z.B. durch Festplatten-Crash der Berechtigte User auch keinen Zugriff mehr hat. Deshalb sollte der Private Key zusätzlich an einem sicheren Ort aufbewahrt werden.
Voraussetzung: → Zugang mittels Public Key Abschnitt erfolgreich durchgeführt
Abschaltung der klassischen Passwort Authentifizierung:
vi /opt/etc/openssh/sshd_config
Folgenden Eintrag ändern und evtl. auskommentieren (# Zeichen entfernen):
PasswordAuthentication no
Freigabe Internet
Um via Internet auf die NSLU zugreifen zu können, muß im DSL-Ruter noch eine Portfreigabe/Portweiterleitung eingerichtet werden. dazu muß ein Port aus dem Internet an den Port 22 der NSLU weitergeleitet werden. Es empfiehlt sich, einen anderen Port als 22 (z.B. 2200) aus dem Internet zu verwenden, da er dann bei Standard Portscans evtl. unbeachtet bleibt. Dies erhöht die Sicherheit vor Attacken aus dem Internet. Generell sollte ein sehr sicheres Passwort verwendet werden, noch besser Authentifizierung mittels → Public/Private Key mit sicherer Passwort Phrase (und abgeschalteter → Kennwortauthentifizierung), wenn ein Zugang aus dem Internet gewünscht wird.
Webseite des Routers öffnen und eine Portweiterleitung mit folgenden Daten einrichten:
Name/Bezeichung der Weiterleitung: z.B. NSLU_SSH Protokoll: TCP Von Port: z.B. 2200 An IP-Adresse: IP_der_NSLU An Port: 22