Block SSH by SSH-Key

Alles rund um sicherheitsrelevante Fragen und Probleme.
Antworten
Gunah
Beiträge: 366
Registriert: 24.04.2005 17:00:42
Lizenz eigener Beiträge: GNU Free Documentation License

Block SSH by SSH-Key

Beitrag von Gunah » 27.04.2017 08:04:01

Moin,

ich bin gerade aktuell auf der Suche, wie ich bestimmte pubkeys Systemweit sperren kann?
die Pubkeys liegen mir im normalen Shema vor "ssh-rsa xxxxx etc".

Nur denke ich dass ich in der MAN etwas übersehe ggf. hat einer von euch nen Hinweis für mich :)

Danke

breakthewall
Beiträge: 507
Registriert: 30.12.2016 23:48:51

Re: Block SSH by SSH-Key

Beitrag von breakthewall » 27.04.2017 09:12:45

Laut der Manpage scheint so etwas nicht wirklich vorgesehen zu sein. Auch in weiteren Netzquellen war zu solchen Belangen nichts zu finden.

Wäre es nicht sinnvoller SSH-Schlüssel zu löschen die nicht genutzt werden sollen? Oder besser noch, erst gar nicht zu erstellen?

Wenn es nun darum ginge, allen Standard-Nutzern den Zugriff auf bestimmte SSH-Schlüssel zu verweigern, könnte man doch einfach die Rechte daran entziehen, sodass z.B. nur noch Root oder bestimmte Nutzer sie lesen könnten, und sonst niemand. Denke mal das könnte eine praktikable Lösung sein.

Benutzeravatar
MSfree
Beiträge: 10722
Registriert: 25.09.2007 19:59:30

Re: Block SSH by SSH-Key

Beitrag von MSfree » 27.04.2017 09:55:47

breakthewall hat geschrieben:Wäre es nicht sinnvoller SSH-Schlüssel zu löschen die nicht genutzt werden sollen? Oder besser noch, erst gar nicht zu erstellen?
Das ist nicht nur sinnvoll, sondern die einzige Möglichkeit.

Man muß also alle Dateien mit dem Namen authorized_keys suchen und den entsprechenden Schlüssel rauslöschen.

Man kann auch gerne mal selbst revoke ssh key auf eine Suchmaschine persönlichem Vorzugs loslassen. Dort gibt es dann den Hinweis, daß man ssh-Schlüssel auch mit LDAP verwalten kann, was einem (Administrator) etwas übersichtlichere Möglichkeiten zum Löschen von Schlüsseln geben würde.

uname
Beiträge: 12072
Registriert: 03.06.2008 09:33:02

Re: Block SSH by SSH-Key

Beitrag von uname » 27.04.2017 09:59:21

Welchen Sinn soll es machen bestimmte Keys zu verbieten?

Benutzeravatar
MSfree
Beiträge: 10722
Registriert: 25.09.2007 19:59:30

Re: Block SSH by SSH-Key

Beitrag von MSfree » 27.04.2017 10:14:39

uname hat geschrieben:Welchen Sinn soll es machen bestimmte Keys zu verbieten?
- wenn man einem Ex-Mitarbeiter den Zugang sperren will
- wenn der zum öffentlichen Schlüssel gehörende private Schlüssel kompromitiert wurde (Notebook geklaut)

uname
Beiträge: 12072
Registriert: 03.06.2008 09:33:02

Re: Block SSH by SSH-Key

Beitrag von uname » 27.04.2017 11:17:05

- wenn man einem Ex-Mitarbeiter den Zugang sperren will
- wenn der zum öffentlichen Schlüssel gehörende private Schlüssel kompromitiert wurde (Notebook geklaut)
Natürlich muss man alle Einträge des öffentlichen Schlüssels auf allen Servern löschen. Nicht mehr und nicht weniger.

Es macht wahrscheinlich Sinn auch mal alle Schlüssel zu inventarisieren.
Auch sollte überlegt werden, ob alle Anwender über den Umweg einer echten Personenanmeldung (mit dem Key) gehen müssen. Und ja das ist unpraktisch.

Wenn aber nicht besteht immer die Gefahr, dass ein Anwender irgendeinen wildfremden öffentlichen Schlüssel einem für sich aktuell berechtigtem Account unterschiebt und sich dann über diesen Account selbst nach der Löschung des eigenen Keys mit der entsprechenden Kennung und dem nich inventarisierten Key anmeldet.

Vielleicht muss man auch auch einfach ~/.ssh/authorized_keys entsprechend überwachen bzw. besser den Schreibzugriff auf root beschränken z.B. mit:

/etc/ssh/sshd_config:

Code: Alles auswählen

AuthorizedKeysFile      /var/keys/%u/authorized_keys

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Block SSH by SSH-Key

Beitrag von eggy » 27.04.2017 13:15:15

Früher (in sid nicht mehr, in stable noch drin) gabs mal https://packages.debian.org/de/stable/openssh-blacklist , ka, ob das in deinem Szenario hilfreich wäre.

Benutzeravatar
MSfree
Beiträge: 10722
Registriert: 25.09.2007 19:59:30

Re: Block SSH by SSH-Key

Beitrag von MSfree » 27.04.2017 13:31:18

