Schlagwort-Archive: Git

Gitlab-CE: Passwortwechsel bei nächstem Login erzwingen

GitLab ist – wie der Name schon erahnen lässt – ein Git-basiertes Entwicklungsmanagement auf Ruby-Basis. Zusätzlich zur Versionsverwaltung gibt es auch Issue-Tracker, Wikis, CI/CD und Vieles mehr. Im Gegensatz zu GitHub lässt es sich auch lokal auf eigenen Systemen installieren, in der Community Edition dabei unter freier Lizenz. Als Alternative wäre noch Forgejo zu nennen, welches weniger kommerziell daher kommt.

Auf einer GitLab-Instanz hatte ich nun eine etwas andere Aufgabe: Ein verwendeter Zugang wurde als potentiell unsicher eingestuft. Nichts, was eine direkte Aktion notwendig machte, aber man sollte es auch nicht ignorieren. Normalerweise erzwinge ich in solchen Fällen einen Passwortwechsel beim nächsten Login. So wird der Nutzer zu geeigneter Zeit aktiv auf das Problem hingewiesen und es sind keine alternativen Kommunikationskanäle notwendig. Während GitLab prinzipiell einen erzwungenen Passwortwechsel unterstützt, gibt es offenbar keine Option dies über die üblichen Wege manuell auszulösen.

Der offizielle Weg

Die Offizielle Empfehlung ist recht klar: Als Admin unter Overview→User→Edit und dort ein neues Passwort festlegen. Dies ist temporär, der User muss es beim nächsten Login ändern. Hierbei wird auch sichergestellt, dass die aktuellen Kennwortrichtlinien eingehalten werden.

Für mich in diesem Fall kein sinnvoller Weg, da durch den Kennwort-Wechsel der Zugang umgehend nicht mehr möglich ist und ein separater, sicherer Kommunikationskanal notwendig ist um das neue, temporäre Kennwort zu übermitteln.

Eingeweide

Offiziell geht es also nicht, aber die Funktion selbst ist ja da. Über einige Tricks kann man dafür sorgen, dass der Passwortwechsel mit dem aktuellen Kennwort angefordert wird. Notwendig ist dazu ein Konsolenzugang zum Server, auf dem GitLab ausgeführt wird. Hier startet man eine Rails-Konsole (ggf. mit sudo), sucht den User und setzt das Ablaufdatum des Kennworts auf die aktuelle Zeit.

gitlab-rails console
user = User.find_by_username('bernd')
user.password_expires_at=Time.now
user.save
quit

Beim nächsten Login sollte nun der Passwortwechsel angefordert werden. Tipp: Es gibt auch ein verlockendes user.password_automatically_set. Dieses sorgt nicht für einen Passwortwechsel, sondern sperrt den interaktiven Login vollständig.

Eigentlich schade, dass so eine einfache und technisch vorhandene Möglichkeit nicht in den Dialogen angeboten wird. Auch wenn ich sicherheitstechnisch nachvollziehen kann, dass eine Sperrung und temporäres Passwort oft die bessere Wahl ist, sollte man den Admins nicht die Wahl vorenthalten Prozesse zu nutzen, welche den eigenen Anforderungen bessern entsprechen.

BitBastelei #244 – Versionskontrolle mit Git

BitBastelei #244 - Versionskontrolle mit Git

(45.8 MB) 00:28:59

2017-06-25 10:00 🛈
Warm. Zu warm zum Basteln. Vor einiger Zeit hatte ich einen Vortrag zum Versionskontrollsystem Git gehalten, warum also nicht auch mal hier veröffentlichen? Mit Git kann man Dateien „versionssicher“ Verwalten, also eine Historie der Änderungen aufzeichnen. Dies ist vor allem für Quelltexte interessant, da man so bei Problemen schnell wieder auf ältere Versionen zurückgreifen und so den Fehler eingrenzen kann. Auch praktisch ist das Trennen von produktivem Code und Entwicklungszweigen und die Möglichkeit mit mehreren Entwicklern gleichzeitig am Code arbeiten zu können.

Links zum Thema:
https://github.com/adlerweb/vortraege/tree/master/git
https://git-scm.com/
https://github.com/
https://about.gitlab.com/
http://whatthecommit.com/
https://try.github.io/

Nutzung von GIT auf Debian/Ubuntu nicht möglich: GnuTLS

(Anm: Angeblich soll der Bug inzwischen behoben sein)

Debian und dessen Devirate geben sich zur Zeit wieder eine Menge Mühe meine Vorurteile zu erfüllen. Dieses mal hat es GIT erwischt: Beim Klonen eines Repositories kommt es zu einem Verbindungsfehler durch GnuTLS.


2$ git clone https://github.com/freifunk-gluon/gluon.git gluon -b v2016.2.2
Klone nach 'gluon' ...
fatal: unable to access 'https://github.com/freifunk-gluon/gluon.git/': gnutls_handshake() failed: Public key signature verification has failed.

Offenbar hat die bei Debian mitgelieferte Version von GnuTLS Probleme mit einigen Cipher-Suites und Proxyservern. Ich folge mal den Tipps von Nyambaa@AskUbuntu bzw. xmendez und habe GIT statt mit GnuTLS gegen OpenSSL gebaut:

apt-get update
apt-get install build-essential fakeroot dpkg-dev libcurl4-openssl-dev
apt-get build-dep git
mkdir /usr/src/git/
cd /usr/src/git
apt-get source git
dpkg-source -x git_2.1.4-2.1+deb8u2.dsc
cd git-2.1.4

Die Version muss natürlich der jeweils aktuellen angepasst werden – lässt sich ggf. per ls nach apt-get source herausfinden.

In der Datei debian/control muss nun überall der Text libcurl4-gnutls-dev gegen libcurl4-openssl-dev ersetzt werden. Im Anschluss wird das Paket gebaut und installiert. Ggf meckert buildpackage noch über fehlende libraries, welche man schnell per apt-get nachziehen kann.

dpkg-buildpackage -rfakeroot -b
dpkg -i git_2.11.0+next.20161205-1_amd64.deb git-man_2.11.0+next.20161205-1_all.deb

Nun sollte das installierte git auf OpenSSL basieren und keine Verbindungsprobleme mehr zeigen.

BitBastelei #162 – Wir bauen ein Freifunk-Gluon

BitBastelei #162 - Wir bauen ein Freifunk-Gluon

(38 MB) 00:10:56

2015-08-23 10:00 🛈
Zwischen den ganzen Chaos-Konferenzen muss auch noch etwas Hausarbeit sein: Das auf OpenWRT basierende Freifunk-Framework „Gluon“ ist vor kurzem in der Version 2015.1.2 erschienen – guter Zeitpunkt um die neue Version zu kompilieren und zu zeigen, wie man selbst mit wenigen Schritten seine eigene Firmware baut und so lokale Anpassungen vornehmen kann.

Gluon: https://github.com/freifunk-gluon/gluon
Sit.conf MYK: https://github.com/FreifunkMYK/site-ffmyk