NRW:Arbeitsgruppe/Technik/Dokumentation/Benutzer/Wartungszugänge
Dienste: E-Mail | Lists | Webcache | Blogs | Wikimirror | Domains | RT | Mumble | LAN | Serverstatus
Inhaltsverzeichnis
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.