NRW:Arbeitsgruppe/Technik/Dokumentation/Benutzer/Wartungszugänge

Aus Piratenwiki
Wechseln zu: Navigation, Suche
ACHTUNG: Die Informationen hier im Wiki sind momentan nicht vollständig aktualisiert.
AG Technik NRW
Verwaltung: Übersicht | Protokolle | Dokumentation | FAQ
Dienste: E-Mail | Lists | Webcache | Blogs | Wikimirror | Domains | RT | Mumble | LAN | Serverstatus


Wartungszugänge

Wartungszugänge per SSH laufen zentral über die Maschine access.piratenpartei-nrw.de. Dort melden sich Administratoren an ihr personalisiertes Benutzerkonto an. Zur Anmeldung wird eine Zwei-Wege Authentifizierung aus PKI und Telefon benötigt. Selbst wenn der private Key abhanden kommen sollte, müsste man dem Administrator noch sein Handy stehlen um die Login-TAN abzufangen.

Ausgehend von access.piratenpartei-nrw.de kann über ein internes Netz (192.168.42.0) per SSH auf die einzelnen virtuellen Maschinen zugegriffen werden. Dazu wird der öffentliche Schlüssel der Benutzerkonten auf access.piratenpartei-nrw.de in den für den jeweiligen Administrator erlaubten Systemen eingetragen.

Wartungszugänge zur Managementconsole der Server, des Backupsystems und Proxmox Hostsysteme sind nur über ein VPN erreichbar, an dem sich die berechtigten Administratoren durch eine Kombination von PKI und persönlichem Passwort anmelden. Die Managementconsole der Servers ist zusätzlich physikalisch vom internen Netz getrennt.

Damit die Konten der Administratoren auch für andere Dienste verfügbar sind (z.B. Proxmox) werden die Systembenutzer in OpenLDAP verwaltet. Beim Login wird automatisch ein Heimatverzeichnis angelegt. Um Benutzer zu erstellen, müssen sie als ldif in LDAP eingebunden werden.

Zugriffsrechte

Übersicht aller Server

Alle installierten Server werden stündlich auf Aktivität und Netzwerkeinstellungen geprüft. Eine Liste aller Server inklusive interner IP und Hostname ist unter /etc/pp-welcome verfügbar und wird beim Login angezeigt. Um Server auf diese Liste zu setzen, müssen sie unter /etc/pp-servers eingetragen werden. Dazu hat jeder Benutzer auf dem System Schreibrechte auf diese Datei.

$ cat /etc/pp-welcome

Übersicht aller Zugänge

Alle installierten Server werden stündlich auf ihre aktuellen Zugriffsrechte geprüft. Anschließend wird eine Liste der Server und der gefundenen SSH Zugänge für den Benutzer 'root' sowie alle anderen Benutzer erstellt. Diese Liste ist unter /etc/pp-permissions auffindbar und für alle lesbar.

$ cat /etc/pp-permissions

Benutzerverwaltung

Benutzer anlegen

Der Benutzer wird in einer LDIF Datei definiert, in diesem Beispiel "paulpirat.ldif". Die Benutzerinformation muss den vollen Namen des Benutzers enthalten damit für andere nachvollziehbar ist, wer sich hinter einem Nickname verbirgt.

dn: uid=paulpirat,ou=People,dc=piratenpartei-nrw,dc=de
uid: paulpirat
cn: Paul Pirat
sn: Pirat
uidNumber: 1023
gidNumber: 100
homeDirectory: /home/paulpirat
objectClass: top
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount
loginShell: /bin/bash

LDIF Datei in LDAP einspielen:

$ ldapadd -c -x -D cn=admin,dc=piratenpartei-nrw,dc=de -W -f paulpirat.ldif

Passwort des Benutzers setzen:

$ ldappasswd -x -D cn=admin,dc=piratenpartei-nrw,dc=de -W -S uid=paulpirat,ou=People,dc=piratenpartei-nrw,dc=de

Schauen, ob der Benutzer korrekt angelegt wurde:

$ ldapsearch -x uid=paulpirat -b ou=People,dc=piratenpartei-nrw,dc=de

Als neuer Benutzer anmelden und in sein Verzeichnis wechseln

$ su paulpirat
$ cd

"Internes" SSH private/public Schlüsselpaar für den Benutzer erstellen

$ ssh-keygen -t rsa

"Externen" SSH Public Key einbinden

$ vim .ssh/authorized_keys

Optional: Benutzerpasswort für andere Dienste hinterlegen

$ touch passwd
$ chmod 600 passwd
$ echo "Benutzerpasswort" > passwd

Benutzer ändern

Um einen Benutzer zu ändern, wird eine LDIF Datei mit den gewünschten Änderungen als Inhalt erstellt.

dn: uid=paulpirat,ou=People,dc=piratenpartei-nrw,dc=de
changetype: modify
replace: uidNumber
uidNumber: 1000
-
replace: gidNumber
gidNumber: 1000

LDIF Datei einspielen:

$ ldapmodify -x -D cn=admin,dc=piratenpartei-nrw,dc=de -W -f paulpirat-mod.ldif

Benutzer löschen

Um einen Benutzer zu löschen, wird eine LDIF Datei mit den Benutzerinformationen benötigt.

dn: uid=paulpirat,ou=People,dc=piratenpartei-nrw,dc=de
changetype: delete

LDIF Datei einspielen:

$ ldapmodify -x -D cn=admin,dc=piratenpartei-nrw,dc=de -W -f paulpirat-del.ldif

Benutzerinformationen anzeigen

$ ldapsearch -x uid=paulpirat -b ou=People,dc=piratenpartei-nrw,dc=de

