byte-artist

die Hauptseite meines Webaustrittes
hier finden Sie Neuigkeiten rund um mich und meine Seite

unter Stuff fasse ich alle öffentlich
zugänglichen Sachen zusammen darunter :

in meinem Blog werde ich nach und nach mein Wissen zusammen tragen,
sowie unter anderem auch Brainstormings und Erfahrungsberichte
der breiten Öffentlichkeit zur Verfügung stellen

hier finden Sie Informationen zu mir und
meine Projekte/Referenzen
meinen Werdegang
dem Stand meines Know-How

hier gehts zum Admin-bereich

MO

DI

MI

DO

FR

SA

SO

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31



Schlagwörter:


How To: Linux mit ssh absichern

16.11.2013 23:41:19 von

Auf meinen Servern habe ich ssh installiert um eine möglichst sichere Verbindung beim warten der Server zu gewährleisten. In diesem Tutorial möchte ich erklären, wie man das auf einfache Art und Weise nachvollziehen kann.

Es herrscht folgende Ausgangssituation:
es gibt mindestens 1 Client, der user auf dem Client heißt ersartweise user
es gibt einen Server, auf dem Server existiert ein User über den man sich authentifizieren will, hier ersatzweise remoteuser, der user muss nicht zwangsläufig konform zu dem user auf dem client sein
auf dem Server wie auch auf dem Client ist Linux installiert, hier Ubuntu auf allen Rechnern
es besteht eine direkte oder indirekte Verbindung über das netzwerk zwischen den Rechnern
es besteht eine direkte oder indirekte Verbindung zum Internet sowie für den/die Clients als auch für den Server.

man beginnt indem man auf dem Server sowie auf den Clients den ssh service installiert:


+

BASH code

  1. sudo apt-get install ssh

damit installiert man sowohl den openssh-server als auch den openssh-client. Will man das vermeiden kann man auch auf dem Server und auf den Clients händisch die jeweiligen Varianten installieren:

Auf dem Server per


+

BASH code

  1. sudo apt-get install openssh-server

und auf den Clients:


+

BASH code

  1. sudo apt-get install openssh-client

nun kann man auf den Clients der jeweiligen Benutzer die öffentlichen und privaten ssh Certifikate generieren (läßt man hier die Passphrase weg, braucht man keine Passphrase beim anmelden am Server per ssh eingeben, es besteht aber auch das direkte Risiko, das sich jeder an eurem Server anmelden kann, der in den Besitz eures privaten ssh keys gelangt!):


+

BASH code

  1. sudo ssh-keygen
  2. Generating public/private rsa key pair.
  3. Enter file in which to save the key (/home/user/.ssh/id_rsa):
  4. Enter passphrase (empty for no passphrase):
  5. Enter same passphrase again:
  6. Your identification has been saved in /home/user/.ssh/id_rsa.
  7. Your public key has been saved in /home/user/.ssh/id_rsa.pub.
  8. The key fingerprint is:
  9. XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX user@client

durch bestätigen der defaults werden die keys im jeweiligen Home Verzeichnis des Benutzers angelegt unter .ssh/

Nun müssen wir den öffentlichen key (.pub) auf den Server kopieren:


+

BASH code

  1. sudo scp ~/.ssh/id_rsa.pub remoteuser@Server:~/

Ist das erledigt, loggt man sich auf dem server ein und fügt diesen key der liste der authorized_keys unter ~/.ssh/authorized_keys für den jeweiligen User hinzu:


+

BASH code

  1. $ ssh remoteuser@server
  2. remoteuser@server's password:
  3. remoteuser@server:~$ cat id_rsa.pub >> ~/.ssh/authorized_keys
  4. remoteuser@server:~$ rm id_rsa.pub
  5. remoteuser@server:~$ exit

Ist das geschehen, können wir auf dem Server das Authentifizieren über die key paare aktivieren, das bedeutet, das der öffentlichen Schlüssel auf dem Server Benutzerkonto existiert und der dazugehörige private Schlüssel auf dem zu authentifizierenden Client vorliegt.


+

BASH code

  1. sudo nano /etc/ssh/sshd.conf

dort müssen folgende beiden Zeilen entweder unkommentiert werden oder neu hinzugefügt:


+

BASH code

  1. RSAAuthentication yes
  2. PubkeyAuthentication yes

nun laden wir die config des ssh dienstes neu


+

BASH code

  1. sudo /etc/init.d/ssh reload


nun können wir uns vom Client aus ohne Benutzung eines Passwortes (aber unter angabe der beim generieren des keys übergebenen Passphrase) testweise am Server anmelden:


+

BASH code

  1. ssh remoteuser@server

oder, falls unser privater ssh key für den Server nicht im default .ssh verzeichnis liegt:


+

BASH code

  1. ssh -i /pfad/zum/privaten/key remoteuser@server

Wollen wir den Server weiter absichern und es kiddys erschwehren, sich per Bruteforce oder durch andere mechanismen doch irgendwie das Passwort zu erschleichen um sich auch ohne das Keyfile anzumelden, deaktivieren wir diese
Option auf dem Server, dazu öffnen wir wieder die config datei des SSH Dienstes und stellen folgende 3 Einträge auf no:


+

BASH code

  1. sudo nano /etc/ssh/sshd_config
  2.  
  3. ChallegeResponseAuthentication no
  4. PasswordAuthentication no
  5. UsePAM no

Abschließend laden wir noch die config neu und unser Server ist wieder ein kleines Stück sicherer


+

BASH code

  1. /etc/init.d/ssh reload


Sollten Probleme oder Fragen auftauchen, nutzt doch besser die Kommentatoroption hier im Thread, ich habe arge Not die vielen Mails immer zu beantworten und viele der Fragen tauchen immer wieder auf. Ich habe nur meistens leider nicht die Zeit, die Fragen noch hierher mit zu übertragen :)

in diesem Sinne und viel Spaß beim nachbauen.
euer byte-artist

Tags:


Kommentare: