psychodo
30.04.2008, 10:27
Na denn fang ich mal an heute hier nen bissl zu schreiben ….
Also ihr bekommt am herbeigesehnten Tag X von eurem Hoster die heißersehnten Daten
IP 081.54.7.11
User: root
pass: irgendwas
port für SSH 22
Zugangssoftware
\\Nun gilt es erstmal in den Server reinzumarschieren und den SSH Zugang zu verändern→
also loggt ihr euch mit den erhaltenen Daten entweder in Putty oder auch winSCP ein.
Hier bekommt ihr Putty:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html (http://www.chiark.greenend.org.uk/%7Esgtatham/putty/download.html)
und hier winSCP:
WinSCP :: Einleitung (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 nutze Joe.
System aktualisieren
Doch zuersteinmal heißt es
#apt-get update
#apt-get upgrade
damit euer Server auf den neusten Stand kommt.
Anschließend könnt ihr Kumpel Joe installieren mit
#apt-get install joe
Ab nun könnt ihr auf eurem Server sämtliche Dateien aufrufen mit dem Befehl
joe /pfad/zur/datei
und speichern könnt ihr mit
strg + k + x.
Neuen User anlegen
OK, soweit so gut nun aber los ab zur SSH config… doch moment,
eine Kleinigkeit brauchen wir noch.
Denn wenn wir später den Root Zugang auf der Console sperren wollen benötigen wir 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 ausschaun→
#useradd -u 123 -g users -d /home/test -s /bin/sh -c 'toller testacc' test
Somit habt ihr 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….
Ihr könnt übrigens 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. Ich müsstet denn folgendes \\schreiben→
#useradd -u 123 -g users -m -d /home/test -s /bin/sh -c 'toller testacc' test
Der User test benötigt nun natürlich noch ein Passwort.
Das legt man so an →
#passwd test
anschließend wird man zwei mal zur Eingabe eines Passwortes aufgefordert.
Wenn das erledigt ist könnt ihr den neuen Account testen indem ihr euch einfach mal in Putty mit den neuen Daten einloggt.
Wenn alles klappt ist das schonmal Spitze.
So …kleiner Zwischenstand.. bisher habt ihr also einen funktionsfähigen Editor und einen neuen User ohne Root Rechte\\… weiter gehts→
SSH Configurieren
Nun gilt es also endlich den ssh Zugang anzupassen.
#joe /etc/ssh/sshd_config
wenn ihr diesen Befehl in der Console schreibt öffent sich die Configurationsdatei für SSH.
sucht folgende Stelle →
PermitRootLogin yes
und ändert es zu
PermitRootLogin no
damit sagt ihr dem Server, dass ihr von nun an dem User Root nicht mehr erlaubt sich auf der Console einzologgen.
Desweitern könnt ihr unter dem PermitRootLogin folgendes schreiben
AllowUsers Test
das Test ersetzt ihr mit eurem User den ihr für die Console benötigt.
Damit hat nur noch dieser User Zugriff auf die Console.
Ihr 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 ihr diese beiden Änderungen gemacht haben so müsst ihr nun die Änderungen speichern.
Das geht mit →
strg + k + x
So nun habt ihr zwar die Datei angepasst. Jedoch müsst ihr dem Server noch sagen das er die Änderung auch anwenden soll.
Das könnt ihr machen indem ihr folgenden Befehl eingebt
#/etc/init.d/ssh reload
Nach dem Reload ist ein einloggen als Root auf der Console oder im WinSCP nicht mehr möglich.
Ihr müsst euch jetzt mit dem User den ihr angelegt habt einloggen.
Mit diesem User habt ihr natürlich keine Root Rechte.
Solltet ihr mal Root Rechte benötigen so tippt ihr einfach →
#su
in die Console. Der Server wird euch nach dem Rootpasswort fragen.
Nach Eingabe das Rootpasswortes habt ihr Root rechte.
Um diese wieder abzulegen schreibt ihr einfach
#exit
in die Console.
Gruß F4RR3LL/Sven
Zurück zum Index (http://wiki.nixhelp.de/doku.php/start)
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 http://wiki.nixhelp.de/lib/images/smileys/icon_wink.gif
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.
http://www.netvision-technik.de/forum/attachment.php?attachmentid=596
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
http://www.netvision-technik.de/forum/attachment.php?attachmentid=597
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
591
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
592
In die geöffnete Datei in /home/testuser/.ssh/authorized_keys einfügen
Bild 5
593
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
594
Unter Session gibst du nun die URL zzgl. Port zu deinem Server ein und speicherst alles ab als 'testeintrag'.
Bild 7
595
Der erste Login mit deinem Key
Also ihr bekommt am herbeigesehnten Tag X von eurem Hoster die heißersehnten Daten
IP 081.54.7.11
User: root
pass: irgendwas
port für SSH 22
Zugangssoftware
\\Nun gilt es erstmal in den Server reinzumarschieren und den SSH Zugang zu verändern→
also loggt ihr euch mit den erhaltenen Daten entweder in Putty oder auch winSCP ein.
Hier bekommt ihr Putty:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html (http://www.chiark.greenend.org.uk/%7Esgtatham/putty/download.html)
und hier winSCP:
WinSCP :: Einleitung (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 nutze Joe.
System aktualisieren
Doch zuersteinmal heißt es
#apt-get update
#apt-get upgrade
damit euer Server auf den neusten Stand kommt.
Anschließend könnt ihr Kumpel Joe installieren mit
#apt-get install joe
Ab nun könnt ihr auf eurem Server sämtliche Dateien aufrufen mit dem Befehl
joe /pfad/zur/datei
und speichern könnt ihr mit
strg + k + x.
Neuen User anlegen
OK, soweit so gut nun aber los ab zur SSH config… doch moment,
eine Kleinigkeit brauchen wir noch.
Denn wenn wir später den Root Zugang auf der Console sperren wollen benötigen wir 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 ausschaun→
#useradd -u 123 -g users -d /home/test -s /bin/sh -c 'toller testacc' test
Somit habt ihr 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….
Ihr könnt übrigens 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. Ich müsstet denn folgendes \\schreiben→
#useradd -u 123 -g users -m -d /home/test -s /bin/sh -c 'toller testacc' test
Der User test benötigt nun natürlich noch ein Passwort.
Das legt man so an →
#passwd test
anschließend wird man zwei mal zur Eingabe eines Passwortes aufgefordert.
Wenn das erledigt ist könnt ihr den neuen Account testen indem ihr euch einfach mal in Putty mit den neuen Daten einloggt.
Wenn alles klappt ist das schonmal Spitze.
So …kleiner Zwischenstand.. bisher habt ihr also einen funktionsfähigen Editor und einen neuen User ohne Root Rechte\\… weiter gehts→
SSH Configurieren
Nun gilt es also endlich den ssh Zugang anzupassen.
#joe /etc/ssh/sshd_config
wenn ihr diesen Befehl in der Console schreibt öffent sich die Configurationsdatei für SSH.
sucht folgende Stelle →
PermitRootLogin yes
und ändert es zu
PermitRootLogin no
damit sagt ihr dem Server, dass ihr von nun an dem User Root nicht mehr erlaubt sich auf der Console einzologgen.
Desweitern könnt ihr unter dem PermitRootLogin folgendes schreiben
AllowUsers Test
das Test ersetzt ihr mit eurem User den ihr für die Console benötigt.
Damit hat nur noch dieser User Zugriff auf die Console.
Ihr 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 ihr diese beiden Änderungen gemacht haben so müsst ihr nun die Änderungen speichern.
Das geht mit →
strg + k + x
So nun habt ihr zwar die Datei angepasst. Jedoch müsst ihr dem Server noch sagen das er die Änderung auch anwenden soll.
Das könnt ihr machen indem ihr folgenden Befehl eingebt
#/etc/init.d/ssh reload
Nach dem Reload ist ein einloggen als Root auf der Console oder im WinSCP nicht mehr möglich.
Ihr müsst euch jetzt mit dem User den ihr angelegt habt einloggen.
Mit diesem User habt ihr natürlich keine Root Rechte.
Solltet ihr mal Root Rechte benötigen so tippt ihr einfach →
#su
in die Console. Der Server wird euch nach dem Rootpasswort fragen.
Nach Eingabe das Rootpasswortes habt ihr Root rechte.
Um diese wieder abzulegen schreibt ihr einfach
#exit
in die Console.
Gruß F4RR3LL/Sven
Zurück zum Index (http://wiki.nixhelp.de/doku.php/start)
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 http://wiki.nixhelp.de/lib/images/smileys/icon_wink.gif
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.
http://www.netvision-technik.de/forum/attachment.php?attachmentid=596
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
http://www.netvision-technik.de/forum/attachment.php?attachmentid=597
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
591
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
592
In die geöffnete Datei in /home/testuser/.ssh/authorized_keys einfügen
Bild 5
593
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
594
Unter Session gibst du nun die URL zzgl. Port zu deinem Server ein und speicherst alles ab als 'testeintrag'.
Bild 7
595
Der erste Login mit deinem Key