eggy hat geschrieben:Früher (in sid nicht mehr, in stable noch drin) gabs mal https://packages.debian.org/de/stable/openssh-blacklist , ka, ob das in deinem Szenario hilfreich wäre.
Die Blacklist hatte aber einen anderen Grund. In einer älteren Debianversion war SSH kaputt und hat mit ssh-keygen nur 65536 verschiedene Keys erzeugen können, was die Sicherheit entsprechend extrem reduziert hatte. Diese 65536 Keys wurden in die Blacklist aufgenommen.

Gunah
Beiträge: 366
Registriert: 24.04.2005 17:00:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Block SSH by SSH-Key

Beitrag von Gunah » 27.04.2017 13:43:12

MSfree hat geschrieben:
uname hat geschrieben:Welchen Sinn soll es machen bestimmte Keys zu verbieten?
- wenn man einem Ex-Mitarbeiter den Zugang sperren will
- wenn der zum öffentlichen Schlüssel gehörende private Schlüssel kompromitiert wurde (Notebook geklaut)
Es geht hier um Ex-Mitarbeiter, kommt zum glück nicht häufig vor, aber wenn ist man schon mal länger Dabei.

Die Keys, welcher wem gehört etc. sind alle bekannt. und wenn in einem "Home Dir" ein key hinzugefügt wird, wird dieses mit geloggt und überprüft.

Generell gehen wir alle paar Monate über alle Keys rüber und schauen, ob das noch korrekt ist, oder bei manchen Benutzern, werden die generell entfernt.
Da eh nach dem SSH Login noch ein PW angegeben werden muss, ist das schon relativ Safe.

uname
Beiträge: 12072
Registriert: 03.06.2008 09:33:02

Re: Block SSH by SSH-Key

Beitrag von uname » 27.04.2017 13:46:27

Zum Problem:
und wenn in einem "Home Dir" ein key hinzugefügt wird, wird dieses mit geloggt und überprüft.
Das ist unnötig unsicher. Besser wäre wenn die öffentlichen Schlüssel außerhalb vom HOME-Verzeichnis liegen.

@offtopic Blacklists:

Hier die damalige Sicherheitsmeldung: https://www.debian.org/security/2008/dsa-1571

Erklärt mir jemand warum Debianopenssl-blacklist nicht mehr benötigt wird? Nur weil fast 10 Jahre vergangen sind?
https://bugs.debian.org/cgi-bin/bugrepo ... bug=849027

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Block SSH by SSH-Key

Beitrag von eggy » 27.04.2017 13:51:08

MSfree hat geschrieben:Die Blacklist hatte aber einen anderen Grund. In einer älteren Debianversion war SSH kaputt und hat mit ssh-keygen nur 65536 verschiedene Keys erzeugen können, was die Sicherheit entsprechend extrem reduziert hatte. Diese 65536 Keys wurden in die Blacklist aufgenommen.
Ja, das war mir klar, aber man kann (soweit ich mich erinnere) mit ssh-vulkey und ner entsprechend angepassten Blacklist die authorized-keys durchgehen und auf eigene Keys prüfen. Muss man halt entsprechend zusammenbasteln. Der Hinweis war als "wenn Du basteln willst, da gabs mal nen Ansatz" gemeint, dachte das wäre offensichtlich.

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: Block SSH by SSH-Key

Beitrag von ThorstenS » 27.04.2017 20:19:31

Wenn ich einer Firma oder einer Person Zugriff auf meine Server geben muß, dann nutze ich dieses kleine Script für Debianansible.
Ich lege in der /etc/ansible/hosts (ini-Style formatiert) eine Gruppe projektXY an und liste darunter die Systeme auf.
Dann kann ich dieses script hier direkt ausführen und werde gefragt, ob der key hinzugefügt oder gelöscht werden soll.
(doppelklick auf present oder absent und mittlere Maustaste zum Einfügen). Danach klappert ansible alle Hosts der Gruppe ab und ich bin fertig.

Code: Alles auswählen

#!/usr/bin/ansible-playbook
---

- hosts: projectXY
  remote_user: root
  become: no

  vars_prompt:
    - name: "keystate"
      prompt: "Soll der ssh-key eingetragen (present) oder entfernt (absent) werden?"

  tasks:
    # state kann absent oder present sein
    - name: Projektzugang auf die Server {{play_hosts}}
      authorized_key:
        user=root
        key="{{ item }}"
        state="{{keystate}}"
        exclusive=no
      with_file:
        - ../static/sysadmin@4ma-20150708.pub
      when: inventory_hostname in groups.projectXY

# vim: set nowrap ft=yaml:
Es gibt noch ein großes anderes Playbook mit `exclusive=yes`, was dafür sorgt, dass ausschließlich mein(e) keys vorhanden sein sollen.

Ich manage die remote Zugänge nun schon eine Weile darüber und das fühlt sich echt gut an. :mrgreen:

Gunah
Beiträge: 366
Registriert: 24.04.2005 17:00:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Block SSH by SSH-Key

Beitrag von Gunah » 04.05.2017 13:45:34

dank euch :)

werde denke soweit es so umsetzen, dass die Auth-KeyDatei außerhalb des Bereiches liegt.
macht aktuell am meisten sinn und ist recht einfach zu konfigurieren.

weitere schritte kann man sich dann immer noch anschauen :)

uname
Beiträge: 12072
Registriert: 03.06.2008 09:33:02

Re: Block SSH by SSH-Key

Beitrag von uname » 04.05.2017 14:26:20

Mit Remote Forwarding kann man den Zugriff nur dann erlauben, wenn man zuvor selbst einen Verbindung zum Gegenüber aufgebaut hat.

Antworten