Inhaltsverzeichnis

Einrichtung SSH standart


Autor: F4RR3LL|sven
E-Mail: sven.richter@nixhelp.de
Stand: 01.10.2009


Zugangssoftware


Zum Einloggen in den Server via SSH hat man folgende Möglichkeiten→

Putty oder auch winSCP.

Hier bekommt ihr Putty:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
und hier winSCP:
http://winscp.net/eng/docs/lang:de


Unter Debian gibt es wie immer viele Wege um sich später die ganzen Configs anzuschaun und diese zu bearbeiten.

Ich ich nutze hier nun nachfolgend „nano“, da dies meistens auf den Servern bereits vorinstalliert ist.

System aktualisieren

Um das System auf den aktuellen Stand zu bringen nutzt man die nachfolgenden Befehle unter Debian.

apt-get update
apt-get upgrade


Neuen User anlegen


Um später den Root Zugang auf der Console zu sperren, benötigt man natürlich einen (normalen) Useraccount ohne Root
Rechte mit dem wir die normalen Arbeiten erledigen können.

Einen neuen User legt man wie folgt an→

Syntax:
useradd [-u UID [-g Gruppe] [-d Home] [-s Shell] [-c Bemerkungen] Username



Das könnte also zB so ausschauen→

#useradd -u 123 -g users -d /home/test -s /bin/sh -c 'toller testacc' test



Ein nicht gewöhnlicher Benutzername ist sehr vorteilhaft, zB fregutd3 oder ähnliches,
dieser muß dann zum Beispiel für Brute Force auch erstmal gefunden werden…

Somit hat man den User Test angelegt er hat denn die UserID 123 und sein home Verzeichnis ist /home/test desweiteren ist seine
shell /bin/sh, er kann sich also einloggen und auf der Console normal arbeiten….

Man kann, wenn das Heimatverzeichnis noch nicht besteht zusätzlich zu -d auch -m verwenden. Mit -m wird das Verzeichniss
falls es nicht vorhanden ist erstellt. -d legt nur ein Verzeichnis fest, welches schon besteht. Man muss dann folgendes
schreiben→

useradd -u 123 -g users -m -d /home/test -s /bin/sh -c 'toller testacc' test




Der User test benötigt noch ein Passwort.

Dies legt man folgendermaßen an →

passwd test



anschließend wird man zweimal zur Eingabe eines Passwortes aufgefordert.
Wenn dies erledigt ist kann man einen neuen Account testen, indem man sich einfach mal in Putty mit den neuen Daten einloggt.


Zwischenstand: Bisher hat man also einen funktionsfähigen Editor und einen neuen User ohne Root Rechte

SSH Configurieren


Nun gilt es den SSH Zugang anzupassen.

#nano /etc/ssh/sshd_config



wenn man diesen Befehl in der Console schreibt öffent sich die Configurationsdatei für SSH.

suche folgende Stelle →

PermitRootLogin yes



und ändere es zu

PermitRootLogin no



damit sagt man dem Server, dass man von nun an dem User Root nicht mehr erlaubt sich auf der Console einzuloggen.

(Hinweis für OvH ler: Wenn man Rootlogin sperrt ist kein Login durch einen Admin von ovh möglich,
um eventuell Arbeiten am Server zu tätigen.)

Desweitern kann man unter dem PermitRootLogin folgendes schreiben

AllowUsers Test



das Test ersetzt man mit eurem User den ihr für die Console benötigt.
Damit hat nur noch dieser User Zugriff auf die Console.

Man könnt auch noch zu Anfang der Config nach

# What ports, IPs and protocols we listen for 
Port 22 


suchen und auch diesen Port ändern ..am besten in einen Bereich hinter 1024.
Solltet man diese beiden Änderungen gemacht haben, so muss man nun die Änderungen speichern.

Das geht mit →

strg + o



Nun hat man zwar die Datei angepasst, man muss dem Server noch sagen das er die Änderung auch anwenden soll.

Das macht man mit folgenden Befehl:

#/etc/init.d/ssh reload



Nach dem Reload ist ein einloggen als Root auf der Console oder im WinSCP nicht mehr möglich.

Man muss sich jetzt mit dem User den man angelegt hat einloggen.
Mit diesem User hat man natürlich keine Root Rechte.

Solltet man einmal Root Rechte benötigen so tippt man →

su -


in die Console. Der Server wird nach dem Rootpasswort fragen.
Nach Eingabe das Rootpasswortes hat man Root rechte.

Um diese wieder abzulegen schreibt man einfach

exit



in die Console.

Gruß F4RR3LL/Sven


Zurück zum Index


Einrichtung SSH mit KEY

Autor: sledge0303
E-Mail: sledge0303@hotmail.de Erstellt am: 30.10.2007

In diesem Howto wird die Erstellung von sog. public Keys für die Authentifizierung zum einloggen in den SSHd Dienst beschrieben. Keys haben sehr viele Vorteile, auch einen Nachteil. Sollte der Key mal verloren gegangen sein, gelöscht usw worden sein, ist ein Login nicht mehr möglich. Der Admin muss dann einen neuen Key erstellen und dem User zur Verfügung stellen.
Der Key, insbesonders der Rootkey, sollte nach Möglichkeit nicht lokal auf einem Produktivrechner abgelegt werden, stattdessen auf einen USB Key gespeichert und erst bei Nutzung des Keys an den PC/Desktoprechner angeschlossen werden. Wen eine unbefugte Person im Besitz des Keys und des Passworts ist, kann diese auf dem Server sein Unwesen treiben. Für die Ausführung dieses Howtos wird vorausgesetzt, dass das Tool 'putty' bereits installiert wurde. Wer es bislang noch nicht getan hat, sollte dieses umgehend installieren.

1. Wir erstellen den Public Key

Anhand einiger Bilder möchte ich die Erstellung des Pubkeys dokumentieren. Keine Angst, es ist nicht schwer ;-)
Zuerst erstellen wir einen User, wir nennen ihn fortlaufend 'testuser'.