Clients

Public/Private key erzeugen

Um per SSH auf einen Wartungszugang zuzugreifen, wird eine Kombination aus privatem und öffentlichen Schlüssel benötigt. Ein Einstieg in die Materie dazu würde an dieser Stelle zu weit führen und kann im Netz unter Stichpunkten wie Public/Private Key, PKI oder asymmetrisches Kryptosystem nachgelesen werden.

Die Länge des Schlüssels in Bit ist nicht allein für seine Sicherheit relevant. Ebenfalls ist es für die Sicherheit nicht relevant ob ein Schlüsselpaar nach RSA oder DSA Verfahren erzeugt wird. Viel wahrscheinlicher als das Brechen eines Schlüssels über seinen Algorithmus ist es, dass der private Schlüssel in falsche Hände gerät oder durch kein bzw. ein schwaches Passwort geschützt ist. Daher bitte unbedingt ein hinreichend komplexes Passwort für den privaten Schlüssel vergeben, es regelmäßig ändern und den privaten Schlüssel niemals weitergeben oder anderen Zugriff darauf gestatten.

Wichtig: Niemals wird euch jemand der AG Technik NRW danach fragen euren privaten Schlüssel preiszugeben. Es ist immer nur der öffentliche Schlüssel interessant. Den privaten Schlüssel dürft ihr auf keinen Fall herausgeben.

Linux, OSX, BSD

$ ssh-keygen -b 4096 -t rsa

Anschließend liegt das Schlüsselpaar in dem Heimatverzeichnis des Benutzers unter .ssh/

  • id_rsa - dein privater und geheimer Schlüssel
  • id_rsa.pub - dein öffentlicher Schlüssel der weitergegeben werden kann

Windows

  • Das Tool "PuTTYgen" herunterladen
  • Starten
  • Parameters -> Type to generate -> SSH-2 RSA
  • Parameters -> Number of bits in a generated key -> 4096
  • Generate anklicken und zufällige Bewegungen mit der Maus erzeugen
  • Key -> Key comment -> benutzername@computername angeben damit der Schlüssel zugeordnet werden kann
  • Key -> Key passphrase -> Ein ausreichend komplexes und geheimes Passwort angeben und bestätigen
  • Actions -> Save private key -> Privaten Schlüssel an einer sicheren Stelle auf dem Computer speichern (z.b. id_rsa)
  • Actions -> Save public key -> Öffentlichen Schlüssel auf dem Computer speichern (z.b. id_rsa.pub)

Anschließend wird der öffentliche Schlüssel (z.B. id_rsa.pub) an einen Administrator geschickt um ihn zur Nutzeranmeldung zu verwenden.

Passwort des privaten Schlüssels ändern

Es ist wichtig, dass Benutzerpasswörter regelmäßig geändert werden. Das gilt genau so für die Passwörter an privaten Schlüsseln. Durch eine Änderung des Passworts wird keine Änderung am privaten oder öffentlichen Schlüssel selbst vorgenommen.

Linux, OSX, BSD

$ cd .ssh
$ ssh-keygen -f id_rsa -p

Windows

  • Das Tool "PuTTYgen" herunterladen
  • Starten
  • Actions -> Load -> Den privaten Schlüssel suchen und laden
  • Das alte Passwort des privaten Schlüssels eingeben
  • Key -> Key passphrase -> Neues Passwort eingeben und bestätigen
  • Actions -> Save private key -> Privaten Schlüssel mit dem neuen Passwort speichern

SSH Zugriff mit Schlüsseln

Linux, OSX, BSD

Bei UNIX-artigen Betriebssystemen wird meist OpenSSH als Client ausgeliefert. Diese Software sucht im Heimatverzeichnis des aktuellen Benutzern im Verzeichnis .ssh nach einem privaten Schlüssel um die Verbindung aufzubauen. Per console kann man einfach den "ssh" Befehl nutzen:

$ ssh user@access.piratenpartei-nrw.de
Enter passphrase for key '/Users/user/.ssh/id_rsa': ********

Falls mehrere Schlüssel verwendet werden, kann der gewünschte Schlüssel mit dem Parameter -i angegeben werden:

$ ssh -i .ssh/piraten.private user@access.piratenpartei-nrw.de
Enter passphrase for key '/Users/user/.ssh/piraten.private': ********

Windows

Windows wird ohne SSH Client ausgeliefert. Ein offener, umfangreicher, bekannter und stabiler SSH Client heißt "PuTTY" und ist kostenlos erhältlich.

  • Das Tool "PuTTY" herunterladen
  • Starten
  • Connections -> SSH -> Auth -> Private key file for authentication -> Den zuvor generierten privaten Schlüssel auswählen (z.B. id_rsa)
  • Session -> Host Name -> access.piratenpartei-nrw.de eintragen
  • Session -> Saved Sessions -> Einen Namen für diese Konfiguration eingeben, damit man es nicht jedes mal erneut einstellen muss
  • Session -> Open
  • Den Benutzernamen und das Passwort für den privaten Schlüssel eingeben

Schlüssel für OpenSSH konvertieren

Tools wie PuTTYgen erzeugen einen öffentlichen Schlüssel im SSH2 Format. Dieses ist nicht für die Verwendung in .ssh/authorized_keys für OpenSSH kompatibel. Der öffentliche Schlüssel muss vorher umgewandelt werden.

$ ssh-keygen -i -f id_rsa_ssh2.pub > id_rsa_openssh.pub

Fehler die man nur einmal macht

  • Eine uidnumber doppelt vergeben
    • Führt dazu, dass Systembenutzer ihre Identitäten wechseln. Lösung: Aufpassen bzw. nachträglich ändern.