adduser testuser

Zuerst öffnen wir 'Puttygen', damit erstellen wir unseren Key.
…zuerst markieren wir SSHD DSA 1024

Klicken anschließend auf Generate und bewegen den Mausanzeiger auf dem Bildschirm bis der Key erstellt wurde.

Bild 1
Erstellen des Keys

Anschließend setzen wir für den neu erstellten Key ein Passwort, damit wird der Zugang zum SSH zusätzlich abgesichert. Ich persönlich empfehle eine Kombination aus Zahlen, Buchstaben und mindestens einem Sonderzeichen wie '!?&…'



Bild 2
Passwort für den Key festlegen

Danach speichern wir diesen Key in das Homeverzeichnis oder am besten direkt auf den USB Stick. In meinem Beispiel benutzen wir das lokale Homeverzeichnis:

Bild 3
Passwort als 'Private Key' abspeichern
Zur weiteren Konfiguration noch nicht Puttygen schliessen, den Inhalt dieses Keys brauchen wir noch

Konfiguration des SSH Servers


Jetzt arbeiten wir weiter auf der Konsole und sichern zuerst die alte Konfigurationsdatei von SSHd.

mv /etc/ssh/sshd_config /etc/ssh/sshd_config.OLD

Jetzt hast du zwei Möglichkeiten, du kannst einmal root das Login erlauben oder wie im 2. Skript Login für root deaktivieren. Ich empfehle keinen Rootlogin, man kann sich bequem auf der Konsole mit su Superuserrechte aneignen.

Rootlogin erlauben:

| Mit Rootlogin
cat > /etc/ssh/sshd_config << "EOF"
Port 22
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 768
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
RSAAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile   %h/.ssh/authorized_keys
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
IgnoreUserKnownHosts yes
PermitEmptyPasswords no
ChallengeResponseAuthentication no
PasswordAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes
EOF


Rootlogin deaktivieren:

| Ohne Rootlogin
cat > /etc/ssh/sshd_config << "EOF"
Port 22
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 768
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin no
AllowUsers testuser
StrictModes yes
RSAAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile   %h/.ssh/authorized_keys
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
IgnoreUserKnownHosts yes
PermitEmptyPasswords no
ChallengeResponseAuthentication no
PasswordAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes
EOF


Noch wird SSH nicht neu gestartet.
Wir ermöglichen dem User 'testuser' den SSH Zugang:

mkdir -p /home/testuser/.ssh &&
nano /home/testuser/.ssh/authorized_keys

Wir markieren nun den Inhalt aus Puttygen und fügen ihn als eine Zeile per Copy and Paste in die geöffnete Datei ein:


Bild 4
Keyinhalt kopieren

In die geöffnete Datei in /home/testuser/.ssh/authorized_keys einfügen

Bild 5
Key auf den Server kopieren

Anschließend wird abgespeichert und der SSHd Dienst neu gestartet:

/etc/init.d/ssh restart

Somit ist nur noch ein Einloggen per Key auf die Konsole möglich.
Möchtest du für weitere User, incl. root einen Key erstellen, muss der Key nach oben genannten Schema in das jeweilige Homeverzeichnis erstellt werden:

mkdir -p /$HOMEVERZEICHNIS/.ssh
nano /$HOMEVERZEICHNIS/.ssh/authorized_keys

Wir starten Putty und tragen den Key mit diesem Schema ein:

Unter SSH/Auth trägst du den Pfad zu deinem Key an, wie beschrieben im lokalen Homeverzeichnis:


Bild 6
Putty konfigurieren

Unter Session gibst du nun die URL zzgl. Port zu deinem Server ein und speicherst alles ab als 'testeintrag'.


Bild 7
Putty konfigurieren

Der erste Login mit deinem Key


Bild 8
Erste Login

Wie du siehst es ist verdammt einfach einen sicheren Zugang zu deiner Konsole zu erstellen.


Zurück zum Index